AWS - EFS Enum

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks:

EFS

Informations de base

Amazon Elastic File System (EFS) est présenté comme un système de fichiers réseau entièrement géré, évolutif et élastique par AWS. Le service facilite la création et la configuration de systèmes de fichiers pouvant être accessibles simultanément par plusieurs instances EC2 et autres services AWS. Les principales caractéristiques de l'EFS incluent sa capacité à se mettre à l'échelle automatiquement sans intervention manuelle, à fournir un accès à faible latence, à prendre en charge des charges de travail à haut débit, à garantir la durabilité des données et à s'intégrer de manière transparente à divers mécanismes de sécurité AWS.

Par défaut, le dossier EFS à monter sera / mais il pourrait avoir un nom différent.

Accès réseau

Un EFS est créé dans un VPC et serait accessible par défaut dans tous les sous-réseaux VPC. Cependant, l'EFS aura un groupe de sécurité. Pour donner accès à une EC2 (ou tout autre service AWS) pour monter l'EFS, il est nécessaire d'autoriser dans le groupe de sécurité EFS une règle NFS entrante (port 2049) du groupe de sécurité EC2.

Sans cela, vous ne pourrez pas contacter le service NFS.

Pour plus d'informations sur la façon de faire cela, consultez : https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount

Énumération

# 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

Il se peut que le point de montage EFS soit à l'intérieur du même VPC mais dans un sous-réseau différent. Si vous voulez être sûr de trouver tous les points EFS, il serait préférable de scanner le masque de sous-réseau /16.

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

Accès IAM

Par défaut, toute personne ayant accès réseau à l'EFS pourra le monter, le lire et l'écrire même en tant qu'utilisateur root. Cependant, des politiques de système de fichiers pourraient être en place ne permettant qu'aux principaux avec des autorisations spécifiques d'y accéder. Par exemple, cette politique de système de fichiers ne permettra même pas de monter le système de fichiers si vous n'avez pas l'autorisation 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"
}
}
}
]
}

Ou cela empêchera l'accès anonyme :

Notez que pour monter des systèmes de fichiers protégés par IAM, vous DEVEZ utiliser le type "efs" dans la commande de montage :

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

Points d'accès

Les points d'accès sont des points d'entrée spécifiques à une application dans un système de fichiers EFS qui facilitent la gestion de l'accès des applications aux ensembles de données partagés.

Lorsque vous créez un point d'accès, vous pouvez spécifier le propriétaire et les autorisations POSIX pour les fichiers et répertoires créés via le point d'accès. Vous pouvez également définir un répertoire racine personnalisé pour le point d'accès, soit en spécifiant un répertoire existant, soit en en créant un nouveau avec les autorisations souhaitées. Cela vous permet de contrôler l'accès à votre système de fichiers EFS sur une base par application ou par utilisateur, facilitant ainsi la gestion et la sécurisation de vos données de fichiers partagés.

Vous pouvez monter le système de fichiers à partir d'un point d'accès avec quelque chose comme :

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

Notez que même en essayant de monter un point d'accès, vous devez toujours être capable de contacter le service NFS via le réseau, et si l'EFS a une politique de système de fichiers, vous avez besoin de suffisamment d'autorisations IAM pour le monter.

Les points d'accès peuvent être utilisés à des fins suivantes :

  • Simplifier la gestion des autorisations : En définissant un utilisateur et un groupe POSIX pour chaque point d'accès, vous pouvez facilement gérer les autorisations d'accès pour différentes applications ou utilisateurs sans modifier les autorisations du système de fichiers sous-jacent.

  • Imposer un répertoire racine : Les points d'accès peuvent restreindre l'accès à un répertoire spécifique dans le système de fichiers EFS, garantissant que chaque application ou utilisateur fonctionne dans son dossier désigné. Cela aide à prévenir l'exposition ou la modification accidentelle des données.

  • Accès plus facile au système de fichiers : Les points d'accès peuvent être associés à une fonction AWS Lambda ou à une tâche AWS Fargate, simplifiant l'accès au système de fichiers pour les applications serverless et conteneurisées.

Élévation de privilèges

pageAWS - EFS Privesc

Post-exploitation

pageAWS - EFS Post Exploitation

Persistance

pageAWS - EFS Persistence
Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks :

Dernière mise à jour