AWS - ECS Post Exploitation

Reading time: 4 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

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

ECS

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

AWS - ECS Enum

Host IAM Roles

ECS में एक IAM भूमिका को कंटेनर के अंदर चल रहे कार्य को सौंपा जा सकता है। यदि कार्य एक EC2 उदाहरण के अंदर चलाया जाता है, तो EC2 उदाहरण के साथ एक और IAM भूमिका जुड़ी होगी।
इसका मतलब है कि यदि आप एक ECS उदाहरण को समझौता करने में सफल होते हैं, तो आप संभावित रूप से ECR और EC2 उदाहरण से संबंधित IAM भूमिका प्राप्त कर सकते हैं। उन क्रेडेंशियल्स को प्राप्त करने के तरीके के बारे में अधिक जानकारी के लिए देखें:

Cloud SSRF - HackTricks

caution

ध्यान दें कि यदि EC2 उदाहरण IMDSv2 को लागू कर रहा है, दस्तावेज़ों के अनुसार, PUT अनुरोध का उत्तर में हॉप सीमा 1 होगी, जिससे EC2 उदाहरण के अंदर एक कंटेनर से EC2 मेटाडेटा तक पहुंचना असंभव हो जाएगा।

Privesc to node to steal other containers creds & secrets

लेकिन इसके अलावा, EC2 ECs कार्यों को चलाने के लिए डॉकर का उपयोग करता है, इसलिए यदि आप नोड पर भागने में सक्षम हैं या डॉकर सॉकेट तक पहुंच प्राप्त कर लेते हैं, तो आप चेक कर सकते हैं कि अन्य कंटेनर कौन से चल रहे हैं, और यहां तक कि उनमें प्रवेश कर सकते हैं और उनकी IAM भूमिकाएँ चुरा सकते हैं।

Making containers run in current host

इसके अलावा, EC2 उदाहरण की भूमिका आमतौर पर क्लस्टर के अंदर नोड्स के रूप में उपयोग किए जा रहे EC2 उदाहरणों के कंटेनर उदाहरण की स्थिति को अपडेट करने के लिए पर्याप्त अनुमतियाँ रखेगी। एक हमलावर DRAINING के लिए एक उदाहरण की स्थिति को संशोधित कर सकता है, फिर ECS इससे सभी कार्यों को हटा देगा और जो REPLICA के रूप में चल रहे हैं, वे एक अलग उदाहरण में चलाए जाएंगे, संभावित रूप से हमलावर के उदाहरण के अंदर ताकि वह उनकी IAM भूमिकाएँ और कंटेनर के अंदर से संभावित संवेदनशील जानकारी चुरा सके

bash
aws ecs update-container-instances-state \
--cluster <cluster> --status DRAINING --container-instances <container-instance-id>

यहां तक कि क्लस्टर से EC2 इंस्टेंस को रद्द करके वही तकनीक की जा सकती है। यह संभावित रूप से कम छिपा हुआ है लेकिन यह अन्य इंस्टेंस में कार्यों को चलाने के लिए मजबूर करेगा:

bash
aws ecs deregister-container-instance \
--cluster <cluster> --container-instance <container-instance-id> --force

एक अंतिम तकनीक कार्यों को फिर से निष्पादित करने के लिए ECS को यह संकेत देना है कि कार्य या कंटेनर बंद हो गया। ऐसा करने के लिए 3 संभावित APIs हैं:

bash
# Needs: ecs:SubmitTaskStateChange
aws ecs submit-task-state-change --cluster <value> \
--status STOPPED --reason "anything" --containers [...]

# Needs: ecs:SubmitContainerStateChange
aws ecs submit-container-state-change ...

# Needs: ecs:SubmitAttachmentStateChanges
aws ecs submit-attachment-state-changes ...

ECR कंटेनरों से संवेदनशील जानकारी चुराना

EC2 उदाहरण के पास शायद ecr:GetAuthorizationToken अनुमति होगी, जिससे इसे छवियाँ डाउनलोड करने की अनुमति मिलेगी (आप इनमें संवेदनशील जानकारी के लिए खोज कर सकते हैं)।

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

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