AWS - EFS Enum

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

EFS

Grundlegende Informationen

Amazon Elastic File System (EFS) wird von AWS als vollständig verwaltetes, skalierbares und elastisches Netzwerkdateisystem präsentiert. Der Dienst erleichtert die Erstellung und Konfiguration von Dateisystemen, die gleichzeitig von mehreren EC2-Instanzen und anderen AWS-Diensten zugegriffen werden können. Die wichtigsten Merkmale von EFS sind die Fähigkeit zur automatischen Skalierung ohne manuelle Eingriffe, Bereitstellung von Zugriff mit geringer Latenz, Unterstützung von Workloads mit hoher Durchsatzrate, Gewährleistung der Datenbeständigkeit und nahtlose Integration mit verschiedenen AWS-Sicherheitsmechanismen.

Standardmäßig wird der EFS-Ordner, der gemountet werden soll, / sein, aber er könnte einen anderen Namen haben.

Netzwerkzugriff

Ein EFS wird in einem VPC erstellt und wäre standardmäßig in allen VPC-Teilnetzwerken zugänglich. Der EFS wird jedoch eine Sicherheitsgruppe haben. Um einem EC2 (oder einem anderen AWS-Dienst) den Zugriff auf das EFS zu ermöglichen, muss in der EFS-Sicherheitsgruppe eine eingehende NFS (Port 2049) Regel aus der EC2-Sicherheitsgruppe erlaubt werden.

Ohne dies können Sie den NFS-Dienst nicht kontaktieren.

Für weitere Informationen dazu, wie dies durchgeführt wird, siehe: https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount

Enumeration

# 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

Es könnte sein, dass der EFS-Mount-Punkt sich innerhalb derselben VPC, aber in einem anderen Subnetz befindet. Wenn Sie sicher sein wollen, dass Sie alle EFS-Punkte finden, wäre es besser, das /16-Netzwerk zu scannen.

EFS mounten

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

Standardmäßig kann jeder mit Netzwerkzugriff auf das EFS es mounten, lesen und beschreiben, selbst als Root-Benutzer. Es könnten jedoch Dateisystemrichtlinien vorhanden sein, die nur Prinzipale mit spezifischen Berechtigungen darauf zugreifen lassen. Beispielsweise erlaubt diese Dateisystemrichtlinie nicht einmal das Mounten des Dateisystems, wenn Sie nicht über die IAM-Berechtigung verfügen:

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

Oder dies wird anonymen Zugriff verhindern:

Beachten Sie, dass Sie zum Einhängen von Dateisystemen, die durch IAM geschützt sind, den Typ "efs" im Einhängebefehl VERWENDEN MÜSSEN:

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

Zugriffspunkte

Zugriffspunkte sind **anwendungsspezifische Einstiegspunkte in ein EFS-Dateisystem, die es erleichtern, den Anwendungszugriff auf freigegebene Datensätze zu verwalten.

Beim Erstellen eines Zugriffspunkts können Sie den Besitzer und die POSIX-Berechtigungen für die über den Zugriffspunkt erstellten Dateien und Verzeichnisse angeben. Sie können auch ein benutzerdefiniertes Stammverzeichnis für den Zugriffspunkt definieren, entweder durch Angabe eines vorhandenen Verzeichnisses oder durch Erstellen eines neuen mit den gewünschten Berechtigungen. Dies ermöglicht es Ihnen, den Zugriff auf Ihr EFS-Dateisystem auf Anwendungs- oder Benutzerbasis zu steuern, was es einfacher macht, Ihre freigegebenen Dateidaten zu verwalten und zu sichern.

Sie können das Dateisystem von einem Zugriffspunkt aus einbinden, indem Sie beispielsweise Folgendes verwenden:

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

Beachten Sie, dass Sie auch beim Versuch, einen Zugriffspunkt zu mounten, immer noch in der Lage sein müssen, den NFS-Dienst über das Netzwerk zu kontaktieren, und wenn das EFS eine Dateisystemrichtlinie hat, benötigen Sie ausreichende IAM-Berechtigungen, um es zu mounten.

Zugriffspunkte können für folgende Zwecke verwendet werden:

  • Vereinfachung der Berechtigungsverwaltung: Durch die Definition eines POSIX-Benutzers und einer Gruppe für jeden Zugriffspunkt können Sie einfach Zugriffsberechtigungen für verschiedene Anwendungen oder Benutzer verwalten, ohne die Berechtigungen des zugrunde liegenden Dateisystems zu ändern.

  • Stammverzeichnis durchsetzen: Zugriffspunkte können den Zugriff auf ein bestimmtes Verzeichnis innerhalb des EFS-Dateisystems einschränken, um sicherzustellen, dass jede Anwendung oder jeder Benutzer innerhalb seines zugewiesenen Ordners arbeitet. Dies hilft, versehentliche Datenexposition oder -änderung zu verhindern.

  • Einfacherer Dateisystemzugriff: Zugriffspunkte können mit einer AWS Lambda-Funktion oder einer AWS Fargate-Aufgabe verknüpft werden, um den Dateisystemzugriff für serverlose und containerisierte Anwendungen zu vereinfachen.

Privilege Escalation

Post-Exploitation

Persistenz

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated