AWS - EFS Enum

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

Inne sposoby wsparcia HackTricks:

EFS

Podstawowe informacje

Amazon Elastic File System (EFS) jest prezentowany przez AWS jako w pełni zarządzany, skalowalny i elastyczny system plików sieciowych. Usługa ułatwia tworzenie i konfigurowanie systemów plików, które mogą być jednocześnie dostępne przez wiele instancji EC2 i inne usługi AWS. Główne cechy EFS obejmują możliwość automatycznego skalowania bez konieczności interwencji manualnej, zapewnienie dostępu o niskim opóźnieniu, obsługę obciążeń o dużej przepustowości, gwarancję trwałości danych oraz bezproblemową integrację z różnymi mechanizmami bezpieczeństwa AWS.

Domyślnie, folder EFS do zamontowania będzie /, ale może mieć inną nazwę.

Dostęp sieciowy

EFS jest tworzony w VPC i domyślnie jest dostępny we wszystkich podsieciach VPC. Jednak EFS będzie miał Grupę Zabezpieczeń. Aby udzielić dostępu do montowania EFS instancji EC2 (lub dowolnej innej usłudze AWS), konieczne jest zezwolenie w grupie zabezpieczeń EFS na przychodzące reguły NFS (port 2049) z Grupy Zabezpieczeń EC2.

Bez tego nie będzie możliwe skontaktowanie się z usługą NFS.

Aby uzyskać więcej informacji na temat tego, jak to zrobić, sprawdź: https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount

Wyliczenie

# Get filesystems and access policies (if any)
aws efs describe-file-systems
aws efs describe-file-system-policy --file-system-id <id>

# Get subnetworks and IP addresses where you can find the file system
aws efs describe-mount-targets --file-system-id <id>
aws efs describe-mount-target-security-groups --mount-target-id <id>
aws ec2 describe-security-groups --group-ids <sg_id>

# Get other access points
aws efs describe-access-points

# Get replication configurations
aws efs describe-replication-configurations

# Search for NFS in EC2 networks
sudo nmap -T4 -Pn -p 2049 --open 10.10.10.0/20 # or /16 to be sure

Może się zdarzyć, że punkt montowania EFS znajduje się w tej samej VPC, ale w innym podsieci. Jeśli chcesz mieć pewność, że znajdziesz wszystkie punkty EFS, lepiej jest przeskanować maskę sieci /16.

Zamontuj EFS

sudo mkdir /efs

## Mount found
sudo apt install nfs-common
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <IP>:/ /efs

## Mount with efs type
## You need to have installed the package amazon-efs-utils
sudo yum install amazon-efs-utils # If centos
sudo apt-get install amazon-efs-utils # If ubuntu
sudo mount -t efs <file-system-id/EFS DNS name>:/ /efs/

Dostęp IAM

Domyślnie każdy z dostępem sieciowym do EFS będzie mógł zamontować, odczytać i zapisywać go nawet jako użytkownik root. Jednak mogą obowiązywać polityki systemu plików, które pozwalają tylko określonym podmiotom na dostęp do niego. Na przykład ta polityka systemu plików nie pozwoli nawet na zamontowanie systemu plików, jeśli nie masz uprawnienia IAM:

{
"Version": "2012-10-17",
"Id": "efs-policy-wizard-2ca2ba76-5d83-40be-8557-8f6c19eaa797",
"Statement": [
{
"Sid": "efs-statement-e7f4b04c-ad75-4a7f-a316-4e5d12f0dbf5",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "",
"Resource": "arn:aws:elasticfilesystem:us-east-1:318142138553:file-system/fs-0ab66ad201b58a018",
"Condition": {
"Bool": {
"elasticfilesystem:AccessedViaMountTarget": "true"
}
}
}
]
}

Lub to zapobiegnie anonimowemu dostępowi:

Zauważ, że aby zamontować systemy plików chronione przez IAM, MUSISZ użyć typu "efs" w poleceniu montowania:

sudo mkdir /efs
sudo mount -t efs -o tls,iam  <file-system-id/EFS DNS name>:/ /efs/
# To use a different pforile from ~/.aws/credentials
# You can use: -o tls,iam,awsprofile=namedprofile

Punkty dostępu

Punkty dostępu to specyficzne dla aplikacji punkty wejścia do systemu plików EFS, które ułatwiają zarządzanie dostępem aplikacji do udostępnionych zbiorów danych.

Podczas tworzenia punktu dostępu możesz określić właściciela i uprawnienia POSIX dla plików i katalogów tworzonych za pośrednictwem punktu dostępu. Możesz również zdefiniować niestandardowy katalog główny dla punktu dostępu, albo poprzez określenie istniejącego katalogu, albo poprzez utworzenie nowego z pożądanymi uprawnieniami. Pozwala to kontrolować dostęp do systemu plików EFS na poziomie aplikacji lub użytkownika, ułatwiając zarządzanie i zabezpieczanie udostępnionych danych plików.

Możesz zamontować system plików z punktu dostępu w następujący sposób:

# Use IAM if you need to use iam permissions
sudo mount -t efs -o tls,[iam],accesspoint=<access-point-id> \
<file-system-id/EFS DNS> /efs/

Zauważ, że nawet próbując zamontować punkt dostępu, nadal musisz móc skontaktować się z usługą NFS przez sieć, a jeśli EFS ma politykę systemu plików, potrzebujesz wystarczających uprawnień IAM do jego zamontowania.

Punkty dostępu mogą być używane do następujących celów:

  • Uproszczenie zarządzania uprawnieniami: Poprzez zdefiniowanie użytkownika i grupy POSIX dla każdego punktu dostępu, można łatwo zarządzać uprawnieniami dostępu dla różnych aplikacji lub użytkowników, bez konieczności modyfikowania uprawnień podstawowego systemu plików.

  • Wymuszenie katalogu głównego: Punkty dostępu mogą ograniczać dostęp do określonego katalogu w systemie plików EFS, zapewniając, że każda aplikacja lub użytkownik działa w swoim wyznaczonym folderze. Pomaga to zapobiec przypadkowemu ujawnieniu lub modyfikacji danych.

  • Łatwiejszy dostęp do systemu plików: Punkty dostępu mogą być powiązane z funkcją AWS Lambda lub zadaniem AWS Fargate, ułatwiając dostęp do systemu plików dla aplikacji bezserwerowych i konteneryzowanych.

Privesc

pageAWS - EFS Privesc

Post Exploitation

pageAWS - EFS Post Exploitation

Persistence

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

Inne sposoby wsparcia HackTricks:

Last updated