AWS - EFS Enum

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

EFS

Osnovne informacije

Amazon Elastic File System (EFS) je predstavljen kao potpuno upravljiv, skalabilan i elastičan mrežni fajl sistem od strane AWS-a. Usluga olakšava kreiranje i konfigurisanje fajl sistema koji mogu biti istovremeno pristupani od strane više EC2 instanci i drugih AWS usluga. Ključne karakteristike EFS-a uključuju njegovu sposobnost automatskog skaliranja bez ručnog mešanja, obezbeđivanje pristupa sa niskom latencijom, podršku za radne opterećenja visokog protoka, garantovanje trajnosti podataka i besprekorno integrisanje sa različitim mehanizmima AWS sigurnosti.

Po podrazumevanoj vrednosti, EFS folder koji se montira će biti / ali može imati različito ime.

Pristup mreži

EFS se kreira u VPC-u i po podrazumevanoj vrednosti je dostupan u svim VPC podmrežama. Međutim, EFS će imati Sigurnosnu grupu. Da bi se omogućio pristup EC2 (ili bilo kojoj drugoj AWS usluzi) za montiranje EFS-a, potrebno je dozvoliti ulazno NFS pravilo (port 2049) iz Sigurnosne grupe EC2 u Sigurnosnoj grupi EFS-a.

Bez toga, nećete moći da kontaktirate NFS uslugu.

Za više informacija o tome kako to uraditi proverite: https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount

Enumeracija

# 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

Moguće je da je tačka montiranja EFS-a unutar iste VPC, ali u drugoj podmreži. Ako želite da budete sigurni da pronađete sve EFS tačke, bolje je skenirati /16 netmasku.

Montiranje EFS-a

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/

IAM Pritup

Podrazumevano, svako ko ima pristup mreži EFS-a moći će da montira, čita i piše u njega čak i kao korisnik sa administratorskim pravima. Međutim, politike sistema datoteka mogu biti postavljene tako da dozvole pristup samo principima sa određenim dozvolama. Na primer, ova politika sistema datoteka neće dozvoliti ni montiranje sistema datoteka ako nemate IAM dozvolu:

{
"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"
}
}
}
]
}

Ili ovo će sprečiti anoniman pristup:

Imajte na umu da prilikom montiranja sistema datoteka zaštićenih IAM-om MORA se koristiti tip "efs" u mount naredbi:

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

Pristupne tačke

Pristupne tačke su aplikacijski specifične ulazne tačke u EFS fajl sistem koje olakšavaju upravljanje pristupom aplikacija deljenim skupovima podataka.

Prilikom kreiranja pristupne tačke, možete specificirati vlasnika i POSIX dozvole za fajlove i direktorijume kreirane kroz pristupnu tačku. Takođe možete definisati prilagođeni koreni direktorijum za pristupnu tačku, ili specificiranjem postojećeg direktorijuma ili kreiranjem novog sa željenim dozvolama. Ovo vam omogućava da kontrolišete pristup vašem EFS fajl sistemu na nivou aplikacije ili korisnika, olakšavajući upravljanje i osiguravanje vaših deljenih fajlova.

Možete montirati fajl sistem iz pristupne tačke na sledeći način:

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

Imajte na umu da čak i pokušavajući da montirate pristupnu tačku, i dalje morate biti u mogućnosti da kontaktirate NFS servis putem mreže, i ako EFS ima polisu sistema datoteka, potrebne su vam dovoljne IAM dozvole da je montirate.

Pristupne tačke mogu se koristiti u sledeće svrhe:

  • Simplifikacija upravljanja dozvolama: Definisanjem POSIX korisnika i grupe za svaku pristupnu tačku, možete lako upravljati pristupnim dozvolama za različite aplikacije ili korisnike bez modifikacije dozvola osnovnog sistema datoteka.

  • Nametanje korenskog direktorijuma: Pristupne tačke mogu ograničiti pristup na određeni direktorijum unutar EFS sistema datoteka, osiguravajući da svaka aplikacija ili korisnik radi unutar svog određenog foldera. Ovo pomaže u sprečavanju slučajnog izlaganja ili modifikacije podataka.

  • Lakši pristup sistemu datoteka: Pristupne tačke mogu biti povezane sa AWS Lambda funkcijom ili AWS Fargate zadatkom, pojednostavljujući pristup sistemu datoteka za serverless i kontejnerizovane aplikacije.

Privesc

pageAWS - EFS Privesc

Post Eksploatacija

pageAWS - EFS Post Exploitation

Persistencija

pageAWS - EFS Persistence
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated