Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
iam-vulnerable — Terraform का उपयोग करके अपना खुद का डिज़ाइन द्वारा कमजोर AWS IAM विशेषाधिकार वृद्धि प्लेग्राउंड बनाएं। | Kitploit
उपकरण/GitHubGitHub/bishopfox/iam-vulnerable
विशेषाधिकार वृद्धिभेद्यता विश्लेषणपेनिट्रेशन टेस्टिंगक्लाउड सुरक्षापहचान और एक्सेस प्रबंधन (IAM)लर्निंग और शिक्षालैब और अभ्यास
GitHubbishopfox/iam-vulnerable

iam-vulnerable

Terraform का उपयोग करके अपना खुद का डिज़ाइन द्वारा कमजोर AWS IAM विशेषाधिकार वृद्धि प्लेग्राउंड बनाएं।

रिपॉजिटरी देखें
58510711 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
वेबसाइट

IAM Vulnerable

टेराफॉर्म का उपयोग करके अपना स्वयं का डिज़ाइन द्वारा असुरक्षित AWS IAM विशेषाधिकार वृद्धि खेल का मैदान बनाएं।

IAM Vulnerable आपके AWS खाते में 250 से अधिक IAM संसाधनों को तैनात करने के लिए टेराफॉर्म बाइनरी और आपकी AWS क्रेडेंशियल्स का उपयोग करता है। मिनटों में, आप असुरक्षित IAM कॉन्फ़िगरेशन की पहचान करना और उनका शोषण करना सीखना शुरू कर सकते हैं जो विशेषाधिकार वृद्धि की अनुमति देते हैं।

IAM Vulnerable का बड़ा भाई - CloudFoxable

नमस्ते सभी। IAM Vulnerable AWS IAM विशेषाधिकार वृद्धि के मूल निर्माण ब्लॉकों को समझने के लिए अभी भी अत्यंत उपयोगी है। हालाँकि, IAM vulnerable बनाने के कुछ साल बाद, मैंने CloudFoxable बनाया, जो एक CTF शैली का संस्करण है जो आपको क्लाउड पैठ परीक्षण की मूल बातें अधिक समग्र रूप से सिखाता है। - @sethsec

जानबूझकर असुरक्षित खेल का मैदान

  • CloudFoxable - एक गेमिफाइड क्लाउड हैकिंग सैंडबॉक्स

IAM-Vulnerable, CloudFox और CloudFoxable के बारे में बातचीत करना चाहते हैं?

हमसे RedSec डिस्कॉर्ड सर्वर पर जुड़ें।

🦊 वर्तमान में समर्थित विशेषाधिकार वृद्धि पथ: 31

विषय सूची

  • IAM Vulnerable
  • अनुशंसित दृष्टिकोण
  • विस्तृत उपयोग निर्देश
  • त्वरित आरंभ
    • अभी क्या संसाधन बनाए गए?
    • इसकी लागत कितनी होगी?
  • एक मॉड्यूलर दृष्टिकोण
    • मुफ्त संसाधन मॉड्यूल
    • गैर-मुफ्त संसाधन मॉड्यूल
  • समर्थित विशेषाधिकार वृद्धि पथ
  • अन्य उपयोग के मामले
  • सामान्य प्रश्न

अनुशंसित दृष्टिकोण

  1. एक AWS खाता चुनें या बनाएं - ऐसे खाते का उपयोग न करें जिसमें कोई उत्पादन संसाधन या संवेदनशील डेटा हो।
  2. अपना असुरक्षित खेल का मैदान बनाएं - इस रिपॉजिटरी का उपयोग करके IAM प्रिंसिपल्स और नीतियां बनाएं जो 31 अद्वितीय AWS IAM विशेषाधिकार वृद्धि पथों का समर्थन करती हैं।
  3. अपना होमवर्क करें - स्पेंसर गीटज़ेन द्वारा अग्रणी 21 मूल विशेषाधिकार वृद्धि पथों के बारे में जानें।
  4. हैकी, हैक - गेर्बेन क्लेजन की गाइड का उपयोग करके अपने नए खेल के मैदान में शोषण का अभ्यास करें।
  5. स्तर ऊपर उठाएं - अपने टूल्स को अपने नए IAM विशेषाधिकार वृद्धि खेल के मैदान खाते के विरुद्ध चलाएं (जैसे, Cloudsplaining, AWSPX, Principal Mapper, Pacu)।

