mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-27 13:13:06 -08:00
Translated ['src/pentesting-ci-cd/cloudflare-security/cloudflare-domains
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# AWS - EC2, EBS, SSM & VPC पोस्ट एक्सप्लोइटेशन
|
||||
# AWS - EC2, EBS, SSM & VPC Post Exploitation
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
../../aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/
|
||||
{{#endref}}
|
||||
|
||||
### **दुष्ट VPC मिरर -** `ec2:DescribeInstances`, `ec2:RunInstances`, `ec2:CreateSecurityGroup`, `ec2:AuthorizeSecurityGroupIngress`, `ec2:CreateTrafficMirrorTarget`, `ec2:CreateTrafficMirrorSession`, `ec2:CreateTrafficMirrorFilter`, `ec2:CreateTrafficMirrorFilterRule`
|
||||
### **Malicious VPC Mirror -** `ec2:DescribeInstances`, `ec2:RunInstances`, `ec2:CreateSecurityGroup`, `ec2:AuthorizeSecurityGroupIngress`, `ec2:CreateTrafficMirrorTarget`, `ec2:CreateTrafficMirrorSession`, `ec2:CreateTrafficMirrorFilter`, `ec2:CreateTrafficMirrorFilterRule`
|
||||
|
||||
VPC ट्रैफिक मिररिंग **VPC के भीतर EC2 इंस्टेंस के लिए इनबाउंड और आउटबाउंड ट्रैफिक को डुप्लिकेट करती है** बिना इंस्टेंस पर कुछ भी इंस्टॉल किए। यह डुप्लिकेटेड ट्रैफिक आमतौर पर विश्लेषण और निगरानी के लिए नेटवर्क इंट्रूजन डिटेक्शन सिस्टम (IDS) जैसी किसी चीज़ पर भेजा जाएगा।\
|
||||
एक हमलावर इसका दुरुपयोग करके सभी ट्रैफिक को कैप्चर कर सकता है और इससे संवेदनशील जानकारी प्राप्त कर सकता है:
|
||||
VPC ट्रैफ़िक मिररिंग **VPC के भीतर EC2 इंस्टेंस के लिए इनबाउंड और आउटबाउंड ट्रैफ़िक को डुप्लिकेट करती है** बिना इंस्टेंस पर कुछ भी इंस्टॉल किए। यह डुप्लिकेट किया गया ट्रैफ़िक आमतौर पर विश्लेषण और निगरानी के लिए नेटवर्क इंट्रूज़न डिटेक्शन सिस्टम (IDS) जैसी किसी चीज़ पर भेजा जाएगा।\
|
||||
एक हमलावर इसका दुरुपयोग करके सभी ट्रैफ़िक को कैप्चर कर सकता है और इससे संवेदनशील जानकारी प्राप्त कर सकता है:
|
||||
|
||||
अधिक जानकारी के लिए इस पृष्ठ को देखें:
|
||||
|
||||
@@ -21,9 +21,9 @@ VPC ट्रैफिक मिररिंग **VPC के भीतर EC2
|
||||
aws-malicious-vpc-mirror.md
|
||||
{{#endref}}
|
||||
|
||||
### चल रहे इंस्टेंस की कॉपी
|
||||
### Copy Running Instance
|
||||
|
||||
इंस्टेंस आमतौर पर कुछ प्रकार की संवेदनशील जानकारी रखते हैं। अंदर जाने के विभिन्न तरीके हैं (देखें [EC2 विशेषाधिकार वृद्धि ट्रिक्स](../../aws-privilege-escalation/aws-ec2-privesc.md))। हालाँकि, यह जांचने का एक और तरीका है कि इसमें क्या है, **एक AMI बनाना और इससे एक नया इंस्टेंस चलाना (यहां तक कि अपने स्वयं के खाते में)**:
|
||||
इंस्टेंस आमतौर पर कुछ प्रकार की संवेदनशील जानकारी रखते हैं। अंदर जाने के विभिन्न तरीके हैं (देखें [EC2 privilege escalation tricks](../../aws-privilege-escalation/aws-ec2-privesc.md)). हालाँकि, यह देखने का एक और तरीका है कि इसमें क्या है **एक AMI बनाना और इससे एक नया इंस्टेंस चलाना (यहां तक कि अपने स्वयं के खाते में)**:
|
||||
```shell
|
||||
# List instances
|
||||
aws ec2 describe-images
|
||||
@@ -49,8 +49,8 @@ aws ec2 terminate-instances --instance-id "i-0546910a0c18725a1" --region eu-west
|
||||
```
|
||||
### EBS Snapshot dump
|
||||
|
||||
**Snapshots वॉल्यूम के बैकअप हैं**, जो आमतौर पर **संवेदनशील जानकारी** रखेंगे, इसलिए इन्हें चेक करने से यह जानकारी प्रकट होनी चाहिए।\
|
||||
यदि आप एक **वॉल्यूम बिना स्नैपशॉट** के पाते हैं, तो आप: **एक स्नैपशॉट बनाएँ** और निम्नलिखित क्रियाएँ करें या बस **इसे एक इंस्टेंस में माउंट करें** खाते के अंदर:
|
||||
**Snapshots बैकअप होते हैं वॉल्यूम के**, जो आमतौर पर **संवेदनशील जानकारी** रखेंगे, इसलिए इन्हें चेक करने से यह जानकारी प्रकट होनी चाहिए।\
|
||||
यदि आप एक **वॉल्यूम बिना स्नैपशॉट** के पाते हैं तो आप: **एक स्नैपशॉट बनाएँ** और निम्नलिखित क्रियाएँ करें या बस **इसे एक इंस्टेंस में माउंट करें** खाते के अंदर:
|
||||
|
||||
{{#ref}}
|
||||
aws-ebs-snapshot-dump.md
|
||||
@@ -60,17 +60,17 @@ aws-ebs-snapshot-dump.md
|
||||
|
||||
#### DNS Exfiltration
|
||||
|
||||
भले ही आप एक EC2 को इस तरह लॉक कर दें कि कोई ट्रैफ़िक बाहर न जा सके, यह अभी भी **DNS के माध्यम से एक्सफिल्ट्रेट** कर सकता है।
|
||||
भले ही आप एक EC2 को इस तरह लॉक कर दें कि कोई ट्रैफिक बाहर न जा सके, यह अभी भी **DNS के माध्यम से एक्सफिल्ट्रेट** कर सकता है।
|
||||
|
||||
- **VPC फ्लो लॉग इसे रिकॉर्ड नहीं करेंगे**।
|
||||
- आपके पास AWS DNS लॉग का कोई एक्सेस नहीं है।
|
||||
- आपके पास AWS DNS लॉग्स तक पहुँच नहीं है।
|
||||
- इसे "enableDnsSupport" को false सेट करके बंद करें:
|
||||
|
||||
`aws ec2 modify-vpc-attribute --no-enable-dns-support --vpc-id <vpc-id>`
|
||||
|
||||
#### Exfiltration via API calls
|
||||
|
||||
एक हमलावर एक खाते के API एंडपॉइंट्स को कॉल कर सकता है जिसे वह नियंत्रित करता है। Cloudtrail इन कॉल्स को लॉग करेगा और हमलावर Cloudtrail लॉग में एक्सफिल्ट्रेट की गई जानकारी देख सकेगा।
|
||||
एक हमलावर एक खाते के API एंडपॉइंट्स को कॉल कर सकता है जिसे वह नियंत्रित करता है। क्लाउडट्रेल इन कॉल्स को लॉग करेगा और हमलावर क्लाउडट्रेल लॉग्स में एक्सफिल्ट्रेट डेटा देख सकेगा।
|
||||
|
||||
### Open Security Group
|
||||
|
||||
@@ -81,7 +81,7 @@ aws ec2 authorize-security-group-ingress --group-id <sg-id> --protocol tcp --por
|
||||
```
|
||||
### Privesc to ECS
|
||||
|
||||
यह संभव है कि एक EC2 उदाहरण चलाया जाए और इसे ECS उदाहरणों को चलाने के लिए पंजीकृत किया जाए और फिर ECS उदाहरणों के डेटा को चुराया जाए।
|
||||
यह संभव है कि एक EC2 इंस्टेंस चलाया जाए और इसे ECS इंस्टेंस चलाने के लिए पंजीकृत किया जाए और फिर ECS इंस्टेंस के डेटा को चुराया जाए।
|
||||
|
||||
For [**more information check this**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs).
|
||||
|
||||
@@ -104,14 +104,14 @@ aws ec2 delete-flow-logs --flow-log-ids <flow_log_ids> --region <region>
|
||||
```shell
|
||||
aws ssm start-session --target "$INSTANCE_ID"
|
||||
```
|
||||
3. [Abusing SSRF in AWS EC2 environment](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#abusing-ssrf-in-aws-ec2-environment) स्क्रिप्ट के साथ Bastion EC2 AWS अस्थायी क्रेडेंशियल प्राप्त करें
|
||||
4. क्रेडेंशियल्स को अपने मशीन में `$HOME/.aws/credentials` फ़ाइल में `[bastion-ec2]` प्रोफ़ाइल के रूप में स्थानांतरित करें
|
||||
3. [Abusing SSRF in AWS EC2 environment](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#abusing-ssrf-in-aws-ec2-environment) स्क्रिप्ट के साथ Bastion EC2 AWS अस्थायी क्रेडेंशियल प्राप्त करें
|
||||
4. क्रेडेंशियल्स को अपने मशीन में `$HOME/.aws/credentials` फ़ाइल में `[bastion-ec2]` प्रोफ़ाइल के रूप में स्थानांतरित करें
|
||||
5. Bastion EC2 के रूप में EKS में लॉग इन करें:
|
||||
```shell
|
||||
aws eks update-kubeconfig --profile bastion-ec2 --region <EKS-CLUSTER-REGION> --name <EKS-CLUSTER-NAME>
|
||||
```
|
||||
6. `$HOME/.kube/config` फ़ाइल में `server` फ़ील्ड को `https://localhost` की ओर इंगित करने के लिए अपडेट करें
|
||||
7. निम्नलिखित के अनुसार एक SSM टनल बनाएं:
|
||||
6. `$HOME/.kube/config` फ़ाइल में `server` फ़ील्ड को `https://localhost` पर सेट करें
|
||||
7. निम्नलिखित के अनुसार SSM टनल बनाएं:
|
||||
```shell
|
||||
sudo aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters '{"host":["<TARGET-IP-OR-DOMAIN>"],"portNumber":["443"], "localPortNumber":["443"]}' --region <BASTION-INSTANCE-REGION>
|
||||
```
|
||||
@@ -119,7 +119,7 @@ sudo aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortFo
|
||||
```shell
|
||||
kubectl get pods --insecure-skip-tls-verify
|
||||
```
|
||||
ध्यान दें कि SSL कनेक्शन विफल हो जाएंगे जब तक आप `--insecure-skip-tls-verify ` ध्वज (या K8s ऑडिट टूल में इसके समकक्ष) को सेट नहीं करते। चूंकि ट्रैफ़िक सुरक्षित AWS SSM टनल के माध्यम से टनल किया गया है, आप किसी भी प्रकार के MitM हमलों से सुरक्षित हैं।
|
||||
ध्यान दें कि SSL कनेक्शन विफल हो जाएंगे जब तक आप `--insecure-skip-tls-verify` ध्वज (या K8s ऑडिट उपकरणों में इसके समकक्ष) को सेट नहीं करते। चूंकि ट्रैफ़िक सुरक्षित AWS SSM टनल के माध्यम से टनल किया गया है, आप किसी भी प्रकार के MitM हमलों से सुरक्षित हैं।
|
||||
|
||||
अंत में, यह तकनीक निजी EKS क्लस्टरों पर हमले के लिए विशिष्ट नहीं है। आप किसी भी अन्य AWS सेवा या कस्टम एप्लिकेशन पर पिवट करने के लिए मनमाने डोमेन और पोर्ट सेट कर सकते हैं।
|
||||
|
||||
@@ -139,7 +139,7 @@ aws ec2 modify-snapshot-attribute --snapshot-id <snapshot_ID> --create-volume-pe
|
||||
|
||||
एक प्रमाणित अवधारणा जो S3 पोस्ट-एक्सप्लोइटेशन नोट्स में प्रदर्शित Ransomware प्रदर्शन के समान है। KMS को Ransomware प्रबंधन सेवा (RMS) के लिए पुनः नामित किया जाना चाहिए, क्योंकि इसे विभिन्न AWS सेवाओं को एन्क्रिप्ट करने के लिए उपयोग करना कितना आसान है।
|
||||
|
||||
पहले 'हमलावर' AWS खाते से, KMS में एक ग्राहक प्रबंधित कुंजी बनाएं। इस उदाहरण के लिए, हम बस AWS को मेरे लिए कुंजी डेटा प्रबंधित करने देंगे, लेकिन एक वास्तविक परिदृश्य में, एक दुर्भावनापूर्ण अभिनेता AWS के नियंत्रण से बाहर कुंजी डेटा को बनाए रखेगा। कुंजी नीति को इस प्रकार बदलें कि किसी भी AWS खाता प्रिंसिपल को कुंजी का उपयोग करने की अनुमति हो। इस कुंजी नीति के लिए, खाते का नाम 'AttackSim' था और सभी पहुंच की अनुमति देने वाला नीति नियम 'बाहरी एन्क्रिप्शन' कहा जाता है।
|
||||
पहले एक 'हमलावर' AWS खाते से, KMS में एक ग्राहक प्रबंधित कुंजी बनाएं। इस उदाहरण के लिए, हम बस AWS को मेरे लिए कुंजी डेटा प्रबंधित करने देंगे, लेकिन एक वास्तविक परिदृश्य में, एक दुर्भावनापूर्ण अभिनेता AWS के नियंत्रण से बाहर कुंजी डेटा को बनाए रखेगा। कुंजी नीति को इस प्रकार बदलें कि किसी भी AWS खाता प्रिंसिपल को कुंजी का उपयोग करने की अनुमति हो। इस कुंजी नीति के लिए, खाते का नाम 'AttackSim' था और सभी पहुंच की अनुमति देने वाला नीति नियम 'Outside Encryption' कहा जाता है।
|
||||
```
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
@@ -239,17 +239,17 @@ aws ec2 modify-snapshot-attribute --snapshot-id <snapshot_ID> --create-volume-pe
|
||||
- `kms:GenerateDataKeyWithoutPlainText`
|
||||
- `kms:ReEncrypt`
|
||||
|
||||
अब सार्वजनिक रूप से सुलभ कुंजी का उपयोग करने के साथ। हम एक 'पीड़ित' खाते का उपयोग कर सकते हैं जिसमें कुछ EC2 उदाहरण हैं जिनमें अनएन्क्रिप्टेड EBS वॉल्यूम जुड़े हुए हैं। इस 'पीड़ित' खाते के EBS वॉल्यूम वे हैं जिनके लिए हम एन्क्रिप्शन का लक्ष्य बना रहे हैं, यह हमला एक उच्च-विशेषाधिकार AWS खाते के उल्लंघन के तहत है।
|
||||
अब सार्वजनिक रूप से सुलभ कुंजी का उपयोग करने के साथ। हम एक 'पीड़ित' खाते का उपयोग कर सकते हैं जिसमें कुछ EC2 उदाहरण हैं जिनमें अनएन्क्रिप्टेड EBS वॉल्यूम जुड़े हुए हैं। इस 'पीड़ित' खाते के EBS वॉल्यूम वे हैं जिनका हम एन्क्रिप्शन के लिए लक्ष्य बना रहे हैं, यह हमला एक उच्च-विशेषाधिकार AWS खाते के उल्लंघन के तहत है।
|
||||
|
||||
 
|
||||
|
||||
S3 रैनसमवेयर उदाहरण के समान। यह हमला जुड़े हुए EBS वॉल्यूम की प्रतियां स्नैपशॉट का उपयोग करके बनाएगा, 'हमलावर' खाते से सार्वजनिक रूप से उपलब्ध कुंजी का उपयोग करके नए EBS वॉल्यूम को एन्क्रिप्ट करेगा, फिर EC2 उदाहरणों से मूल EBS वॉल्यूम को हटा देगा और उन्हें हटा देगा, और अंत में नए एन्क्रिप्टेड EBS वॉल्यूम बनाने के लिए उपयोग किए गए स्नैपशॉट को हटा देगा। 
|
||||
S3 रैनसमवेयर उदाहरण के समान। यह हमला जुड़े हुए EBS वॉल्यूम की प्रतियां स्नैपशॉट का उपयोग करके बनाएगा, 'हमलावर' खाते से सार्वजनिक रूप से उपलब्ध कुंजी का उपयोग करके नए EBS वॉल्यूम को एन्क्रिप्ट करेगा, फिर EC2 उदाहरणों से मूल EBS वॉल्यूम को हटा देगा और उन्हें हटा देगा, और अंततः नए एन्क्रिप्टेड EBS वॉल्यूम बनाने के लिए उपयोग किए गए स्नैपशॉट को हटा देगा। 
|
||||
|
||||
इसका परिणाम केवल एन्क्रिप्टेड EBS वॉल्यूम के रूप में है जो खाते में उपलब्ध हैं।
|
||||
|
||||

|
||||
|
||||
यह भी ध्यान देने योग्य है कि स्क्रिप्ट ने मूल EBS वॉल्यूम को हटाने और अलग करने के लिए EC2 उदाहरणों को रोक दिया। मूल अनएन्क्रिप्टेड वॉल्यूम अब चले गए हैं।
|
||||
यह भी ध्यान देने योग्य है कि स्क्रिप्ट ने मूल EBS वॉल्यूम को हटाने और अलग करने के लिए EC2 उदाहरणों को रोक दिया। अब मूल अनएन्क्रिप्टेड वॉल्यूम चले गए हैं।
|
||||
|
||||

|
||||
|
||||
@@ -324,15 +324,15 @@ S3 रैनसमवेयर उदाहरण के समान। यह
|
||||
]
|
||||
}
|
||||
```
|
||||
एक पल रुकें ताकि नए सेट किए गए की नीति का प्रचार हो सके। फिर 'पीड़ित' खाते पर लौटें और नए एन्क्रिप्टेड EBS वॉल्यूम में से एक को अटैच करने का प्रयास करें। आप पाएंगे कि आप वॉल्यूम को अटैच कर सकते हैं।
|
||||
एक पल के लिए नए सेट किए गए की नीति के फैलने की प्रतीक्षा करें। फिर 'पीड़ित' खाते में वापस लौटें और नए एन्क्रिप्टेड EBS वॉल्यूम में से एक को अटैच करने का प्रयास करें। आप पाएंगे कि आप वॉल्यूम को अटैच कर सकते हैं।
|
||||
|
||||
 
|
||||
|
||||
लेकिन जब आप एन्क्रिप्टेड EBS वॉल्यूम के साथ EC2 इंस्टेंस को फिर से शुरू करने का प्रयास करते हैं, तो यह बस विफल हो जाएगा और 'pending' स्थिति से 'stopped' स्थिति में हमेशा के लिए वापस चला जाएगा क्योंकि अटैच किया गया EBS वॉल्यूम की नीति के अनुसार डिक्रिप्ट नहीं किया जा सकता है।
|
||||
लेकिन जब आप एन्क्रिप्टेड EBS वॉल्यूम के साथ EC2 इंस्टेंस को फिर से शुरू करने का प्रयास करते हैं, तो यह बस विफल हो जाएगा और 'pending' स्थिति से 'stopped' स्थिति में हमेशा के लिए वापस चला जाएगा क्योंकि अटैच किया गया EBS वॉल्यूम की नीति के कारण डिक्रिप्ट नहीं किया जा सकता।
|
||||
|
||||
 
|
||||
|
||||
यह वह पायथन स्क्रिप्ट है जिसका उपयोग किया गया है। यह 'पीड़ित' खाते के लिए AWS क्रेडेंशियल्स और एन्क्रिप्शन के लिए उपयोग की जाने वाली की के लिए एक सार्वजनिक रूप से उपलब्ध AWS ARN मान लेता है। यह स्क्रिप्ट लक्षित AWS खाते में सभी EC2 इंस्टेंस से जुड़े सभी उपलब्ध EBS वॉल्यूम की एन्क्रिप्टेड कॉपी बनाएगी, फिर हर EC2 इंस्टेंस को रोक देगी, मूल EBS वॉल्यूम को अटैच से हटा देगी, उन्हें हटा देगी, और अंततः प्रक्रिया के दौरान उपयोग किए गए सभी स्नैपशॉट को हटा देगी। इससे लक्षित 'पीड़ित' खाते में केवल एन्क्रिप्टेड EBS वॉल्यूम रह जाएंगे। इस स्क्रिप्ट का उपयोग केवल परीक्षण वातावरण में करें, यह विनाशकारी है और सभी मूल EBS वॉल्यूम को हटा देगा। आप उपयोग किए गए KMS की का उपयोग करके उन्हें पुनर्प्राप्त कर सकते हैं और स्नैपशॉट के माध्यम से उन्हें उनके मूल स्थिति में बहाल कर सकते हैं, लेकिन आपको यह बताना चाहता हूं कि यह अंततः एक रैनसमवेयर PoC है।
|
||||
यह वह पायथन स्क्रिप्ट है जो उपयोग की गई है। यह 'पीड़ित' खाते के लिए AWS क्रेड्स और एन्क्रिप्शन के लिए उपयोग की जाने वाली कुंजी के लिए एक सार्वजनिक रूप से उपलब्ध AWS ARN मान लेता है। यह स्क्रिप्ट लक्षित AWS खाते में सभी EC2 इंस्टेंस से जुड़े सभी उपलब्ध EBS वॉल्यूम की एन्क्रिप्टेड कॉपी बनाएगी, फिर हर EC2 इंस्टेंस को रोक देगी, मूल EBS वॉल्यूम को अटैच से हटा देगी, उन्हें हटा देगी, और अंततः प्रक्रिया के दौरान उपयोग किए गए सभी स्नैपशॉट को हटा देगी। इससे लक्षित 'पीड़ित' खाते में केवल एन्क्रिप्टेड EBS वॉल्यूम रह जाएंगे। इस स्क्रिप्ट का उपयोग केवल परीक्षण वातावरण में करें, यह विनाशकारी है और सभी मूल EBS वॉल्यूम को हटा देगा। आप उपयोग की गई KMS कुंजी का उपयोग करके उन्हें पुनर्प्राप्त कर सकते हैं और स्नैपशॉट के माध्यम से उन्हें उनके मूल स्थिति में बहाल कर सकते हैं, लेकिन आपको यह बताना चाहता हूं कि यह अंततः एक रैनसमवेयर PoC है।
|
||||
```
|
||||
import boto3
|
||||
import argparse
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
../aws-services/aws-ecr-enum.md
|
||||
{{#endref}}
|
||||
|
||||
### लॉगिन, पुल और पुश
|
||||
### लॉगिन, पुल & पुश
|
||||
```bash
|
||||
# Docker login into ecr
|
||||
## For public repo (always use us-east-1)
|
||||
@@ -49,7 +49,7 @@ aws ecr get-download-url-for-layer \
|
||||
छवियों को डाउनलोड करने के बाद आपको **संवेदनशील जानकारी के लिए उनकी जांच करनी चाहिए**:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics
|
||||
https://book.hacktricks.wiki/en/generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics.html
|
||||
{{#endref}}
|
||||
|
||||
### `ecr:PutLifecyclePolicy` | `ecr:DeleteRepository` | `ecr-public:DeleteRepository` | `ecr:BatchDeleteImage` | `ecr-public:BatchDeleteImage`
|
||||
|
||||
@@ -13,27 +13,27 @@
|
||||
### Host IAM Roles
|
||||
|
||||
ECS में एक **IAM भूमिका को कंटेनर के अंदर चल रहे कार्य** को सौंपा जा सकता है। **यदि** कार्य एक **EC2** उदाहरण के अंदर चलाया जाता है, तो **EC2 उदाहरण** के साथ **एक और IAM** भूमिका जुड़ी होगी।\
|
||||
जिसका मतलब है कि यदि आप एक ECS उदाहरण को **समझौता** करने में सफल होते हैं, तो आप संभावित रूप से **ECR और EC2 उदाहरण से संबंधित IAM भूमिका प्राप्त कर सकते हैं**। उन क्रेडेंशियल्स को प्राप्त करने के तरीके के बारे में अधिक जानकारी के लिए देखें:
|
||||
इसका मतलब है कि यदि आप एक ECS उदाहरण को **समझौता** करने में सफल होते हैं, तो आप संभावित रूप से **ECR और EC2 उदाहरण से संबंधित IAM भूमिका प्राप्त कर सकते हैं**। उन क्रेडेंशियल्स को प्राप्त करने के तरीके के बारे में अधिक जानकारी के लिए देखें:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
> [!CAUTION]
|
||||
> ध्यान दें कि यदि EC2 उदाहरण IMDSv2 को लागू कर रहा है, [**दस्तावेज़ों के अनुसार**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **PUT अनुरोध का उत्तर** में **hop limit 1** होगा, जिससे EC2 उदाहरण के अंदर एक कंटेनर से EC2 मेटाडेटा तक पहुंचना असंभव हो जाएगा।
|
||||
> ध्यान दें कि यदि EC2 उदाहरण IMDSv2 को लागू कर रहा है, [**दस्तावेज़ों के अनुसार**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **PUT अनुरोध का उत्तर** में **हॉप सीमा 1** होगी, जिससे EC2 उदाहरण के अंदर एक कंटेनर से EC2 मेटाडेटा तक पहुंचना असंभव हो जाएगा।
|
||||
|
||||
### Privesc to node to steal other containers creds & secrets
|
||||
|
||||
लेकिन इसके अलावा, EC2 ECs कार्यों को चलाने के लिए डॉकर का उपयोग करता है, इसलिए यदि आप नोड पर भागने में सक्षम हैं या **डॉकर सॉकेट तक पहुंच** प्राप्त कर सकते हैं, तो आप **चेक** कर सकते हैं कि **अन्य कंटेनर** कौन से चल रहे हैं, और यहां तक कि **उनमें प्रवेश कर सकते हैं** और **उनकी IAM भूमिकाएँ** चुरा सकते हैं।
|
||||
लेकिन इसके अलावा, EC2 ECs कार्यों को चलाने के लिए डॉकर का उपयोग करता है, इसलिए यदि आप नोड पर भागने में सक्षम हैं या **डॉकर सॉकेट तक पहुंच** प्राप्त कर लेते हैं, तो आप **चेक** कर सकते हैं कि **अन्य कंटेनर** कौन से चल रहे हैं, और यहां तक कि **उनमें प्रवेश कर सकते हैं** और **उनकी IAM भूमिकाएँ** चुरा सकते हैं।
|
||||
|
||||
#### Making containers run in current host
|
||||
|
||||
इसके अलावा, **EC2 उदाहरण की भूमिका** आमतौर पर **क्लस्टर के अंदर नोड्स के रूप में उपयोग किए जा रहे EC2 उदाहरणों** की **कंटेनर उदाहरण स्थिति** को **अपडेट** करने के लिए पर्याप्त **अनुमतियाँ** रखेगी। एक हमलावर **DRAINING** के लिए एक उदाहरण की **स्थिति को संशोधित** कर सकता है, फिर ECS **इससे सभी कार्यों को हटा देगा** और जो **REPLICA** के रूप में चल रहे हैं, वे **एक अलग उदाहरण में चलेंगे,** संभावित रूप से **हमलावर के उदाहरण के अंदर** ताकि वह **उनकी IAM भूमिकाएँ** और संभावित संवेदनशील जानकारी को कंटेनर के अंदर से **चुरा सके।**
|
||||
इसके अलावा, **EC2 उदाहरण की भूमिका** आमतौर पर **क्लस्टर के अंदर नोड्स के रूप में उपयोग किए जा रहे EC2 उदाहरणों के कंटेनर उदाहरण की स्थिति को अपडेट करने** के लिए पर्याप्त **अनुमतियाँ** रखेगी। एक हमलावर **DRAINING** के लिए एक उदाहरण की **स्थिति को संशोधित** कर सकता है, फिर ECS **इससे सभी कार्यों को हटा देगा** और जो **REPLICA** के रूप में चल रहे हैं, वे **एक अलग उदाहरण में चलाए जाएंगे,** संभावित रूप से **हमलावर के उदाहरण के अंदर** ताकि वह **उनकी IAM भूमिकाएँ** और कंटेनर के अंदर से संभावित संवेदनशील जानकारी **चुरा सके**।
|
||||
```bash
|
||||
aws ecs update-container-instances-state \
|
||||
--cluster <cluster> --status DRAINING --container-instances <container-instance-id>
|
||||
```
|
||||
यहां तक कि **क्लस्टर से EC2 इंस्टेंस को डीरजिस्टर करके** वही तकनीक की जा सकती है। यह संभावित रूप से कम छिपी हुई है लेकिन यह **अन्य इंस्टेंस में कार्यों को चलाने के लिए मजबूर करेगा:**
|
||||
यहां तक कि **क्लस्टर से EC2 इंस्टेंस को रद्द करके** वही तकनीक की जा सकती है। यह संभावित रूप से कम छिपा हुआ है लेकिन यह **अन्य इंस्टेंस में कार्यों को चलाने के लिए मजबूर करेगा:**
|
||||
```bash
|
||||
aws ecs deregister-container-instance \
|
||||
--cluster <cluster> --container-instance <container-instance-id> --force
|
||||
@@ -52,6 +52,6 @@ aws ecs submit-attachment-state-changes ...
|
||||
```
|
||||
### ECR कंटेनरों से संवेदनशील जानकारी चुराना
|
||||
|
||||
EC2 उदाहरण के पास संभवतः `ecr:GetAuthorizationToken` अनुमति होगी, जिससे इसे **छवियाँ डाउनलोड** करने की अनुमति मिलेगी (आप इनमें संवेदनशील जानकारी के लिए खोज कर सकते हैं)।
|
||||
EC2 उदाहरण के पास शायद `ecr:GetAuthorizationToken` अनुमति होगी, जिससे इसे **छवियाँ डाउनलोड** करने की अनुमति मिलेगी (आप इनमें संवेदनशील जानकारी के लिए खोज कर सकते हैं)।
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user