AWS - EMR Privesc

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

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

EMR

pageAWS - EMR Enum

iam:PassRole, elasticmapreduce:RunJobFlow

इन अनुमतियों वाले एक हमलावर नए EMR क्लस्टर चला सकता है जिसमें EC2 भूमिकाएँ जुड़ी होती हैं और इसके क्रेडेंशियल्स चुरा सकता है। ध्यान दें कि इसे करने के लिए आपको खाते में आयातित कुछ 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

नोट करें कि --service-role में EMR रोल निर्दिष्ट किया गया है और InstanceProfile के अंदर --ec2-attributes में ec2 रोल निर्दिष्ट किया गया है। हालांकि, यह तकनीक केवल EC2 रोल क्रेडेंशियल्स चुरा सकती है (जैसे कि आप SSH के माध्यम से कनेक्ट करेंगे) लेकिन EMR IAM रोल नहीं।

संभावित प्रभाव: निर्दिष्ट किए गए EC2 सेवा रोल की उन्नति।

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

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

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

संभावित प्रभाव: arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile को AWS प्रबंधित रोल में उन्नति।

elasticmapreduce:OpenEditorInConsole

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

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

संभावित प्रभाव: arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile को AWS प्रबंधित रोल में उन्नति।

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

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

Last updated