विस्तृत उपयोग निर्देश

ब्लॉग पोस्ट: IAM Vulnerable - एक AWS IAM विशेषाधिकार वृद्धि खेल का मैदान

त्वरित आरंभ

यह त्वरित आरंभ आपके AWS खाते में IAM Vulnerable को यथाशीघ्र चालू करने के लिए एक निश्चित दृष्टिकोण की रूपरेखा प्रस्तुत करता है। हो सकता है कि आपने इनमें से कई चरण पहले ही पूरे कर लिए हों, या आप अपने वर्तमान कॉन्फ़िगरेशन के साथ काम करने के लिए चीजों को ट्वीक करना चाहते हों। कुछ अतिरिक्त कॉन्फ़िगरेशन विकल्पों के लिए इस रिपॉजिटरी में अन्य उपयोग के मामले अनुभाग देखें।

  1. एक AWS खाता चुनें या बनाएं। (ऐसे खाते का उपयोग न करें जिसमें कोई उत्पादन संसाधन या संवेदनशील डेटा हो!)
  2. एक गैर-रूट उपयोगकर्ता को प्रशासनिक पहुंच के साथ बनाएं जिसका उपयोग आप टेराफॉर्म चलाते समय करेंगे।
  3. उस उपयोगकर्ता के लिए एक एक्सेस कुंजी बनाएं।
  4. AWS CLI स्थापित करें।
  5. अपनी AWS CLI कॉन्फ़िगर करें अपने नवनिर्मित व्यवस्थापक उपयोगकर्ता को डिफ़ॉल्ट प्रोफ़ाइल के रूप में सेट करके।
  6. aws sts get-caller-identity निष्पादित करके पुष्टि करें कि आपका CLI अपेक्षित रूप से काम कर रहा है।
  7. टेराफॉर्म बाइनरी स्थापित करें और बाइनरी स्थान को अपने पथ में जोड़ें।
  8. git clone https://github.com/BishopFox/iam-vulnerable
  9. cd iam-vulnerable/
  10. terraform init
  11. (वैकल्पिक) export TF_VAR_aws_local_profile=PROFILE_IN_AWS_CREDENTIALS_FILE_IF_OTHER_THAN_DEFAULT
  12. (वैकल्पिक) export TF_VAR_aws_local_creds_file=FILE_LOCATION_IF_NON_DEFAULT
  13. (वैकल्पिक) terraform plan

सफाई

जब भी आप IAM Vulnerable-निर्मित सभी संसाधनों को हटाना चाहते हैं, तो आप ये कमांड चला सकते हैं:

  1. cd iam-vulnerable/
  2. terraform destroy

वैकल्पिक सफाई (जब टेराफॉर्म स्थिति खो गई हो)

