AWS - EFS Enum

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

EFS

Базова інформація

Amazon Elastic File System (EFS) представлений як повністю керована, масштабована та еластична мережева файлова система від AWS. Сервіс сприяє створенню та налаштуванню файлових систем, які можуть бути одночасно доступні для кількох екземплярів EC2 та інших сервісів AWS. Основні функції EFS включають його можливість автоматичного масштабування без ручного втручання, забезпечення доступу з низькою затримкою, підтримку високопропускних навантажень, гарантію довговічності даних та безшовну інтеграцію з різними механізмами безпеки AWS.

За замовчуванням, папка EFS для монтування буде /, але вона може мати іншу назву.

Мережевий доступ

EFS створюється в VPC і за замовчуванням доступний у всіх підмережах VPC. Однак EFS матиме Групу безпеки. Для надання доступу до EC2 (або будь-якого іншого сервісу AWS) для монтування EFS, потрібно дозволити в групі безпеки EFS вхідне правило NFS (порт 2049) з групи безпеки EC2.

Без цього ви не зможете зв'язатися з сервісом NFS.

Для отримання додаткової інформації про те, як це зробити, перевірте: https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount

Енумерація

# 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

Можливо, точка монтування EFS знаходиться в тій самій VPC, але в іншій підмережі. Якщо ви хочете бути впевненими, що знаходите всі точки EFS, краще сканувати маску підмережі /16.

Монтування 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 Доступ

За замовчуванням будь-хто з мережевим доступом до EFS зможе монтувати, читати та записувати його навіть як користувач root. Однак, можуть бути встановлені політики файлової системи, які дозволяють доступ тільки принципалам з конкретними дозволами. Наприклад, ця політика файлової системи не дозволить навіть монтувати файлову систему, якщо у вас немає дозволу 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"
}
}
}
]
}

Або це запобігає анонімному доступу:

Зверніть увагу, що для монтування файлових систем, захищених за допомогою IAM, ВИ МУСИТЬ використовувати тип "efs" у команді монтування:

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

Точки доступу

Точки доступу - це специфічні для додатків точки входу в файлову систему EFS, які полегшують управління доступом додатків до спільних наборів даних.

При створенні точки доступу ви можете вказати власника та POSIX дозволи для файлів та каталогів, створених через точку доступу. Ви також можете визначити власний кореневий каталог для точки доступу, або вказавши існуючий каталог, або створивши новий з бажаними дозволами. Це дозволяє вам контролювати доступ до вашої файлової системи EFS на основі кожного додатку або користувача, що полегшує управління та захист спільних файлових даних.

Ви можете монтувати файлову систему з точки доступу, щось на зразок:

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

Зверніть увагу, що навіть спробуючи підключити точку доступу, вам все одно потрібно мати можливість зв'язатися з службою NFS через мережу, і якщо у EFS є політика файлової системи, вам потрібно мати достатньо дозволів IAM для її підключення.

Точки доступу можуть бути використані для наступних цілей:

  • Спрощення управління дозволами: Визначаючи POSIX користувача та групу для кожної точки доступу, ви можете легко керувати дозволами доступу для різних додатків або користувачів без зміни дозволів базової файлової системи.

  • Застосування кореневого каталогу: Точки доступу можуть обмежувати доступ до конкретного каталогу в межах файлової системи EFS, забезпечуючи, що кожен додаток або користувач працює в межах призначеної йому папки. Це допомагає запобігти випадковому розголошенню або модифікації даних.

  • Легший доступ до файлової системи: Точки доступу можуть бути пов'язані з функцією AWS Lambda або завданням AWS Fargate, спрощуючи доступ до файлової системи для безсерверних та контейнеризованих додатків.

Підвищення привілеїв

pageAWS - EFS Privesc

Післяексплуатаційна діяльність

pageAWS - EFS Post Exploitation

Постійність

pageAWS - EFS Persistence
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated