AWS - EFS Enum

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Equipo Rojo de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

EFS

Información Básica

Amazon Elastic File System (EFS) se presenta como un sistema de archivos de red totalmente administrado, escalable y elástico por AWS. El servicio facilita la creación y configuración de sistemas de archivos que pueden ser accedidos simultáneamente por múltiples instancias EC2 y otros servicios de AWS. Las características clave de EFS incluyen su capacidad para escalar automáticamente sin intervención manual, proporcionar acceso de baja latencia, admitir cargas de trabajo de alto rendimiento, garantizar la durabilidad de los datos e integrarse sin problemas con varios mecanismos de seguridad de AWS.

Por defecto, la carpeta EFS a montar será / pero podría tener un nombre diferente.

Acceso de Red

Un EFS se crea en una VPC y sería accesible por defecto en todas las subredes de la VPC. Sin embargo, el EFS tendrá un Grupo de Seguridad. Para dar acceso a un EC2 (u otro servicio de AWS) para montar el EFS, es necesario permitir en el grupo de seguridad del EFS una regla NFS de entrada (puerto 2049) desde el Grupo de Seguridad del EC2.

Sin esto, no podrás contactar con el servicio NFS.

Para obtener más información sobre cómo hacer esto, consulta: https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount

Enumeración

# Get filesystems and access policies (if any)
aws efs describe-file-systems
aws efs describe-file-system-policy --file-system-id <id>

# Get subnetworks and IP addresses where you can find the file system
aws efs describe-mount-targets --file-system-id <id>
aws efs describe-mount-target-security-groups --mount-target-id <id>
aws ec2 describe-security-groups --group-ids <sg_id>

# Get other access points
aws efs describe-access-points

# Get replication configurations
aws efs describe-replication-configurations

# Search for NFS in EC2 networks
sudo nmap -T4 -Pn -p 2049 --open 10.10.10.0/20 # or /16 to be sure

Puede ser que el punto de montaje de EFS esté dentro de la misma VPC pero en una subred diferente. Si quieres asegurarte de encontrar todos los puntos de EFS, sería mejor escanear la máscara de red /16.

Montar EFS

sudo mkdir /efs

## Mount found
sudo apt install nfs-common
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <IP>:/ /efs

## Mount with efs type
## You need to have installed the package amazon-efs-utils
sudo yum install amazon-efs-utils # If centos
sudo apt-get install amazon-efs-utils # If ubuntu
sudo mount -t efs <file-system-id/EFS DNS name>:/ /efs/

Acceso IAM

Por defecto, cualquier persona con acceso a la red de EFS podrá montarlo, leerlo y escribirlo incluso como usuario root. Sin embargo, podrían existir políticas de sistema de archivos que solo permitan el acceso a los principios con permisos específicos. Por ejemplo, esta política de sistema de archivos no permitirá ni siquiera montar el sistema de archivos si no tienes el permiso de IAM:

{
"Version": "2012-10-17",
"Id": "efs-policy-wizard-2ca2ba76-5d83-40be-8557-8f6c19eaa797",
"Statement": [
{
"Sid": "efs-statement-e7f4b04c-ad75-4a7f-a316-4e5d12f0dbf5",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "",
"Resource": "arn:aws:elasticfilesystem:us-east-1:318142138553:file-system/fs-0ab66ad201b58a018",
"Condition": {
"Bool": {
"elasticfilesystem:AccessedViaMountTarget": "true"
}
}
}
]
}

O esto evitará el acceso anónimo:

Ten en cuenta que para montar sistemas de archivos protegidos por IAM DEBES usar el tipo "efs" en el comando de montaje:

sudo mkdir /efs
sudo mount -t efs -o tls,iam  <file-system-id/EFS DNS name>:/ /efs/
# To use a different pforile from ~/.aws/credentials
# You can use: -o tls,iam,awsprofile=namedprofile

Puntos de Acceso

Los puntos de acceso son puntos de entrada específicos de la aplicación en un sistema de archivos EFS que facilitan la gestión del acceso de la aplicación a conjuntos de datos compartidos.

Al crear un punto de acceso, puedes especificar el propietario y los permisos POSIX para los archivos y directorios creados a través del punto de acceso. También puedes definir un directorio raíz personalizado para el punto de acceso, ya sea especificando un directorio existente o creando uno nuevo con los permisos deseados. Esto te permite controlar el acceso a tu sistema de archivos EFS de forma específica por aplicación o por usuario, facilitando la gestión y seguridad de tus datos de archivos compartidos.

Puedes montar el sistema de archivos desde un punto de acceso de la siguiente manera:

# Use IAM if you need to use iam permissions
sudo mount -t efs -o tls,[iam],accesspoint=<access-point-id> \
<file-system-id/EFS DNS> /efs/

Ten en cuenta que incluso al intentar montar un punto de acceso, aún necesitas poder contactar el servicio NFS a través de la red, y si el EFS tiene una política de sistema de archivos, necesitas suficientes permisos IAM para montarlo.

Los puntos de acceso se pueden utilizar para los siguientes propósitos:

  • Simplificar la gestión de permisos: Al definir un usuario y grupo POSIX para cada punto de acceso, puedes gestionar fácilmente los permisos de acceso para diferentes aplicaciones o usuarios sin modificar los permisos subyacentes del sistema de archivos.

  • Imponer un directorio raíz: Los puntos de acceso pueden restringir el acceso a un directorio específico dentro del sistema de archivos EFS, asegurando que cada aplicación o usuario opere dentro de su carpeta designada. Esto ayuda a prevenir la exposición o modificación accidental de datos.

  • Acceso más fácil al sistema de archivos: Los puntos de acceso pueden asociarse con una función de AWS Lambda o una tarea de AWS Fargate, simplificando el acceso al sistema de archivos para aplicaciones sin servidor y contenerizadas.

Escalada de privilegios

pageAWS - EFS Privesc

Post Explotación

pageAWS - EFS Post Exploitation

Persistencia

pageAWS - EFS Persistence
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización