AWS - EMR Privesc
Reading time: 4 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
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
ध्यान दें कि --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 भूमिका चुराने के लिए इसका उपयोग कर सकता है।
caution
भले ही आप मेरे परीक्षणों में नोटबुक इंस्टेंस से एक IAM भूमिका संलग्न करें, मैंने देखा कि मैं AWS प्रबंधित क्रेडेंशियल्स चुराने में सक्षम था और IAM भूमिका से संबंधित क्रेड्स नहीं।
संभावित प्रभाव: 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/
caution
भले ही आप मेरे परीक्षणों में नोटबुक इंस्टेंस से एक IAM भूमिका संलग्न करें, मैंने देखा कि मैं AWS प्रबंधित क्रेडेंशियल्स चुराने में सक्षम था और IAM भूमिका से संबंधित क्रेड्स नहीं।
संभावित प्रभाव: AWS प्रबंधित भूमिका arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile के लिए प्रिवेस्क।
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।