AWS - EFS Privesc

Підтримайте HackTricks

EFS

Додаткова інформація про EFS в:

AWS - EFS Enum

Пам'ятайте, що для монтування EFS вам потрібно бути в підмережі, де EFS викритий, та мати до нього доступ (групи безпеки). Якщо це стається, за замовчуванням ви завжди зможете монтувати його, однак, якщо він захищений політиками IAM, вам потрібно мати додаткові дозволи, згадані тут, щоб отримати до нього доступ.

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

З будь-якими цими дозволами зловмисник може змінити політику файлової системи, щоб надати вам доступ до неї, або просто видалити її, щоб був наданий стандартний доступ.

Для видалення політики:

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

Щоб змінити це:

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)

З цим дозволом зловмисник зможе підключити EFS. Якщо дозвіл на запис не надається за замовчуванням для всіх, хто може підключити EFS, він матиме лише доступ на читання.

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

Додаткові дозволи elasticfilesystem:ClientRootAccess та elasticfilesystem:ClientWrite можуть бути використані для запису всередині файлової системи після її монтування та для доступу до цієї файлової системи як root.

Потенційний вплив: Непряме підвищення привілеїв шляхом знаходження чутливої інформації в файловій системі.

elasticfilesystem:CreateMountTarget

Якщо зловмисник перебуває в підмережі, де не існує цільової точки монтування EFS. Він може просто створити одну в своїй підмережі з цим дозволом:

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

Потенційний вплив: Непряме підвищення привілеїв шляхом знаходження чутливої інформації в файловій системі.

elasticfilesystem:ModifyMountTargetSecurityGroups

У випадку, коли зловмисник виявляє, що EFS має ціль монтування у його підмережі, але жодна група безпеки не дозволяє трафік, він може просто змінити це, змінивши вибрані групи безпеки:

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

Потенційний вплив: Непряме підвищення привілеїв шляхом знаходження чутливої інформації в файловій системі.

Підтримайте HackTricks

Last updated