AWS - EMR Privesc

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

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

EMR

Додаткова інформація про EMR в:

pageAWS - EMR Enum

iam:PassRole, elasticmapreduce:RunJobFlow

Атакувальник з цими дозволами може запустити новий кластер EMR, приєднуючи ролі EC2 та спробувати вкрасти їх облікові дані. Зверніть увагу, що для цього вам потрібно знати деякий приватний ключ ssh, імпортований в обліковий запис або імпортувати один, і мати можливість відкрити порт 22 на головному вузлі (це можливо зробити за допомогою атрибутів 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 вказується в --service-role, а роль ec2 вказується в --ec2-attributes всередині InstanceProfile. Однак ця техніка дозволяє лише вкрасти облікові дані ролі EC2 (оскільки ви будете підключатися через ssh), але не роль IAM EMR.

Потенційний вплив: Підвищення привілеїв до службової ролі EC2, вказаної.

elasticmapreduce:CreateEditor, iam:ListRoles, elasticmapreduce:ListClusters, iam:PassRole, elasticmapreduce:DescribeEditor, elasticmapreduce:OpenEditorInConsole

З цими дозволами зловмисник може перейти до консолі AWS, створити блокнот і отримати доступ до нього для вкрадення ролі IAM.

Навіть якщо ви прикріпите роль IAM до екземпляра блокнота, у моїх тестах я помітив, що я зміг вкрасти керовані облікові дані AWS, а не облікові дані, пов'язані з роллю IAM`.

Потенційний вплив: Підвищення привілеїв до керованої ролі AWS arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile

elasticmapreduce:OpenEditorInConsole

Лише з цим дозволом зловмисник зможе отримати доступ до Jupyter Notebook та вкрасти роль IAM, пов'язану з ним. URL блокнота: https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/

Навіть якщо ви прикріпите роль IAM до екземпляра блокнота, у моїх тестах я помітив, що я зміг вкрасти керовані облікові дані AWS, а не облікові дані, пов'язані з роллю IAM`.

Потенційний вплив: Підвищення привілеїв до керованої ролі AWS arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile

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

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

Last updated