3.2 KiB
AWS - EFS Privesc
{{#include ../../../banners/hacktricks-training.md}}
EFS
Meer inligting oor EFS in:
{{#ref}} ../aws-services/aws-efs-enum.md {{#endref}}
Onthou dat jy in 'n subnetwerk moet wees waar die EFS blootgestel is en toegang daartoe moet hê (veiligheidsgroepe) om 'n EFS te monteer. As dit gebeur, sal jy dit altyd kan monteer, maar as dit deur IAM-beleide beskerm word, moet jy die ekstra toestemmings hê wat hier genoem word om toegang te verkry.
elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy
Met enige van daardie toestemmings kan 'n aanvaller die lêerstelselsbeleid verander om jou toegang daartoe te gee, of om dit net te verwyder sodat die standaardtoegang toegestaan word.
Om die beleid te verwyder:
aws efs delete-file-system-policy \
--file-system-id <value>
Om dit te verander:
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)
Met hierdie toestemming sal 'n aanvaller in staat wees om die EFS te monteer. As die skryftoestemming nie standaard aan almal wat die EFS kan monteer gegee word nie, sal hy slegs lees toegang hê.
sudo mkdir /efs
sudo mount -t efs -o tls,iam <file-system-id/EFS DNS name>:/ /efs/
Die ekstra toestemmings elasticfilesystem:ClientRootAccess en elasticfilesystem:ClientWrite kan gebruik word om te skryf binne die lêerstelsel nadat dit gemonteer is en om toegang tot daardie lêerstelsel as root te verkry.
Potensiële Impak: Indirekte privesk deur sensitiewe inligting in die lêerstelsel te lokaliseer.
elasticfilesystem:CreateMountTarget
As jy 'n aanvaller is wat binne 'n subnet is waar geen monteerdoel van die EFS bestaan nie. Hy kan eenvoudig een in sy subnet skep met hierdie voorreg:
# 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>
Potensiële Impak: Indirekte privesc deur sensitiewe inligting in die lêerstelsel te vind.
elasticfilesystem:ModifyMountTargetSecurityGroups
In 'n scenario waar 'n aanvaller vind dat die EFS 'n mount target in sy subnetwerk het, maar geen sekuriteitsgroep die verkeer toelaat nie, kan hy eenvoudig dit verander deur die geselekteerde sekuriteitsgroepe aan te pas:
aws efs modify-mount-target-security-groups \
--mount-target-id <value> \
--security-groups <value>
Potensiële Impak: Indirekte privesc deur sensitiewe inligting in die lêerstelsel te lokaliseer.
{{#include ../../../banners/hacktricks-training.md}}