AWS - SSM Privesc
SSM
SSM के बारे में अधिक जानकारी के लिए देखें:
AWS - EC2, EBS, ELB, SSM, VPC & VPN Enumssm:SendCommand
ssm:SendCommand
एक हमलावता जिसके पास ssm:SendCommand
अनुमति है, इंस्टेंसेस में कमांड चला सकता है जो अमेज़न SSM एजेंट चला रहे हैं और उसके अंदर चल रहे IAM रोल को कम्प्रोमाइज़ कर सकता है।
यदि आप इस तकनीक का उपयोग किसी पहले से ही कंप्रोमाइज़्ड EC2 इंस्टेंस के अंदर वर्चस्व बढ़ाने के लिए कर रहे हैं, तो आप स्थानीय रैव शैल को कैप्चर कर सकते हैं:
संभावित प्रभाव: चल रही इंस्टेंसेज के साथ जुड़े EC2 IAM रोल्स में सीधा प्रिविलेज इस्केलेशन।
ssm:StartSession
ssm:StartSession
एक हमलावर जिसके पास ssm:StartSession
अनुमति है, वह अमेज़ॅन SSM एजेंट चल रही इंस्टेंसेज में एक SSH जैसा सेशन शुरू कर सकता है और उसमें चल रहे IAM रोल को कम्प्रोमाइज़ कर सकता है।
एक सत्र शुरू करने के लिए आपको 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
का उपयोग करके कंटेनर के अंदर एक कमांड चला सकते हैं।
दस्तावेज़ के अनुसार यह उस उपकरण के बीच एक सुरक्षित चैनल बनाकर किया जाता है जिसका उपयोग आप "exec" कमांड को प्रारंभ करने के लिए करते हैं और SSM सेशन मैनेजर कंटेनर के लिए लक्ष्यित है। (इसके काम करने के लिए SSM सेशन मैनेजर प्लगइन आवश्यक है)
इसलिए, ssm:StartSession
वाले उपयोगकर्ता उस विकल्प के साथ ECS tasks के अंदर एक शैल मिला सकते हैं जिसे सक्षम करने के लिए केवल निम्नलिखित को चलाना होगा:
संभावित प्रभाव: ExecuteCommand
सक्षम किए गए चल रहे tasks के साथ जुड़े ECS
IAM roles को सीधा वृद्धि।
ssm:ResumeSession
ssm:ResumeSession
एक हमलावर जिसके पास अनुमति है ssm:ResumeSession
वह उन इंस्टेंसेज में एक SSH जैसा सत्र फिर से शुरू कर सकता है जिनमें Amazon SSM एजेंट चल रहा है जिनका एक विच्छेदित SSM सत्र स्थिति है और उसके अंदर चल रहे IAM Role को **क्षति पहुंचा सकता ह।
संभावित प्रभाव: चल रहे इंस्टेंसेज के साथ जुड़े EC2 IAM रोल्स में सीधा प्रिविलेज इस्केलेशन, SSM एजेंट्स चल रहे हों और डिस्कनेक्टेड सेशन्स।
ssm:DescribeParameters
, (ssm:GetParameter
| ssm:GetParameters
)
ssm:DescribeParameters
, (ssm:GetParameter
| ssm:GetParameters
)उल्लंघक जिसके पास उल्लिखित अनुमतियाँ हैं, वह SSM parameters की सूची बना सकेगा और उन्हें साफ-सुथरे पाठ में पढ़ सकेगा। इन पैरामीटर्स में आपको अक्सर ऐसी संवेदनशील जानकारी मिल सकती है जैसे SSH कुंजी या API कुंजी।
संभावित प्रभाव: पैरामीटर्स में संवेदनशील जानकारी खोजें।
ssm:ListCommands
ssm:ListCommands
इस अनुमति वाले हमलावर सभी कमांड्स की सूची बना सकते हैं और उम्मीद है कि उनमें संवेदनशील जानकारी मिलेगी।
संभावित प्रभाव: कमांड लाइन्स में संवेदनशील जानकारी खोजें।
ssm:GetCommandInvocation
, (ssm:ListCommandInvocations
| ssm:ListCommands
)
ssm:GetCommandInvocation
, (ssm:ListCommandInvocations
| ssm:ListCommands
)इन अनुमतियों के साथ एक हमलावर सभी भेजी गई कमांड्स की सूची बना सकता है और उम्मीद है कि उसमें उत्पन्न संवेदनशील जानकारी पा सकता है।
संभावित प्रभाव: कमांड लाइन के आउटपुट में छिपी संवेदनशील जानकारी खोजें।
Codebuild
आप कोडबिल्ड परियोजना में बनाई जा रही एक SSM का उपयोग भी कर सकते हैं:
AWS - Codebuild PrivescLast updated