AWS - EMR Privesc

Support HackTricks

EMR

More info about EMR in:

iam:PassRole, elasticmapreduce:RunJobFlow

इन अनुमतियों के साथ एक हमलावर EC2 भूमिकाओं को संलग्न करते हुए एक नया EMR क्लस्टर चला सकता है और इसके क्रेडेंशियल्स चुराने की कोशिश कर सकता है। ध्यान दें कि ऐसा करने के लिए आपको खाता में आयातित कुछ ssh प्राइवेट की के बारे में जानना होगा या एक आयात करना होगा, और मास्टर नोड में पोर्ट 22 खोलने में सक्षम होना होगा (आप --ec2-attributes के अंदर EmrManagedMasterSecurityGroup और/या ServiceAccessSecurityGroup के गुणों के साथ ऐसा करने में सक्षम हो सकते हैं)।

# Import EC2 ssh key (you will need extra permissions for this)
ssh-keygen -b 2048 -t rsa -f /tmp/sshkey -q -N ""
chmod 400 /tmp/sshkey
base64 /tmp/sshkey.pub > /tmp/pub.key
aws ec2 import-key-pair \
--key-name "privesc" \
--public-key-material file:///tmp/pub.key


aws emr create-cluster \
--release-label emr-5.15.0 \
--instance-type m4.large \
--instance-count 1 \
--service-role EMR_DefaultRole \
--ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=privesc

# Wait 1min and connect via ssh to an EC2 instance of the cluster)
aws emr describe-cluster --cluster-id <id>
# In MasterPublicDnsName you can find the DNS to connect to the master instance
## You cna also get this info listing EC2 instances

Note how an EMR role is specified in --service-role and a ec2 role is specified in --ec2-attributes inside InstanceProfile. However, this technique only allows to steal the EC2 role credentials (as you will connect via ssh) but no the EMR IAM Role.

Potential Impact: EC2 सेवा भूमिका में प्रिवेस्क।

elasticmapreduce:CreateEditor, iam:ListRoles, elasticmapreduce:ListClusters, iam:PassRole, elasticmapreduce:DescribeEditor, elasticmapreduce:OpenEditorInConsole

इन अनुमतियों के साथ, एक हमलावर AWS कंसोल में जा सकता है, एक नोटबुक बना सकता है और IAM भूमिका चुराने के लिए इसका उपयोग कर सकता है।

यहां तक कि अगर आप मेरे परीक्षणों में नोटबुक इंस्टेंस में IAM भूमिका संलग्न करते हैं, तो मैंने देखा कि मैं AWS प्रबंधित क्रेडेंशियल्स चुराने में सक्षम था और IAM भूमिका से संबंधित क्रेड्स नहीं।

Potential Impact: AWS प्रबंधित भूमिका में प्रिवेस्क arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile

elasticmapreduce:OpenEditorInConsole

बस इस अनुमति के साथ, एक हमलावर Jupyter Notebook तक पहुंच प्राप्त कर सकेगा और इससे संबंधित IAM भूमिका चुरा सकेगा। नोटबुक का URL है https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/

यहां तक कि अगर आप मेरे परीक्षणों में नोटबुक इंस्टेंस में IAM भूमिका संलग्न करते हैं, तो मैंने देखा कि मैं AWS प्रबंधित क्रेडेंशियल्स चुराने में सक्षम था और IAM भूमिका से संबंधित क्रेड्स नहीं।

Potential Impact: AWS प्रबंधित भूमिका में प्रिवेस्क arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile

Support HackTricks

Last updated