ऐसी स्थिति में जहां आपने टेराफॉर्म का उपयोग करके iam-vulnerable को तैनात किया है लेकिन अब आपके पास स्थिति फ़ाइल तक पहुंच नहीं है (और terraform destroy काम नहीं करता है), तो आप निम्नलिखित सफाई स्क्रिप्ट का उपयोग कर सकते हैं:```bash

Python version (requires boto3)

./cleanup-scripts/cleanup_iam_vulnerable.py --dry-run

Bash version (requires AWS CLI and jq)

./cleanup-scripts/cleanup_iam_vulnerable.sh --dry-run

root@kitploit:~
These scripts will:
- स्वचालित रूप से आपके AWS खाते में सभी IAM संवेदनशील संसाधनों की पहचान करेंगे
- आपको आगे बढ़ने से पहले वास्तव में क्या हटाया जाएगा, यह दिखाएंगे
- निर्भरता संघर्षों से बचने के लिए संसाधनों को उचित क्रम में हटाएंगे
- AWS प्रोफाइल का समर्थन करेंगे और विस्तृत लॉगिंग प्रदान करेंगे

**महत्वपूर्ण**: पहले `--dry-run` के साथ चलाएं ताकि पता चले कि क्या हटाया जाएगा। विस्तृत उपयोग निर्देशों के लिए `cleanup-scripts/CLEANUP_README.md` देखें।


## अभी कौन से संसाधन बनाए गए?

Terraform बाइनरी ने आपके डिफ़ॉल्ट AWS खाता प्रोफ़ाइल क्रेडेंशियल का उपयोग करके निम्नलिखित बनाए:
* 31 उपयोगकर्ता, भूमिकाएँ और नीतियाँ, प्रत्येक में प्लेग्राउंड खाते के प्रशासनिक एक्सेस के लिए एक अद्वितीय शोषण पथ है
* कुछ अतिरिक्त उपयोगकर्ता, समूह, भूमिकाएँ और नीतियाँ जो कुछ शोषण पथों को पूरी तरह से साकार करने के लिए आवश्यक हैं
* कुछ अतिरिक्त उपयोगकर्ता, भूमिकाएँ और नीतियाँ जो अन्य उपकरणों की पहचान क्षमताओं का परीक्षण करती हैं

डिफ़ॉल्ट रूप से, इस Terraform मॉड्यूल द्वारा बनाई गई प्रत्येक भूमिका उस उपयोगकर्ता या भूमिका द्वारा ग्रहण की जा सकती है जिसका उपयोग आपने Terraform चलाने के लिए किया था।
* यदि आप चाहते हैं कि Terraform डिफ़ॉल्ट प्रोफ़ाइल के अलावा किसी अन्य प्रोफ़ाइल का उपयोग करे, या आप `assume_role_policy` ARN को हार्ड-कोड करना चाहते हैं, तो [अन्य उपयोग के मामले](#other-use-cases) देखें।

## इसकी लागत कितनी होगी?
IAM संवेदनशील को उसके **डिफ़ॉल्ट कॉन्फ़िगरेशन में तैनात करने पर कोई लागत नहीं आएगी**। अगले अनुभाग में जानें कि ऐसे गैर-डिफ़ॉल्ट मॉड्यूल को कैसे सक्षम किया जाए जिनमें लागत आती है, और यदि आप इसे तैनात करते हैं तो प्रत्येक मॉड्यूल की प्रति माह कितनी लागत होगी।

# एक मॉड्यूलर दृष्टिकोण

IAM संवेदनशील कुछ संसाधनों को मॉड्यूल में एक साथ समूहित करता है। कुछ मॉड्यूल डिफ़ॉल्ट रूप से सक्षम होते हैं (जिनका कोई लागत प्रभाव नहीं होता), और अन्य डिफ़ॉल्ट रूप से अक्षम होते हैं (जिन्हें तैनात करने पर लागत आती है)। इस तरह, आप आवश्यकतानुसार विशिष्ट मॉड्यूल को सक्षम कर सकते हैं।

उदाहरण के लिए, जब आप IAM के बाहर के संसाधनों से जुड़े `ssm:StartSession` जैसे शोषण पथों के साथ खेलने के लिए तैयार हों, तो आप `iam-vulnerable/main.tf` फ़ाइल में मॉड्यूल को अनकमेंट करके और `terraform apply` को फिर से चलाकर इन संसाधनों को मांग पर तैनात और हटा सकते हैं:```
# Uncomment the next four lines to create an ec2 instance and related resources
#module "ec2" {
#  source = "./modules/non-free-resources/ec2"
#  aws_assume_role_arn = (var.aws_assume_role_arn != "" ? var.aws_assume_role_arn : data.aws_caller_identity.current.arn)
#}

