AWS - Step Functions Privesc
Last updated
Last updated
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
इस AWS सेवा के बारे में अधिक जानकारी के लिए, देखें:
AWS - Step Functions Enumये विशेषाधिकार वृद्धि तकनीकें आवश्यक होंगी कि कुछ AWS स्टेप फ़ंक्शन संसाधनों का उपयोग किया जाए ताकि इच्छित विशेषाधिकार वृद्धि क्रियाएँ की जा सकें।
सभी संभावित क्रियाओं की जांच करने के लिए, आप अपने स्वयं के AWS खाते में जा सकते हैं, उस क्रिया का चयन कर सकते हैं जिसे आप उपयोग करना चाहते हैं और देख सकते हैं कि यह कौन से पैरामीटर का उपयोग कर रहा है, जैसे कि:
या आप AWS API दस्तावेज़ में भी जा सकते हैं और प्रत्येक क्रिया के दस्तावेज़ की जांच कर सकते हैं:
states:TestState
& iam:PassRole
एक हमलावर जिसके पास states:TestState
& iam:PassRole
अनुमतियाँ हैं, किसी भी स्थिति का परीक्षण कर सकता है और इसे किसी भी IAM भूमिका को पास कर सकता है बिना किसी मौजूदा स्थिति मशीन को बनाए या अपडेट किए, जिससे अन्य AWS सेवाओं तक अनधिकृत पहुँच संभव हो जाती है। संयुक्त रूप से, ये अनुमतियाँ व्यापक अनधिकृत क्रियाओं की ओर ले जा सकती हैं, जैसे कार्यप्रवाहों में हेरफेर करना, डेटा को बदलना, डेटा लीक, संसाधन हेरफेर, और विशेषाधिकार वृद्धि।
निम्नलिखित उदाहरण दिखाते हैं कि कैसे एक राज्य का परीक्षण किया जाए जो admin
उपयोगकर्ता के लिए एक एक्सेस कुंजी बनाता है, इन अनुमतियों और AWS वातावरण की एक उदार भूमिका का लाभ उठाते हुए। इस उदार भूमिका के साथ किसी उच्च-विशिष्ट नीति का संबंध होना चाहिए (उदाहरण के लिए arn:aws:iam::aws:policy/AdministratorAccess
) जो राज्य को iam:CreateAccessKey
क्रिया करने की अनुमति देती है:
stateDefinition.json:
कमांड जो प्रिवेस्क करने के लिए निष्पादित की गई:
संभावित प्रभाव: कार्यप्रवाहों का अनधिकृत निष्पादन और हेरफेर और संवेदनशील संसाधनों तक पहुंच, जो संभावित रूप से महत्वपूर्ण सुरक्षा उल्लंघनों की ओर ले जा सकता है।
states:CreateStateMachine
& iam:PassRole
& (states:StartExecution
| states:StartSyncExecution
)एक हमलावर के पास states:CreateStateMachine
& iam:PassRole
होने पर वह एक राज्य मशीन बना सकेगा और उसे किसी भी IAM भूमिका को प्रदान कर सकेगा, जिससे अन्य AWS सेवाओं तक अनधिकृत पहुंच संभव हो जाएगी जिनके पास भूमिकाओं की अनुमतियाँ हैं। पिछले प्रिवेस्क तकनीक (states:TestState
& iam:PassRole
) की तुलना में, यह अपने आप निष्पादित नहीं होती है, आपको states:StartExecution
या states:StartSyncExecution
अनुमतियों की भी आवश्यकता होगी (states:StartSyncExecution
मानक कार्यप्रवाहों के लिए उपलब्ध नहीं है, केवल व्यक्त राज्य मशीनों के लिए) ताकि राज्य मशीन पर निष्पादन शुरू किया जा सके।
निम्नलिखित उदाहरण दिखाते हैं कि कैसे एक राज्य मशीन बनाई जाए जो admin
उपयोगकर्ता के लिए एक एक्सेस कुंजी बनाती है और इस एक्सेस कुंजी को एक हमलावर-नियंत्रित S3 बकेट में निकालती है, इन अनुमतियों और AWS वातावरण की एक उदार भूमिका का लाभ उठाते हुए। इस उदार भूमिका के साथ किसी उच्च-विशिष्ट नीति का संबंध होना चाहिए (उदाहरण के लिए arn:aws:iam::aws:policy/AdministratorAccess
) जो राज्य मशीन को iam:CreateAccessKey
और s3:putObject
क्रियाएँ करने की अनुमति देती है।
stateMachineDefinition.json:
कमांड जो राज्य मशीन बनाने के लिए निष्पादित की गई:
कमांड जो पहले से बनाए गए राज्य मशीन का निष्पादन शुरू करने के लिए निष्पादित किया गया:
हमलावर-नियंत्रित S3 बकेट को पीड़ित खाते से s3:PutObject क्रिया स्वीकार करने की अनुमति होनी चाहिए।
संभावित प्रभाव: कार्यप्रवाहों का अनधिकृत निष्पादन और हेरफेर और संवेदनशील संसाधनों तक पहुंच, संभावित रूप से महत्वपूर्ण सुरक्षा उल्लंघनों की ओर ले जा सकती है।
states:UpdateStateMachine
& (हमेशा आवश्यक नहीं) iam:PassRole
एक हमलावर जिसके पास states:UpdateStateMachine
अनुमति है, वह एक राज्य मशीन की परिभाषा को संशोधित कर सकेगा, अतिरिक्त छिपे हुए राज्यों को जोड़ने में सक्षम होगा जो विशेषाधिकार वृद्धि में समाप्त हो सकते हैं। इस तरह, जब एक वैध उपयोगकर्ता राज्य मशीन का निष्पादन शुरू करता है, तो यह नया दुर्भावनापूर्ण छिपा हुआ राज्य निष्पादित होगा और विशेषाधिकार वृद्धि सफल होगी।
इस पर निर्भर करते हुए कि राज्य मशीन से संबंधित IAM भूमिका कितनी अनुमति देने वाली है, एक हमलावर को 2 स्थितियों का सामना करना पड़ेगा:
अनुमति देने वाली IAM भूमिका: यदि राज्य मशीन से संबंधित IAM भूमिका पहले से ही अनुमति देने वाली है (उदाहरण के लिए, इसमें arn:aws:iam::aws:policy/AdministratorAccess
नीति संलग्न है), तो विशेषाधिकार बढ़ाने के लिए iam:PassRole
अनुमति की आवश्यकता नहीं होगी क्योंकि IAM भूमिका को अपडेट करना आवश्यक नहीं होगा, राज्य मशीन की परिभाषा पर्याप्त है।
अनुमति न देने वाली IAM भूमिका: पिछले मामले के विपरीत, यहां एक हमलावर को iam:PassRole
अनुमति की भी आवश्यकता होगी क्योंकि राज्य मशीन से संबंधित एक अनुमति देने वाली IAM भूमिका को जोड़ना आवश्यक होगा इसके अलावा राज्य मशीन की परिभाषा को संशोधित करना।
निम्नलिखित उदाहरण दिखाते हैं कि कैसे एक वैध राज्य मशीन को अपडेट किया जाए जो केवल एक HelloWorld Lambda फ़ंक्शन को कॉल करती है, ताकि एक अतिरिक्त राज्य जोड़ा जा सके जो उपयोगकर्ता unprivilegedUser
को administrator
IAM समूह में जोड़ता है। इस तरह, जब एक वैध उपयोगकर्ता अपडेट की गई राज्य मशीन का निष्पादन शुरू करता है, तो यह नया दुर्भावनापूर्ण छिपा हुआ राज्य निष्पादित होगा और विशेषाधिकार वृद्धि सफल होगी।
यदि राज्य मशीन के साथ कोई अनुमति देने वाली IAM भूमिका जुड़ी नहीं है, तो एक अनुमति देने वाली IAM भूमिका को अपडेट करने के लिए iam:PassRole
अनुमति भी आवश्यक होगी (उदाहरण के लिए, एक जिसमें arn:aws:iam::aws:policy/AdministratorAccess
नीति संलग्न है)।
कमांड जो वैध स्थिति मशीन को अपडेट करने के लिए निष्पादित की गई:
संभावित प्रभाव: कार्यप्रवाहों का अनधिकृत निष्पादन और हेरफेर और संवेदनशील संसाधनों तक पहुंच, जो संभावित रूप से महत्वपूर्ण सुरक्षा उल्लंघनों की ओर ले जा सकता है।
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)