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

IAM Vulnerable आपके AWS खाते में 250 से अधिक IAM संसाधनों को तैनात करने के लिए टेराफॉर्म बाइनरी और आपकी AWS क्रेडेंशियल्स का उपयोग करता है। मिनटों में, आप असुरक्षित IAM कॉन्फ़िगरेशन की पहचान करना और उनका शोषण करना सीखना शुरू कर सकते हैं जो विशेषाधिकार वृद्धि की अनुमति देते हैं।
नमस्ते सभी। IAM Vulnerable AWS IAM विशेषाधिकार वृद्धि के मूल निर्माण ब्लॉकों को समझने के लिए अभी भी अत्यंत उपयोगी है। हालाँकि, IAM vulnerable बनाने के कुछ साल बाद, मैंने CloudFoxable बनाया, जो एक CTF शैली का संस्करण है जो आपको क्लाउड पैठ परीक्षण की मूल बातें अधिक समग्र रूप से सिखाता है। - @sethsec
हमसे RedSec डिस्कॉर्ड सर्वर पर जुड़ें।
🦊 वर्तमान में समर्थित विशेषाधिकार वृद्धि पथ: 31
ब्लॉग पोस्ट: IAM Vulnerable - एक AWS IAM विशेषाधिकार वृद्धि खेल का मैदान
यह त्वरित आरंभ आपके AWS खाते में IAM Vulnerable को यथाशीघ्र चालू करने के लिए एक निश्चित दृष्टिकोण की रूपरेखा प्रस्तुत करता है। हो सकता है कि आपने इनमें से कई चरण पहले ही पूरे कर लिए हों, या आप अपने वर्तमान कॉन्फ़िगरेशन के साथ काम करने के लिए चीजों को ट्वीक करना चाहते हों। कुछ अतिरिक्त कॉन्फ़िगरेशन विकल्पों के लिए इस रिपॉजिटरी में अन्य उपयोग के मामले अनुभाग देखें।
aws sts get-caller-identity निष्पादित करके पुष्टि करें कि आपका CLI अपेक्षित रूप से काम कर रहा है।git clone https://github.com/BishopFox/iam-vulnerablecd iam-vulnerable/terraform initexport TF_VAR_aws_local_profile=PROFILE_IN_AWS_CREDENTIALS_FILE_IF_OTHER_THAN_DEFAULTexport TF_VAR_aws_local_creds_file=FILE_LOCATION_IF_NON_DEFAULTterraform planterraform applycp ~/.aws/credentials ~/.aws/credentials.backuptail -n +7 aws_credentials_file_example | sed s/111111111111/$(aws sts get-caller-identity | grep Account | awk -F\" '{print $4}')/g >> ~/.aws/credentialsसफाई
जब भी आप IAM Vulnerable-निर्मित सभी संसाधनों को हटाना चाहते हैं, तो आप ये कमांड चला सकते हैं:
cd iam-vulnerable/terraform destroyवैकल्पिक सफाई (जब टेराफॉर्म स्थिति खो गई हो)
ऐसी स्थिति में जहां आपने टेराफॉर्म का उपयोग करके iam-vulnerable को तैनात किया है लेकिन अब आपके पास स्थिति फ़ाइल तक पहुंच नहीं है (और terraform destroy काम नहीं करता है), तो आप निम्नलिखित सफाई स्क्रिप्ट का उपयोग कर सकते हैं:```bash
./cleanup-scripts/cleanup_iam_vulnerable.py --dry-run
./cleanup-scripts/cleanup_iam_vulnerable.sh --dry-run
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 संवेदनशील कुछ संसाधनों को मॉड्यूल में एक साथ समूहित करता है। कुछ मॉड्यूल डिफ़ॉल्ट रूप से सक्षम होते हैं (जिनका कोई लागत प्रभाव नहीं होता), और अन्य डिफ़ॉल्ट रूप से अक्षम होते हैं (जिन्हें तैनात करने पर लागत आती है)। इस तरह, आप आवश्यकतानुसार विशिष्ट मॉड्यूल को सक्षम कर सकते हैं।