जब आप ec2 मॉड्यूल को अनकमेंट करते हैं, तो चलाएँ:``` terraform init terraform apply

root@kitploit:~
आपने अब SSM privesc पथों को आज़माने के लिए आवश्यक घटकों को तैनात कर दिया है।

## मुफ़्त संसाधन मॉड्यूल

`free-resources` के अंतर्गत तैनात किसी भी चीज़ की कोई लागत नहीं है:

| नाम | डिफ़ॉल्ट स्थिति | अनुमानित लागत | विवरण |
| --- | --- | --- | --- |
| privesc-paths  | सक्षम | कोई नहीं | इसमें सभी IAM privesc पथ शामिल हैं |
| tool-testing  | सक्षम | कोई नहीं | इसमें परीक्षण मामले शामिल हैं जो विभिन्न IAM privesc टूल की क्षमताओं का मूल्यांकन करते हैं |

## गैर-मुफ़्त संसाधन मॉड्यूल

इन अतिरिक्त मॉड्यूल को तैनात करने पर लागत आ सकती है:

| नाम | डिफ़ॉल्ट स्थिति | अनुमानित लागत | विवरण | किसके लिए आवश्यक |
| --- | --- | --- | --- | --- |
| EC2  | अक्षम | :heavy_dollar_sign: <br> $4.50/माह | एक EC2 इंस्टेंस और एक सुरक्षा समूह बनाता है जो कहीं से भी SSH की अनुमति देता है | `ssm-SendCommand` <br> `ssm-StartSession` <br> `ec2InstanceConnect-SendSSHPublicKey` |
| Lambda | अक्षम | :slightly_smiling_face: <br> मासिक लागत उपयोग पर निर्भर करती है (लागत शून्य होनी चाहिए) | एक Lambda फ़ंक्शन बनाता है  | `Lambda-EditExistingLambdaFunctionWithRole` |
| Glue | अक्षम | :heavy_dollar_sign::heavy_dollar_sign::heavy_dollar_sign::heavy_dollar_sign: <br> $4/घंटा | एक Glue dev एंडपॉइंट बनाता है | `Glue-UpdateExistingGlueDevEndpoint` |
| SageMaker | अक्षम | अभी पक्का नहीं | एक SageMaker नोटबुक बनाता है | `sageMakerCreatePresignedNotebookURL` |
| CloudFormation | अक्षम |  :slightly_smiling_face: <br> CloudFormation के माध्यम से बनाए गए सीक्रेट के लिए $0.40/माह। स्टैक के लिए कुछ नहीं या बहुत कम | एक CloudFormation स्टैक बनाता है जो सीक्रेट मैनेजर में एक सीक्रेट बनाता है | `privesc-cloudFormationUpdateStack` |

# समर्थित विशेषाधिकार वृद्धि पथ

| पथ का नाम | IAM संवेदनशील प्रोफ़ाइल नाम | आवश्यक गैर-डिफ़ॉल्ट मॉड्यूल | शोषण संदर्भ |
| --- | --- | --- | --- |
| **श्रेणी: अन्य उपयोगकर्ताओं पर IAM अनुमतियाँ** |   |   |   |
| IAM-CreateAccessKey | privesc4  | कोई नहीं  | :fox_face: [Well, That Escalated Quickly - Privesc 04](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 3](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-3) |
| IAM-CreateLoginProfile | privesc5  | कोई नहीं  | :fox_face: [Well, That Escalated Quickly - Privesc 05](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 3](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-3)  |
| IAM-UpdateLoginProfile | privesc6  | कोई नहीं  | :fox_face: [Well, That Escalated Quickly - Privesc 06](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 3](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-3)  |
| **श्रेणी: सेवा को PassRole** |   |  |   |
| CloudFormation-PassExistingRoleToCloudFormation | privesc20  | कोई नहीं  |:fox_face: [Well, That Escalated Quickly - Privesc 20](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)   |
| CodeBuild-CreateProjectPassRole| privesc-codeBuildProject  | कोई नहीं  |   |
| DataPipeline-PassExistingRoleToNewDataPipeline| privesc21  | कोई नहीं  | :fox_face: [Well, That Escalated Quickly - Privesc 21](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| EC2-CreateInstanceWithExistingProfile| privesc3  | कोई नहीं  | :fox_face: [Well, That Escalated Quickly - Privesc 03](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 2](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-2) |
| Glue-PassExistingRoleToNewGlueDevEndpoint | privesc18  | कोई नहीं  | :fox_face: [Well, That Escalated Quickly - Privesc 18](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| Lambda-PassExistingRoleToNewLambdaThenInvoke | privesc15  |  कोई नहीं | :fox_face: [Well, That Escalated Quickly - Privesc 15](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)   |
| Lambda-PassRoleToNewLambdaThenTrigger | privesc16  |  कोई नहीं | :fox_face: [Well, That Escalated Quickly - Privesc 16](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| SageMaker-CreateNotebookPassRole |  privesc-sageNotebook | कोई नहीं  | :rhinoceros: [AWS IAM Privilege Escalation - Method 2](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation-part-2/)  |
| SageMaker-CreateTrainingJobPassRole | privesc-sageTraining  |  कोई नहीं  |   |
| SageMaker-CreateProcessingJobPassRole |  privesc-sageProcessing | कोई नहीं   | |
| **श्रेणी: नीतियों पर अनुमतियाँ** |    |   |
| IAM-AddUserToGroup | privesc13  |  कोई नहीं  |:fox_face: [Well, That Escalated Quickly - Privesc 13](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)   |
| IAM-AttachGroupPolicy| privesc8  | कोई नहीं   | :fox_face: [Well, That Escalated Quickly - Privesc 08](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-AttachRolePolicy| privesc9  | कोई नहीं   | :fox_face: [Well, That Escalated Quickly - Privesc 09](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-AttachUserPolicy| privesc7  | कोई नहीं   | :fox_face:  [Well, That Escalated Quickly - Privesc 07](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-CreateNewPolicyVersion| privesc1  |  कोई नहीं | :fox_face: [Well, That Escalated Quickly - Privesc 01](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 1](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable) |
| IAM-PutGroupPolicy | privesc11  | कोई नहीं  | :fox_face: [Well, That Escalated Quickly - Privesc 11](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-PutRolePolicy | privesc12  | कोई नहीं | :fox_face:  [Well, That Escalated Quickly - Privesc 12](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) |
| IAM-PutUserPolicy | privesc10  | कोई नहीं   | :fox_face: [Well, That Escalated Quickly - Privesc 10](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-SetExistingDefaultPolicyVersion | privesc2  | कोई नहीं  |  :fox_face: [Well, That Escalated Quickly - Privesc 02](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 2](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-2)|
| **श्रेणी: AWS सेवाओं का उपयोग करके विशेषाधिकार वृद्धि**|    |   |   |
| EC2InstanceConnect-SendSSHPublicKey | privesc-instanceConnect  |  EC2  | 🔑 [AWS IAM privilege escalation paths](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| CloudFormation-UpdateStack | privesc-cfUpdateStack | CloudFormation | 🔑 [AWS IAM privilege escalation paths](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| Glue-UpdateExistingGlueDevEndpoint| privesc19  |  Glue | :fox_face: [Well, That Escalated Quickly - Privesc 19](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| Lambda-EditExistingLambdaFunctionWithRole| privesc17  |  Lambda  | :fox_face: [Well, That Escalated Quickly - Privesc 17](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - Part 4](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-4)  |
| SageMakerCreatePresignedNotebookURL | privesc-sageUpdateURL | Sagemaker | :rhinoceros: [AWS IAM Privilege Escalation - Method 3](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation-part-2/) |
| SSM-SendCommand| privesc-ssm-command  |  EC2  | 🔑 [AWS IAM privilege escalation paths](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| SSM-StartSession | privesc-ssm-session  |  EC2  | 🔑 [AWS IAM privilege escalation paths](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| STS-AssumeRole | privesc-assumerole  | कोई नहीं   | 🔑 [AWS IAM privilege escalation paths](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| **श्रेणी: एक AssumeRole नीति को अद्यतन करना** |   |   |   |
| IAM-UpdatingAssumeRolePolicy |  privesc14 | कोई नहीं  | :fox_face: [Well, That Escalated Quickly - Privesc 14](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)   |

# अन्य उपयोग के मामले

#### डिफ़ॉल्ट - कोई `terraform.tfvars` कॉन्फ़िगर नहीं किया गया
* अपने डिफ़ॉल्ट AWS प्रोफ़ाइल का उपयोग करके तैनात करें (डिफ़ॉल्ट)
* सभी बनाई गई भूमिकाएँ Terraform चलाने के लिए उपयोग किए जाने वाले प्रिंसिपल (आपकी डिफ़ॉल्ट प्रोफ़ाइल में निर्दिष्ट) द्वारा ग्रहण की जा सकती हैं

#### Terraform चलाने के लिए डिफ़ॉल्ट के अलावा किसी अन्य प्रोफ़ाइल का उपयोग करें
* `terraform.tfvars.example` को `terraform.tvvars` पर कॉपी करें
* लाइन `#aws_local_profile = "profile_name"` को अनकमेंट करें और वह प्रोफ़ाइल नाम दर्ज करें जिसका आप उपयोग करना चाहते हैं
* यदि आप एक गैर-डिफ़ॉल्ट प्रोफ़ाइल का उपयोग कर रहे हैं, और फिर भी `aws_credentails_file_example` फ़ाइल का उपयोग करना चाहते हैं, तो आप एक AWS क्रेडेंशियल्स फ़ाइल उत्पन्न करने के लिए इस कमांड का उपयोग कर सकते हैं जो आपके गैर-डिफ़ॉल्ट प्रोफ़ाइल नाम के साथ काम करती है (@scriptingislife को धन्यवाद)
   * `nondefaultuser` को अपने द्वारा उपयोग किए जा रहे प्रोफ़ाइल नाम से बदलना याद रखें):
   * `tail -n +7 aws_credentials_file_example | sed -e "s/111111111111/$(aws sts get-caller-identity | grep Account | awk -F\" '{print $4}')/g;s/default/nondefaultuser/g" >> ~/.aws/credentials`

