AWS - EFS Enum

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

EFS

Basiese Inligting

Amazon Elastic File System (EFS) word deur AWS aangebied as 'n ten volle bestuurde, skaalbare en elastiese netwerk-lêersisteem. Die diens vergemaklik die skep en konfigurasie van lêersisteme wat gelyktydig deur verskeie EC2-instanies en ander AWS-diens kan word benader. Die sleuteleienskappe van EFS sluit in sy vermoë om outomaties te skaal sonder handmatige ingryping, lae-latensie-toegang te voorsien, hoë-deursetwerk te ondersteun, data-duursaamheid te waarborg, en naadloos te integreer met verskeie AWS-sekuriteitsmeganismes.

Standaard sal die EFS-lêer om te koppel / wees, maar dit kan 'n ander naam hê.

Netwerktoegang

'n EFS word in 'n VPC geskep en sal standaard toeganklik wees in al die VPC-subnetwerke. Die EFS sal egter 'n Sekuriteitsgroep hê. Om toegang aan 'n EC2 (of enige ander AWS-diens) te gee om die EFS te koppel, is dit nodig om in die EFS-sekuriteitsgroep 'n inkomende NFS (poort 2049) reël vanaf die EC2-sekuriteitsgroep toe te laat.

Sonner hierdie, sal jy nie in staat wees om die NFS-diens te kontak nie.

Vir meer inligting oor hoe om dit te doen, kyk na: https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount

Enumerasie

# 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

Dit kan wees dat die EFS koppelingspunt binne dieselfde VPC is maar in 'n ander subnet. As jy seker wil wees dat jy alle EFS-punte vind, sal dit beter wees om die /16 netmasker te skandeer.

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

IAM Toegang

Standaard sal enigiemand met netwerktoegang tot die EFS in staat wees om dit te koppel, te lees en te skryf selfs as 'n root-gebruiker. Tog kan daar lêerstelselbeleide van krag wees wat slegs beginsels met spesifieke toestemmings toelaat om dit te benader. Byvoorbeeld, hierdie lêerstelselbeleid sal selfs nie toelaat om die lêerstelsel te koppel as jy nie die IAM-toestemming het nie:

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

Of dit sal anonieme toegang voorkom:

Merk op dat jy die tipe "efs" in die mount bevel MOET gebruik om lêersisteme wat deur IAM beskerm word, te koppel:

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

Toegangspunte

Toegangspunte is toepassing-spesifieke toegangspunte na 'n EFS-lêersisteem wat dit vergemaklik om toepassingstoegang tot gedeelde datastelle te bestuur.

Wanneer jy 'n toegangspunt skep, kan jy die eienaar en POSIX-toestemmings vir die lêers en gids wat deur die toegangspunt geskep word, spesifiseer. Jy kan ook 'n aangepaste hoofgids vir die toegangspunt definieer, óf deur 'n bestaande gids te spesifiseer óf deur 'n nuwe een met die gewenste toestemmings te skep. Dit stel jou in staat om toegang tot jou EFS-lêersisteem op 'n per-toepassing of per-gebruiker basis te beheer, wat dit makliker maak om jou gedeelde lêerdata te bestuur en te beveilig.

Jy kan die Lêersisteem vanaf 'n toegangspunt koppel met iets soos:

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

Let wel dat selfs as jy probeer om 'n toegangspunt te koppel, moet jy steeds in staat wees om kontak te maak met die NFS-diens via die netwerk, en as die EFS 'n lêersiste het, het jy genoeg IAM-toestemmings nodig om dit te koppel.

Toegangspunte kan vir die volgende doeleindes gebruik word:

  • Vereenvoudig toestemmingsbestuur: Deur 'n POSIX-gebruiker en -groep vir elke toegangspunt te definieer, kan jy maklik toegangstoestemmings vir verskillende toepassings of gebruikers bestuur sonder om die onderliggende lêersiste se toestemmings te wysig.

  • Handhaaf 'n hoofgids: Toegangspunte kan toegang tot 'n spesifieke gids binne die EFS-lêersiste beperk, wat verseker dat elke toepassing of gebruiker binne sy aangewese vouer werk. Dit help om onbedoelde data- blootstelling of -wysiging te voorkom.

  • Makliker lêersiste-toegang: Toegangspunte kan geassosieer word met 'n AWS Lambda-funksie of 'n AWS Fargate-taak, wat lêersiste-toegang vir serverlose en houer-gebaseerde toepassings vereenvoudig.

Privesc

pageAWS - EFS Privesc

Post Exploitation

pageAWS - EFS Post Exploitation

Persistence

pageAWS - EFS Persistence
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated