AWS - ECS Privesc
ECS
pageAWS - ECS Enumiam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:RunTask
ECS में iam:PassRole
, ecs:RegisterTaskDefinition
और ecs:RunTask
अनुमति का दुरुपयोग करने वाला एक हमलाविशेषज्ञ एक नए टास्क परिभाषा बना सकता है जिसमें एक हानिकारक कंटेनर होता है जो मेटाडेटा क्रेडेंशियल्स को चुरा लेता है और इसे चलाता है।
संभावित प्रभाव: एक विभिन्न ECS भूमिका में सीधा प्रिवेस्क।
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
पिछले उदाहरण की तरह एक हमलावर iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:StartTask
अनुमतियों का दुरुपयोग करने वाला एक हमलावर ECS में एक नया टास्क परिभाषा बना सकता है जिसमें एक हानिकारक कंटेनर होता है जो मेटाडेटा क्रेडेंशियल्स को चुरा लेता है और इसे चलाता है।
हालांकि, इस मामले में, एक कंटेनर इंस्टेंस को चालू करने के लिए जो कि दुरुपयोगी टास्क परिभाषा को चलाने के लिए आवश्यक है।
संभावित प्रभाव: किसी भी ECS भूमिका को सीधा उन्नत बनाना।
iam:PassRole
, ecs:RegisterTaskDefinition
, (ecs:UpdateService|ecs:CreateService)
iam:PassRole
, ecs:RegisterTaskDefinition
, (ecs:UpdateService|ecs:CreateService)
पिछले उदाहरण की तरह एक हमलावर iam:PassRole
, ecs:RegisterTaskDefinition
, ecs:UpdateService
या ecs:CreateService
अनुमतियों का दुरुपयोग करने वाला एक हमलावर ECS में एक नया कार्य परिभाषा उत्पन्न कर सकता है जिसमें एक हानिकारक कंटेनर होता है जो मेटाडेटा क्रेडेंशियल्स को चुरा लेता है और कम से कम 1 कार्य चल रहा होने के साथ एक नई सेवा बनाकर इसे चला सकता है।
संभावित प्रभाव: किसी भी ECS भूमिका में सीधा उन्नति।
ecs:RegisterTaskDefinition
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
ecs:RegisterTaskDefinition
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
यह परिदृश्य पिछले वालों की तरह है, लेकिन iam:PassRole
अनुमति के बिना।
यह फिर भी दिलचस्प है क्योंकि यदि आप किसी भी रोल के बिना भी एक अनियमित कंटेनर चला सकते हैं, तो आप एक विशेषाधिक कंटेनर चला सकते हैं ताकि नोड से बाहर निकल सकें और EC2 IAM भूमिका और नोड में चल रही अन्य ECS कंटेनर भूमिकाएं चुरा सकें।
आप यहां तक पहुंच सकते हैं कि आप अन्य कार्यों को मजबूर कर सकते हैं जिन्हें EC2 इंस्टेंस के अंदर चलाने के लिए जिनके परमाणु (क्रेडेंशियल्स) चुराने के लिए आपने उनके बारे में चर्चा की है (नोड भूमिका तक)।
यह हमला केवल तभी संभव है अगर ECS क्लस्टर EC2 इंस्टेंस का उपयोग कर रहा है और न कि Fargate।
ecs:ExecuteCommand
, ecs:DescribeTasks
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
ecs:ExecuteCommand
, ecs:DescribeTasks
, (ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)
एक हमलावर ecs:ExecuteCommand
, ecs:DescribeTasks
के साथ एक चल रहे कंटेनर में कमांड चला सकता है और इसके साथ जुड़ी IAM भूमिका को बाहर ले सकता है (आपको वर्णन अनुमतियों की आवश्यकता है क्योंकि aws ecs execute-command
चलाने के लिए यह आवश्यक है)।
हालांकि, इसे करने के लिए, कंटेनर इंस्टेंस को ExecuteCommand एजेंट चल रहा होना चाहिए (जो डिफ़ॉल्ट रूप से नहीं है)।
इसलिए, हमलावर को यह कोशिश कर सकता है:
हर चल रहे कंटेनर में एक कमांड चलाने की कोशिश करें
अगर उसके पास
ecs:RunTask
है, तोaws ecs run-task --enable-execute-command [...]
के साथ एक टास्क चलाएं।अगर उसके पास
ecs:StartTask
है, तोaws ecs start-task --enable-execute-command [...]
के साथ एक टास्क चलाएं।अगर उसके पास
ecs:CreateService
है, तोaws ecs create-service --enable-execute-command [...]
के साथ एक सेवा बनाएं।अगर उसके पास
ecs:UpdateService
है, तोaws ecs update-service --enable-execute-command [...]
के साथ एक सेवा अपडेट करें।
आप पिछले ECS प्राइवेस्क खंडों में इन विकल्पों के उदाहरण देख सकते हैं।
संभावित प्रभाव: कंटेनर्स से जुड़े एक विभिन्न भूमिका में प्राइवेस्क।
ssm:StartSession
ssm:StartSession
जांचें ssm प्राइवेस्क पेज में कैसे आप इस अनुमति का दुरुपयोग करके ECS में प्राइवेस्क कर सकते हैं:
pageAWS - SSM Privesciam:PassRole
, ec2:RunInstances
iam:PassRole
, ec2:RunInstances
जांचें ec2 प्राइवेस्क पेज में कैसे आप इन अनुमतियों का दुरुपयोग करके ECS में प्राइवेस्क कर सकते हैं:
pageAWS - EC2 Privesc?ecs:RegisterContainerInstance
?ecs:RegisterContainerInstance
TODO: क्या एक विभिन्न AWS खाते से एक इंस्टेंस को रजिस्टर करना संभव है ताकि टास्क अटैकर द्वारा नियंत्रित मशीनों पर चलाए जा सकें??
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, ecs:DescribeTaskSets
TODO: इसे टेस्ट करें
जिनके पास ecs:CreateTaskSet
, ecs:UpdateServicePrimaryTaskSet
, और ecs:DescribeTaskSets
अनुमतियाँ हैं, वे एक मौजूदा ECS सेवा के लिए एक दुर्भाग्यपूर्ण टास्क सेट बना सकते हैं और प्राथमिक टास्क सेट को अपडेट कर सकते हैं। इससे अटैकर को सेवा के अंदर विविध कोड को निष्पादित करने की अनुमति मिलती है।
संभावित प्रभाव: प्रभावित सेवा में विचित्र कोड का क्रियान्वयन करें, जिससे उसके कार्यक्षमता पर प्रभाव पड़ सकता है या संवेदनशील डेटा को बाहर ले जाया जा सकता है।
संदर्भ
Last updated