#### कॉलर के अलावा किसी अन्य ARN का उपयोग उस प्रिंसिपल के रूप में करें जो नवनिर्मित भूमिकाओं को ग्रहण कर सकता है

* `terraform.tfvars.example` को `terraform.tvvars` पर कॉपी करें
* लाइन `#aws_assume_role_arn = "arn:aws:iam::112233445566:user/you"` को अनकमेंट करें और वह ARN दर्ज करें जिसका आप उपयोग करना चाहते हैं

एक बार बनने के बाद, प्रत्येक privesc भूमिका आपके द्वारा निर्दिष्ट प्रिंसिपल (ARN) द्वारा ग्रहण की जा सकेगी।

#### संसाधन को खाता X में बनाएँ, लेकिन खाता Y से एक ARN का उपयोग उस प्रिंसिपल के रूप में करें जो नवनिर्मित भूमिकाओं को ग्रहण कर सकता है

यदि आपने AWS CLI प्रोफ़ाइलों को कॉन्फ़िगर किया है जो अन्य खातों में भूमिकाएँ ग्रहण करती हैं, तो आप प्रोफ़ाइल नाम निर्दिष्ट करना चाहेंगे और मैन्युअल रूप से वह ARN निर्दिष्ट करना चाहेंगे जिसका उपयोग आप विभिन्न भूमिकाओं में ग्रहण करने के लिए करना चाहते हैं।

