Translated ['src/pentesting-ci-cd/terraform-security.md', 'src/pentestin

This commit is contained in:
Translator
2025-01-05 20:36:56 +00:00
parent 8952a46b51
commit 3f050b1d2b
3 changed files with 32 additions and 32 deletions

View File

@@ -4,7 +4,7 @@
## dynamodb
dynamodb के बारे में अधिक जानकारी के लिए देखें:
DynamoDB के बारे में अधिक जानकारी के लिए देखें:
{{#ref}}
../aws-services/aws-dynamodb-enum.md
@@ -12,7 +12,7 @@ dynamodb के बारे में अधिक जानकारी के
### `dynamodb:PutResourcePolicy`, और वैकल्पिक रूप से `dynamodb:GetResourcePolicy`
मार्च 2024 से, AWS *resource based policies* DynamoDB के लिए पेश करता है ([AWS News](https://aws.amazon.com/about-aws/whats-new/2024/03/amazon-dynamodb-resource-based-policies/))।
मार्च 2024 से, AWS *resource based policies*े लिए DynamoDB प्रदान करता है ([AWS News](https://aws.amazon.com/about-aws/whats-new/2024/03/amazon-dynamodb-resource-based-policies/))।
तो, यदि आपके पास किसी तालिका के लिए `dynamodb:PutResourcePolicy` है, तो आप बस अपने आप या किसी अन्य प्रिंसिपल को तालिका तक पूर्ण पहुंच दे सकते हैं।
@@ -47,7 +47,7 @@ aws dynamodb get-resource-policy \
]
}
```
यदि आपको इसे अनुकूलित करने की आवश्यकता है, तो यहाँ सभी संभावित DynamoDB क्रियाओं की एक सूची है: [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Operations.html)। और यहाँ उन सभी क्रियाओं की एक सूची है जिन्हें संसाधन आधारित नीति के माध्यम से अनुमति दी जा सकती है *और इनमें से कौन सी क्रियाएँ क्रॉस-खाता उपयोग की जा सकती हैं (डेटा निकासी के बारे में सोचें!)*: [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-iam-actions.html)
यदि आपको इसे अनुकूलित करने की आवश्यकता है, तो यहाँ सभी संभावित DynamoDB क्रियाओं की एक सूची है: [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Operations.html)। और यहाँ सभी क्रियाओं की एक सूची है जिन्हें संसाधन आधारित नीति के माध्यम से अनुमति दी जा सकती है *और इनमें से कौन सी क्रियाएँ क्रॉस-खाता उपयोग के लिए उपलब्ध हैं (डेटा निकासी के बारे में सोचें!)*: [AWS Documentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-iam-actions.html)
अब, नीति दस्तावेज़ `policy.json` तैयार है, संसाधन नीति डालें:
```bash
@@ -61,7 +61,7 @@ aws dynamodb put-resource-policy \
### पोस्ट एक्सप्लोइटेशन
जितना मुझे पता है, AWS में केवल कुछ AWS `dynamodb` अनुमतियाँ होने के कारण विशेषाधिकार बढ़ाने का **कोई अन्य प्रत्यक्ष तरीका नहीं है**। आप तालिकाओं से **संवेदनशील** जानकारी पढ़ सकते हैं (जिसमें AWS क्रेडेंशियल्स हो सकते हैं) और तालिकाओं पर **जानकारी लिख सकते हैं** (जो अन्य कमजोरियों को ट्रिगर कर सकता है, जैसे कि लैम्ब्डा कोड इंजेक्शन...) लेकिन ये सभी विकल्प पहले से ही **DynamoDB पोस्ट एक्सप्लोइटेशन पृष्ठ** में विचार किए गए हैं:
जितना मुझे पता है, AWS में केवल कुछ AWS `dynamodb` अनुमतियाँ होने से विशेषाधिकार बढ़ाने का **कोई अन्य सीधा तरीका नहीं है**। आप तालिकाओं से **संवेदनशील** जानकारी पढ़ सकते हैं (जिसमें AWS क्रेडेंशियल्स हो सकते हैं) और तालिकाओं पर **जानकारी लिख सकते हैं** (जो अन्य कमजोरियों को ट्रिगर कर सकता है, जैसे कि लैम्ब्डा कोड इंजेक्शन...) लेकिन ये सभी विकल्प पहले से ही **DynamoDB पोस्ट एक्सप्लोइटेशन पृष्ठ** में विचारित हैं:
{{#ref}}
../aws-post-exploitation/aws-dynamodb-post-exploitation.md

View File

@@ -34,7 +34,7 @@
]
}
```
और हाइजैक संभव है क्योंकि **टेम्पलेट अपलोड होने के क्षण से** लेकर **टेम्पलेट डिप्लॉय होने के क्षण तक एक छोटा समय विंडो** होता है। एक हमलावर बस अपने खाते में एक **lambda function** बना सकता है जो **तब ट्रिगर होगा जब एक बकेट नोटिफिकेशन भेजा जाएगा**, और **हाइजैक** कर सकता है उस **बकेट** की **सामग्री**
और हाइजैक संभव है क्योंकि **टेम्पलेट अपलोड होने के क्षण से** लेकर **टेम्पलेट डिप्लॉय होने के क्षण तक एक छोटा समय विंडो** होता है। एक हमलावर बस अपने खाते में एक **lambda function** बना सकता है जो **तब ट्रिगर होगा जब एक बकेट नोटिफिकेशन भेजा जाएगा**, और **हाइजैक** कर लेगा उस **बकेट** की **सामग्री**
![](<../../../images/image (174).png>)
@@ -43,19 +43,19 @@ Pacu मॉड्यूल [`cfn__resouce_injection`](https://github.com/RhinoSe
### `s3:PutObject`, `s3:GetObject` <a href="#s3putobject-s3getobject" id="s3putobject-s3getobject"></a>
ये **S3 में ऑब्जेक्ट प्राप्त करने और अपलोड करने** के लिए अनुमतियाँ हैं। AWS के अंदर (और बाहर) कई सेवाएँ S3 स्टोरेज का उपयोग **कॉन्फ़िग फ़ाइलों** को स्टोर करने के लिए करती हैं।\
ये **S3 में ऑब्जेक्ट्स प्राप्त करने और अपलोड करने** के लिए अनुमतियाँ हैं। AWS के अंदर (और बाहर) कई सेवाएँ S3 स्टोरेज का उपयोग **कॉन्फ़िग फ़ाइलों** को स्टोर करने के लिए करती हैं।\
एक हमलावर जिसके पास **पढ़ने की पहुँच** है, वह उन पर **संवेदनशील जानकारी** पा सकता है।\
एक हमलावर जिसके पास **लिखने की पहुँच** है, वह **डेटा को संशोधित कर सकता है ताकि किसी सेवा का दुरुपयोग किया जा सके और विशेषाधिकार बढ़ाने की कोशिश की जा सके**।\
ये कुछ उदाहरण हैं:
- यदि एक EC2 इंस्टेंस **उपयोगकर्ता डेटा को S3 बकेट में स्टोर कर रहा है**, तो एक हमलावर इसे **EC2 इंस्टेंस के अंदर मनमाना कोड निष्पादित करने के लिए संशोधित कर सकता है**
- यदि एक EC2 इंस्टेंस **S3 बकेट में उपयोगकर्ता डेटा** स्टोर कर रहा है, तो एक हमलावर इसे **EC2 इंस्टेंस के अंदर मनमाना कोड निष्पादित करने के लिए संशोधित कर सकता है**
### `s3:PutObject`, `s3:GetObject` (वैकल्पिक) टेराफॉर्म स्टेट फ़ाइल पर
यह बहुत सामान्य है कि [terraform](https://cloud.hacktricks.wiki/en/pentesting-ci-cd/terraform-security.html) स्टेट फ़ाइलें क्लाउड प्रदाताओं के ब्लॉब स्टोरेज में सहेजी जा रही हैं, जैसे कि AWS S3। स्टेट फ़ाइल के लिए फ़ाइल उपसर्ग `.tfstate` है, और बकेट नाम अक्सर यह भी बताते हैं कि वे टेराफॉर्म स्टेट फ़ाइलें हैं। आमतौर पर, हर AWS खाता एक ऐसा बकेट रखता है जो खाता की स्थिति को दिखाने वाली स्टेट फ़ाइलों को स्टोर करत है।\
यह बहुत सामान्य है कि [terraform](https://cloud.hacktricks.wiki/en/pentesting-ci-cd/terraform-security.html) स्टेट फ़ाइलें क्लाउड प्रदाताओं के ब्लॉब स्टोरेज में सहेजी जा रही हैं, जैसे कि AWS S3। स्टेट फ़ाइल के लिए फ़ाइल उपसर्ग `.tfstate` है, और बकेट नाम अक्सर यह भी बताते हैं कि वे टेराफॉर्म स्टेट फ़ाइलें हैं। आमतौर पर, हर AWS खाता में ऐसी एक बकेट होती है जो खाता की स्थिति दिखाने वाली स्टेट फ़ाइलों को स्टोर करत है।\
साथ ही आमतौर पर, वास्तविक दुनिया के खातों में लगभग हमेशा सभी डेवलपर्स के पास `s3:*` होता है और कभी-कभी यहां तक कि व्यवसाय उपयोगकर्ताओं के पास भी `s3:Put*` होता है।
तो, यदि आपके पास इन फ़ाइलों पर सूचीबद्ध अनुमतियाँ हैं, तो एक हमले का वेक्टर है जो आपको `terraform` के विशेषाधिकारों के साथ पाइपलाइन में RCE प्राप्त करने की अनुमति देता है - अधिकांश समय `AdministratorAccess`, जिससे आप क्लाउड खाते के प्रशासक बन जाते हैं। इसके अलावा, आप उस वेक्टर का उपयोग करके `terraform` को वैध संसाधनों को हटाने के लिए सेवा से इनकार के हमले को करने के लिए कर सकते हैं।
तो, यदि आपके पास इन फ़ाइलों पर सूचीबद्ध अनुमतियाँ हैं, तो एक हमले का वेक्टर है जो आपको `terraform` के विशेषाधिकारों के साथ पाइपलाइन में RCE प्राप्त करने की अनुमति देता है - अधिकांश समय `AdministratorAccess`, जिससे आप क्लाउड खाते के व्यवस्थापक बन जाते हैं। इसके अलावा, आप उस वेक्टर का उपयोग करके `terraform` को वैध संसाधनों को हटाने के लिए सेवा से इनकार के हमले को करने के लिए कर सकते हैं।
प्रत्यक्ष उपयोग योग्य शोषण कोड के लिए *Terraform Security* पृष्ठ के *Abusing Terraform State Files* अनुभाग में विवरण का पालन करें:
@@ -65,7 +65,7 @@ terraform-security.md#abusing-terraform-state-files
### `s3:PutBucketPolicy`
एक हमलावर, जिसे **उसी खाते से होना चाहिए**, यदि नहीं तो त्रुटि `The specified method is not allowed will trigger` होगी, इस अनुमति के साथ बकेट(s) पर अधिक अनुमतियाँ देने में सक्षम होगा जिससे वह पढ़, लिख, संशोधित, हटाने और बकेट को उजागर करने की अनुमति प्राप्त कर सकेगा।
एक हमलावर, जिसे **उसी खाते से होना चाहिए**, यदि नहीं तो त्रुटि `The specified method is not allowed will trigger` होगी, इस अनुमति के साथ बकेट(s) पर अधिक अनुमतियाँ देने में सक्षम होगा जिससे वह पढ़, लिख, संशोधित, हटाने और बकेट्स को उजागर कर सकेगा।
```bash
# Update Bucket policy
aws s3api put-bucket-policy --policy file:///root/policy.json --bucket <bucket-name>