नीचे दिए गए उदाहरण में, संसाधन उस खाते में बनाए जाएंगे जो `"prod-cross-org-access-role"` से जुड़ा है, लेकिन Terraform द्वारा बनाई गई प्रत्येक भूमिका `"arn:aws:iam::112233445566:user/you"` द्वारा एक्सेस की जा सकती है, जो दूसरे खाते से संबंधित है।```
aws_local_profile = "prod-cross-org-access-role"
aws_assume_role_arn = "arn:aws:iam::112233445566:user/you"

सामान्य प्रश्न

IAM Vulnerable की तुलना CloudGoat, Terragoat, और SadCloud से कैसे की जाती है?

ये सभी उपकरण AWS पर जानबूझकर कमजोर बुनियादी ढाँचा तैनात करने के लिए Terraform का उपयोग करते हैं। हालाँकि, IAM Vulnerable का ध्यान IAM विशेषाधिकार वृद्धि पर है, जबकि अन्य उपकरण या तो IAM privesc को कवर नहीं करते हैं या केवल कुछ परिदृश्यों को ही कवर करते हैं।

  • CloudGoat आठ अद्वितीय परिदृश्य तैनात करता है, जिनमें से कुछ IAM privesc पथों को कवर करते हैं, जबकि अन्य EC2 मेटाडेटा में रहस्यों जैसे अन्य क्षेत्रों पर ध्यान केंद्रित करते हैं।
  • Terragoat और SadCloud दोनों ही आपके क्लाउड खातों को गलत तरीके से कॉन्फ़िगर करने के कई तरीकों पर ध्यान केंद्रित करते हैं, लेकिन IAM privesc पथों को कवर नहीं करते हैं। वास्तव में, आप लगभग IAM Vulnerable को एक लापता पहेली टुकड़े के रूप में सोच सकते हैं जब इसे Terragoat या SadCloud के साथ लागू किया जाता है। ये जानबूझकर कमजोर कॉन्फ़िगरेशन एक-दूसरे के पूरक हैं।

IAM Vulnerable की तुलना Cloudsplaining, AWSPX, Principal Mapper, Pacu, Cloudmapper, या ScouteSuite से कैसे की जाती है?

ये सभी उपकरण आपके AWS वातावरण में मौजूदा गलत कॉन्फ़िगरेशन की पहचान करने में मदद करते हैं। कुछ, जैसे Pacu, आपको गलत कॉन्फ़िगरेशन का शोषण करने में भी मदद करते हैं। इसके विपरीत, IAM Vulnerable जानबूझकर कमजोर बुनियादी ढाँचा बनाता है। यदि आप वास्तव में Principal Mapper (PMapper), AWSPX, Pacu, और Cloudsplaining जैसे उपकरणों का उपयोग करना सीखना चाहते हैं, तो IAM Vulnerable आपके लिए है।

मैंने कभी Terraform का उपयोग नहीं किया और मुझे इससे डर लगता है। मदद करें!?

यहाँ कुछ चीज़ें हैं जो आपकी चिंता कम कर सकती हैं:

  • एक AWS खाते का उपयोग इस एकल उद्देश्य के लिए करके, आप निश्चिंत रह सकते हैं कि यह रिपॉजिटरी आपकी किसी भी अन्य महत्वपूर्ण चीज़ पर नकारात्मक प्रभाव नहीं डालेगी। भले ही आप IAM Vulnerable को AWS संगठन में एक अलग खाते में तैनात करें, आप निश्चिंत रह सकते हैं कि संगठन के अन्य खाते इस खेल के मैदान के खाते के विस्फोट दायरे से बाहर होंगे।
  • terraform plan कमांड एक ड्राई रन है। यह आपको बिल्कुल दिखाता है कि यदि आप वास्तव में इसे चलाने से पहले terraform apply चलाते हैं तो क्या तैनात किया जाएगा।
  • यह जानकर निश्चिंत रहें कि आप एक साफ स्लेट के लिए आपके द्वारा terraform apply की गई किसी भी चीज़ को terraform destroy कर सकते हैं।
  • यदि आपकी चिंता लागत है, तो Infracost देखें। आप इस बाइनरी को डाउनलोड करें, एक मुफ्त API कुंजी के लिए पंजीकरण करें, और इसे iam-vulnerable जैसी Terraform निर्देशिका में निष्पादित करें। यह उपकरण terraform plan चलाता है और वर्तमान में कॉन्फ़िगर की गई योजना से जुड़ी मासिक लागत की गणना करता है। यह वही उपकरण है जिसका उपयोग मैंने मॉड्यूल लागत अनुमान तालिका ऊपर को भरने के लिए किया था।

क्या मैं इस उपकरण और CloudGoat, Terragoat, या SadCloud जैसे किसी अन्य उपकरण को एक ही AWS खाते में चला सकता हूँ?

हाँ। प्रत्येक उपकरण अपनी Terraform स्थिति को अलग-अलग रखेगा, लेकिन सभी संसाधन एक ही खाते में बनाए, अद्यतन और हटाए जाएंगे, और वे सह-अस्तित्व कर सकते हैं।

पूर्व कार्य और अच्छे संदर्भ

  • https://github.com/RhinoSecurityLabs/AWS-IAM-Privilege-Escalation
  • https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation/
  • https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation-part-2/
  • https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws
  • https://ermetic.com/whats-new/blog/aws/auditing-passrole-a-problematic-privilege-escalation-permission/
टूल डाउनलोड करें
  • terraform apply
  • (वैकल्पिक) अपने AWS क्रेडेंशियल्स फ़ाइल में IAM vulnerable प्रोफ़ाइल जोड़ें, और खाता नंबर बदलें।
    • निम्नलिखित कमांड आपकी वर्तमान AWS क्रेडेंशियल्स फ़ाइल का बैकअप बनाते हैं, फिर रिपॉजिटरी से उदाहरण क्रेडेंशियल्स फ़ाइल लेते हैं और प्लेसहोल्डर खाते को आपके लक्ष्य खाता नंबर से बदल देते हैं, और अंत में सभी IAM Vulnerable विशेषाधिकार वृद्धि प्रोफ़ाइल को आपकी क्रेडेंशियल्स फ़ाइल में जोड़ देते हैं ताकि आप उनका उपयोग कर सकें:
    • cp ~/.aws/credentials ~/.aws/credentials.backup
    • tail -n +7 aws_credentials_file_example | sed s/111111111111/$(aws sts get-caller-identity | grep Account | awk -F\" '{print $4}')/g >> ~/.aws/credentials