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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cloudgoat — CloudGoat Rhino Security Labs का "Vulnerable by Design" AWS डिप्लॉयमेंट टूल है | Kitploit
उपकरण/GitHubGitHub/rhinosecuritylabs/cloudgoat
भेद्यता स्कैनरCTFपेनिट्रेशन टेस्टिंगक्लाउड सुरक्षागलत कॉन्फ़िगरेशनलर्निंग और शिक्षालैब और अभ्यास
GitHubrhinosecuritylabs/cloudgoat

cloudgoat

CloudGoat Rhino Security Labs का "Vulnerable by Design" AWS डिप्लॉयमेंट टूल है

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

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

CloudGoat (☁️🐐)

Rhino PyPI GitHub license PRs Welcome

CloudGoat, Rhino Security Labs का "Vulnerable by Design" क्लाउड डिप्लॉयमेंट टूल है।

त्वरित संदर्भ

  • सहायता कहाँ प्राप्त करें: Rhino Security Labs Discord, या Stack Overflow

  • समस्याएँ कहाँ सबमिट करें: https://github.com/RhinoSecurityLabs/cloudgoat/issues

  • द्वारा अनुरक्षित: CloudGoat समुदाय

CloudGoat 2.0 आ गया है!

CloudGoat, Rhino Security Labs का "Vulnerable by Design" क्लाउड डिप्लॉयमेंट टूल है। यह आपको कई "कैप्चर-द-फ्लैग" शैली के परिदृश्य बनाकर और पूरा करके अपने क्लाउड साइबर सुरक्षा कौशल को निखारने की अनुमति देता है। प्रत्येक परिदृश्य क्लाउड संसाधनों से मिलकर बना होता है, जिन्हें एक संरचित सीखने का अनुभव तैयार करने के लिए एक साथ व्यवस्थित किया गया है। कुछ परिदृश्य आसान हैं, कुछ कठिन हैं, और कई जीत के लिए कई रास्ते प्रदान करते हैं। हमलावर के रूप में, आपका मिशन पर्यावरण का पता लगाना, कमजोरियों की पहचान करना और परिदृश्य के लक्ष्य(ों) तक पहुँचने के लिए शोषण करना है।

नीचे CloudGoat के हमारे मुख्य लक्ष्य दिए गए हैं:

  • केंद्रित, क्यूरेटेड, उच्च-गुणवत्ता वाले सीखने के अनुभव – CloudGoat के प्रत्येक परिदृश्य को प्रयोग, अन्वेषण और व्यावहारिक क्लाउड सुरक्षा कौशल बनाने का अवसर प्रदान करना चाहिए।
  • अच्छा दस्तावेज़ीकरण – हमने यह सुनिश्चित करने की पूरी कोशिश की है कि CloudGoat के परिदृश्य अच्छी तरह से प्रलेखित हों और कठिनाई, सामग्री, संरचना और आवश्यक कौशल के संदर्भ में समझने और मूल्यांकन करने में आसान हों।
  • स्थापित करने और उपयोग करने में आसान – हम समझते हैं कि CloudGoat एक साधन है - क्लाउड सुरक्षा पेनिट्रेशन टेस्टिंग सीखने और अभ्यास करने का। इसलिए, हम चीजों को सरल, सीधा और विश्वसनीय रखना चाहते हैं।
  • मॉड्यूलरिटी – प्रत्येक परिदृश्य एक स्पष्ट लक्ष्य (या लक्ष्यों का सेट) के साथ एक स्वतंत्र सीखने का वातावरण है, और CloudGoat प्रत्येक परिदृश्य को स्वतंत्र रूप से शुरू, रीसेट या बंद करने में सक्षम है।
  • विस्तारशीलता – CloudGoat के मुख्य घटक (पायथन ऐप और परिदृश्य) हमारे या समुदाय द्वारा आसान और स्वतंत्र विस्तार की अनुमति देने के लिए डिज़ाइन किए गए हैं।

आगे बढ़ने से पहले, कृपया इन चेतावनियों पर ध्यान दें!

चेतावनी #1: CloudGoat आपके खाते में जानबूझकर कमजोर संसाधन बनाता है। CloudGoat को प्रोडक्शन वातावरण या किसी भी संवेदनशील संसाधन के साथ तैनात न करें।

चेतावनी #2: CloudGoat केवल उन संसाधनों का प्रबंधन कर सकता है जो वह बनाता है। यदि आप परिदृश्य के दौरान स्वयं कोई संसाधन बनाते हैं, तो आपको destroy कमांड चलाने से पहले उन्हें मैन्युअल रूप से हटा देना चाहिए।

आवश्यकताएँ

  • Linux या MacOS। Windows आधिकारिक रूप से समर्थित नहीं है।
    • आर्गुमेंट टैब-कम्प्लीशन के लिए bash 4.2+ की आवश्यकता है (Linux, या OSX पर कुछ कठिनाई के साथ)।
  • Python3.9+ की आवश्यकता है।
  • Terraform >= 1.5.0 इंस्टॉल और आपके $PATH में होना चाहिए।
  • AWS CLI इंस्टॉल और आपके $PATH में होना चाहिए, और संसाधन बनाने और नष्ट करने के लिए पर्याप्त अनुमतियों वाला एक AWS खाता होना चाहिए।
  • AZ CLI इंस्टॉल और आपके $PATH में होना चाहिए, और संसाधन बनाने और नष्ट करने के लिए पर्याप्त अनुमतियों वाला एक Azure खाता होना चाहिए।
  • jq

Linux```bash sudo apt install terraform awscli azure-cli jq -y

root@kitploit:~
मैक```bash
brew install terraform awscli azure-cli jq

त्वरित आरंभ

CloudGoat को स्थापित करने के लिए, सुनिश्चित करें कि आपका सिस्टम उपरोक्त आवश्यकताओं को पूरा करता है, और फिर निम्नलिखित कमांड चलाएँ:```bash pipx install cloudgoat

root@kitploit:~
आप कुछ त्वरित कॉन्फ़िगरेशन कमांड चलाना भी चाह सकते हैं - इससे आपका कुछ समय बचेगा:

AWS के लिए कॉन्फ़िगर करें - CloudGoat को बताएं कि किस AWS प्रोफ़ाइल का उपयोग करना है।```bash
cloudgoat config aws

Azure के लिए कॉन्फ़िगर करें - CloudGoat को बताएं कि किस Azure सब्सक्रिप्शन का उपयोग करना है।```bash cloudgoat config azure

root@kitploit:~
Azure में लॉग इन करें - CloudGoat सक्रिय `az` खाते का उपयोग करता है।```bash
az login

श्वेतसूची कॉन्फ़िगर करें```bash cloudgoat config whitelist --auto

root@kitploit:~
अब, आपके आदेश पर, CloudGoat क्लाउड में एक परिदृश्य का `create` उदाहरण बना सकता है। जब पर्यावरण तैयार होता है, तो प्रोजेक्ट बेस निर्देशिका में परिदृश्य के नाम और एक अद्वितीय परिदृश्य आईडी के साथ एक नया फ़ोल्डर बनाया जाएगा। इस फ़ोल्डर के अंदर `start.txt` नामक एक फ़ाइल होगी, जिसमें परिदृश्य शुरू करने के लिए आवश्यक सभी संसाधन होंगे, हालाँकि ये `create` कमांड पूरा होने पर आपके कंसोल पर भी प्रिंट हो जाते हैं। कभी-कभी `cloudgoat`/`cloudgoat.pub` नामक एक SSH keypair भी बनाया जाएगा।

> **नोट:** परिदृश्य उदाहरण फ़ोल्डर या उसके अंदर की फ़ाइलों को हटाएं या संशोधित न करें, क्योंकि इससे CloudGoat आपके परिदृश्य के संसाधनों का प्रबंधन करने में असमर्थ हो सकता है।

जैसे-जैसे आप परिदृश्य पर काम करते हैं, यदि आपको दिशा की आवश्यकता हो तो परिदृश्य के readme का संदर्भ लेने में संकोच न करें। यदि आप फंस जाते हैं, तो प्रत्येक रूट के वॉकथ्रू के नीचे cheat sheets से लिंक दिए गए हैं।

जब आप परिदृश्य समाप्त कर लें, तो अपने द्वारा स्वयं बनाए गए किसी भी संसाधन को हटा दें (याद रखें: CloudGoat केवल उन संसाधनों का प्रबंधन कर सकता है जो वह बनाता है) और फिर `destroy` कमांड चलाएँ। बाद में अपने web-console पर एक त्वरित नज़र डालना हमेशा एक अच्छा विचार है - बस मामले में कुछ हटाया न गया हो।

आप CloudGoat के कमांड के लिए पूर्ण दस्तावेज़ [यहां उपयोग गाइड अनुभाग में](#usage-guide) पढ़ सकते हैं।

## CloudGoat के Docker image का उपयोग कैसे करें

[![PWD में आज़माएं](https://raw.githubusercontent.com/play-with-docker/stacks/cff22438cb4195ace27f9b15784bbb497047afa7/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/RhinoSecurityLabs/cloudgoat/master/docker_stack.yml)

### विकल्प 1: डिफ़ॉल्ट एंट्रीपॉइंट के साथ चलाएँ```console
docker run -it rhinosecuritylabs/cloudgoat:latest

विकल्प 2: AWS config और credentials के साथ चलाएँ

चेतावनी: इस कमांड को चलाने से आपकी स्थानीय AWS कॉन्फ़िगरेशन फ़ाइलें Docker कंटेनर में माउंट हो जाएँगी जब इसे लॉन्च किया जाएगा। इसका मतलब है कि कंटेनर तक पहुँच रखने वाले किसी भी उपयोगकर्ता की आपके होस्ट कंप्यूटर के AWS क्रेडेंशियल्स तक पहुँच होगी।```console docker run -it -v ~/.aws:/root/.aws/ rhinosecuritylabs/cloudgoat:latest

root@kitploit:~
## उपलब्ध परिदृश्य
(कठिनाई के अनुसार समूहित)

<details open>
  <summary><strong>आसान</strong></summary>

---

### iam_enum_basics (आसान)
`cloudgoat create iam_enum_basics`

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

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/iam_enum_basics/README.md)

द्वारा योगदान: टायलर रैम्सबे

---

### data_secrets (आसान)
`cloudgoat create data_secrets`

इस परिदृश्य में, आप सीमित अनुमतियों वाले IAM उपयोगकर्ता से शुरुआत करते हैं। आपका कार्य एक गलत कॉन्फ़िगर किए गए EC2 इंस्टेंस की पहचान करना है जो अपने उपयोगकर्ता डेटा में क्रेडेंशियल लीक कर रहा है, जिससे आप SSH पहुँच प्राप्त कर सकते हैं। वहाँ से, आपको इंस्टेंस मेटाडेटा सेवा (IMDS) का शोषण करके एक भूमिका चुरानी होगी, लैम्ब्डा फ़ंक्शन को गणना करके छिपे हुए पर्यावरण चर खोजने होंगे, और अंत में उस उपयोगकर्ता से समझौता करना होगा जिसके पास परिदृश्य के उद्देश्य तक पहुँच है: AWS Secrets Manager में संग्रहीत एक गुप्त।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/data_secrets/README.md)

द्वारा योगदान: टायलर रैम्सबे

---

### beanstalk_secrets (आसान)
`cloudgoat create beanstalk_secrets`

इस परिदृश्य में, आपको निम्न-विशेषाधिकार वाले AWS क्रेडेंशियल प्रदान किए जाते हैं जो Elastic Beanstalk तक सीमित पहुँच प्रदान करते हैं। आपका कार्य Elastic Beanstalk वातावरण की गणना करना और गलत कॉन्फ़िगर किए गए पर्यावरण चरों की खोज करना है जिनमें द्वितीयक क्रेडेंशियल हैं। इन द्वितीयक क्रेडेंशियल का उपयोग करके, आप IAM अनुमतियों की गणना कर सकते हैं ताकि अंततः एक प्रशासक उपयोगकर्ता के लिए एक एक्सेस कुंजी बना सकें। इन प्रशासक विशेषाधिकारों के साथ, आप AWS Secrets Manager में संग्रहीत अंतिम फ़्लैग प्राप्त करते हैं।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/beanstalk_secrets/README.md)

द्वारा योगदान: टायलर रैम्सबे

---

### sns_secrets (आसान)
`cloudgoat create sns_secrets`

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

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/sns_secrets/README.md)

द्वारा योगदान: टायलर रैम्सबे

---

### iam_privesc_by_key_rotation (आसान)
`cloudgoat create iam_privesc_by_key_rotation`

अपनी पहुँच बढ़ाने के लिए असुरक्षित IAM अनुमतियों का शोषण करें। एक ऐसी भूमिका से शुरुआत करें जो अन्य उपयोगकर्ताओं के क्रेडेंशियल प्रबंधित करती है और सेटअप में एक कमज़ोरी खोजें ताकि "प्रशासक" भूमिका तक पहुँच सकें। प्रशासक भूमिका का उपयोग करके, Secrets Manager से फ़्लैग प्राप्त करें।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/iam_privesc_by_key_rotation/README.md)

द्वारा योगदान: Infrasec.sh

---

### iam_privesc_by_rollback (आसान)
`cloudgoat create iam_privesc_by_rollback`

एक अत्यधिक सीमित IAM उपयोगकर्ता से शुरुआत करते हुए, हमलावर पिछले IAM नीति संस्करणों की समीक्षा कर सकता है और एक ऐसी नीति को पुनर्स्थापित कर सकता है जो पूर्ण प्रशासक विशेषाधिकार प्रदान करती है, जिसके परिणामस्वरूप विशेषाधिकार वृद्धि शोषण होता है।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/iam_privesc_by_rollback/README.md)

---

### lambda_privesc (आसान)
`cloudgoat create lambda_privesc`

IAM उपयोगकर्ता क्रिस के रूप में शुरुआत करते हुए, हमलावर पता लगाता है कि वह एक ऐसी भूमिका ग्रहण कर सकता है जिसके पास पूर्ण Lambda पहुँच और भूमिका पास करने की अनुमतियाँ हैं। हमलावर तब पूर्ण प्रशासक विशेषाधिकार प्राप्त करने के लिए इन नई अनुमतियों का उपयोग करके विशेषाधिकार वृद्धि कर सकता है।

> **नोट:** इस परिदृश्य में आपको कुछ AWS संसाधन बनाने की आवश्यकता हो सकती है, और क्योंकि CloudGoat केवल उन संसाधनों का प्रबंधन कर सकता है जो वह बनाता है, आपको `./cloudgoat destroy` चलाने से पहले उन्हें मैन्युअल रूप से हटा देना चाहिए।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/lambda_privesc/README.md)

---

### sqs_flag_shop (आसान)
`cloudgoat create sqs_flag_shop`

सबसे पहले, SHOP पेज से शुरुआत करें जहाँ आप FLAG खरीद सकते हैं। वेबसाइट में कई पेज हैं, और आप देख सकते हैं कि स्रोत कोड उजागर है। हमलावर कोड का विश्लेषण करके कमज़ोरियाँ ढूँढते हैं और FLAG खरीदने के लिए अपने विशेषाधिकारों का उपयोग करते हैं।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/sqs_flag_shop/README.md)

</details>

<details>
  <summary><strong>मध्यम</strong></summary>

### static (मध्यम)
`cloudgoat create static`

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

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/static/README.md)

### vulnerable_cognito (मध्यम)
`cloudgoat create vulnerable_cognito`

इस परिदृश्य में, आपको एक साइनअप और लॉगिन पृष्ठ प्रस्तुत किया जाता है जिसमें पृष्ठभूमि में AWS Cognito है। आपको प्रतिबंधों को दरकिनार करना होगा और Amazon Cognito में गलत कॉन्फ़िगरेशन का शोषण करना होगा ताकि अपने विशेषाधिकारों को बढ़ाया जा सके और Cognito आइडेंटिटी पूल क्रेडेंशियल प्राप्त किए जा सकें।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/vulnerable_cognito/README.md)

द्वारा योगदान: TrustOnCloud

---
### vulnerable_lambda (मध्यम)
`cloudgoat create vulnerable_lambda`

इस परिदृश्य में, आप 'bilbo' उपयोगकर्ता के रूप में शुरुआत करते हैं। आप अधिक विशेषाधिकारों वाली एक भूमिका ग्रहण करेंगे, एक लैम्ब्डा फ़ंक्शन की खोज करेंगे जो उपयोगकर्ताओं पर नीतियाँ लागू करता है, और bilbo उपयोगकर्ता के विशेषाधिकारों को बढ़ाने के लिए फ़ंक्शन में एक कमज़ोरी का शोषण करेंगे ताकि रहस्यों की खोज की जा सके।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/vulnerable_lambda/README.md)

---

### cloud_breach_s3 (मध्यम)
`cloudgoat create cloud_breach_s3`

एक अज्ञात बाहरी व्यक्ति के रूप में शुरुआत करें जिसके पास कोई पहुँच या विशेषाधिकार नहीं है, एक गलत कॉन्फ़िगर किए गए रिवर्स-प्रॉक्सी सर्वर का शोषण करके EC2 मेटाडेटा सेवा से पूछताछ करें और इंस्टेंस प्रोफ़ाइल कुंजियाँ प्राप्त करें। फिर, उन कुंजियों का उपयोग करके S3 बकेट से संवेदनशील डेटा खोजें, उस तक पहुँचें और उसे निकालें।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/cloud_breach_s3/README.md)

---

### iam_privesc_by_attachment (मध्यम)
`cloudgoat create iam_privesc_by_attachment`

अनुमतियों के एक बहुत ही सीमित सेट से शुरुआत करते हुए, हमलावर इंस्टेंस-प्रोफ़ाइल-अटैचमेंट अनुमतियों का लाभ उठाकर एक नया EC2 इंस्टेंस बनाने में सक्षम होता है जिसके पास अपने स्वयं के विशेषाधिकारों की तुलना में काफी अधिक विशेषाधिकार हैं। इस नए EC2 इंस्टेंस तक पहुँच प्राप्त करने पर, हमलावर लक्ष्य खाते के भीतर पूर्ण प्रशासनिक शक्तियाँ प्राप्त कर लेता है और परिदृश्य के लक्ष्य को पूरा करने में सक्षम होता है - cg-super-critical-security-server को हटाना और आगे के दुर्भावनापूर्ण कार्यों का मार्ग प्रशस्त करना।

> **नोट:** इस परिदृश्य में आपको कुछ AWS संसाधन बनाने की आवश्यकता हो सकती है, और क्योंकि CloudGoat केवल उन संसाधनों का प्रबंधन कर सकता है जो वह बनाता है, आपको `./cloudgoat destroy` चलाने से पहले उन्हें मैन्युअल रूप से हटा देना चाहिए।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/iam_privesc_by_attachment/README.md)

---

### ec2_ssrf (मध्यम)
`cloudgoat create ec2_ssrf`

IAM उपयोगकर्ता सोलस के रूप में शुरुआत करते हुए, हमलावर पाता है कि उसके पास एक लैम्ब्डा फ़ंक्शन के लिए केवल-पढ़ने की अनुमतियाँ हैं, जहाँ हार्डकोडेड रहस्य उसे एक EC2 इंस्टेंस की ओर ले जाते हैं जो एक वेब एप्लिकेशन चला रहा है जो सर्वर-साइड रिक्वेस्ट फोर्जरी (SSRF) के लिए असुरक्षित है। कमज़ोर ऐप का शोषण करने और EC2 मेटाडेटा सेवा से कुंजियाँ प्राप्त करने के बाद, हमलावर एक निजी S3 बकेट तक पहुँच प्राप्त करता है जिसमें कुंजियों का एक सेट होता है जो उसे लैम्ब्डा फ़ंक्शन को लागू करने और परिदृश्य को पूरा करने की अनुमति देता है।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/ec2_ssrf/README.md)

---

### ecs_takeover (मध्यम)
`cloudgoat create ecs_takeover`

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

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/ecs_takeover/README.md)

---

### rds_snapshot (मध्यम)
`cloudgoat create rds_snapshot`

इस परिदृश्य में, हम उपयोगकर्ता 'डेविड' से शुरुआत करते हैं। डेविड के माध्यम से, आप क्रेडेंशियल चुराने के लिए विशेषाधिकारों का लाभ उठा सकते हैं। चुराए गए क्रेडेंशियल के साथ, एक हमलावर DB तक पहुँचने और फ़्लैग प्राप्त करने के लिए RDS कमज़ोरी का लाभ उठा सकता है।

> **नोट:** इस परिदृश्य में आपको कुछ AWS संसाधन बनाने की आवश्यकता हो सकती है, और क्योंकि CloudGoat केवल उन संसाधनों का प्रबंधन कर सकता है जो वह बनाता है, आपको `./cloudgoat destroy` चलाने से पहले उन्हें मैन्युअल रूप से हटा देना चाहिए।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/rds_snapshot/README.md)

---

### glue_privesc (मध्यम)
`cloudgoat create glue_privesc`

यह परिदृश्य एक वेब पेज से शुरू होता है जो एक CSV फ़ाइल अपलोड करता है और Glue सेवा के माध्यम से डेटा विज़ुअलाइज़ेशन करता है। हमलावर SQL इंजेक्शन हमले के माध्यम से वेबपेज पर मौजूद क्रेडेंशियल चुराता है और गुप्त स्ट्रिंग प्राप्त करने के लिए एक Glue जॉब बनाने के लिए एक रिवर्स शेल अपलोड करता है।

> **नोट:** इस परिदृश्य में आपको कुछ AWS संसाधन बनाने की आवश्यकता हो सकती है, और क्योंकि CloudGoat केवल उन संसाधनों का प्रबंधन कर सकता है जो वह बनाता है, आपको `./cloudgoat destroy` चलाने से पहले उन्हें मैन्युअल रूप से हटा देना चाहिए।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/glue_privesc/README.md)

---

### agentcore_identity_confusion (मध्यम)
`cloudgoat create agentcore_identity_confusion`

इस परिदृश्य में, आपको AWS क्रेडेंशियल प्रदान किए जाते हैं जो bedrock agentcore कोड इंटरप्रेटर को प्रबंधित कर सकते हैं। आपका कार्य इसका लाभ उठाकर अन्य agentcore रनटाइम एजेंटों द्वारा उपयोग किए जाने वाले संवेदनशील डेटा तक पहुँच प्राप्त करना है। पता लगाएँ कि bedrock knowledgebase में संग्रहीत फ़्लैग तक पहुँच कैसे प्राप्त करें।

> **नोट:** इस परिदृश्य में आपको कुछ AWS संसाधन बनाने की आवश्यकता हो सकती है, और क्योंकि CloudGoat केवल उन संसाधनों का प्रबंधन कर सकता है जो वह बनाता है, आपको `./cloudgoat destroy` चलाने से पहले उन्हें मैन्युअल रूप से हटा देना चाहिए।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/agentcore_identity_confusion/README.md)

द्वारा योगदान: Sonrai Security

---

### bedrock_agent_hijacking (मध्यम)
`cloudgoat create bedrock_agent_hijacking`

इस परिदृश्य में, आपको AWS क्रेडेंशियल प्रदान किए जाते हैं जो एक Bedrock एजेंट को लागू कर सकते हैं और लैम्ब्डा फ़ंक्शन को अपडेट कर सकते हैं। आपका कार्य एजेंट का विश्लेषण करना और यह समझना है कि यह वास्तविक समय की जानकारी तक कैसे पहुँचता है। S3 में संग्रहीत फ़्लैग का पता लगाने और निकालने के लिए इस प्रवाह में प्रवेश करें।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/bedrock_agent_hijacking/README.md)

द्वारा योगदान: Sonrai Security

</details>

<details>
  <summary><strong>कठिन</strong></summary>

### rce_web_app (कठिन)
`cloudgoat create rce_web_app`

IAM उपयोगकर्ता लारा के रूप में शुरुआत करते हुए, हमलावर कमज़ोरियों के सुराग के लिए एक लोड बैलेंसर और S3 बकेट का अन्वेषण करता है, जो एक कमज़ोर वेब ऐप पर RCE शोषण की ओर ले जाता है जो गोपनीय फ़ाइलों को उजागर करता है और अंततः परिदृश्य के लक्ष्य तक पहुँच प्रदान करता है: एक अत्यधिक सुरक्षित RDS डेटाबेस इंस्टेंस।

वैकल्पिक रूप से, हमलावर IAM उपयोगकर्ता मैकडक के रूप में शुरुआत कर सकता है और S3 बकेट की गणना कर सकता है, अंततः SSH कुंजियों तक पहुँच सकता है जो EC2 सर्वर और उससे आगे के डेटाबेस तक सीधी पहुँच प्रदान करती हैं।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/rce_web_app/README.md)

---

### codebuild_secrets (कठिन)
`cloudgoat create codebuild_secrets`

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

वैकल्पिक रूप से, हमलावर SSM मापदंडों का अन्वेषण कर सकता है और एक EC2 इंस्टेंस के लिए SSH कुंजियाँ ढूँढ सकता है। मेटाडेटा सेवा का उपयोग करके, हमलावर EC2 इंस्टेंस-प्रोफ़ाइल की कुंजियाँ प्राप्त कर सकता है और लक्ष्य वातावरण में और गहराई तक जा सकता है, अंततः एक अधिक घुमावदार मार्ग से मूल डेटाबेस और उसके अंदर के परिदृश्य लक्ष्य (गुप्त स्ट्रिंग्स की एक जोड़ी) तक पहुँच प्राप्त कर सकता है।

> **नोट:** इस परिदृश्य में आपको कुछ AWS संसाधन बनाने की आवश्यकता हो सकती है, और क्योंकि CloudGoat केवल उन संसाधनों का प्रबंधन कर सकता है जो वह बनाता है, आपको `./cloudgoat destroy` चलाने से पहले उन्हें मैन्युअल रूप से हटा देना चाहिए।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/codebuild_secrets/README.md)

---

### detection_evasion (कठिन)
`cloudgoat create detection_evasion`

इस परिदृश्य का लक्ष्य बिना पकड़े जाए दोनों रहस्यों के मान पढ़ना है। दोनों रहस्य Secrets Manager में संग्रहीत हैं, और उनके मान निम्न प्रारूप में हैं (cg-secret-XXXXXX-XXXXXX)।

यह परिदृश्य अन्य CloudGoat परिदृश्यों से काफी अलग है। detection_evasion में, आपके लक्ष्य अधिक स्पष्ट रूप से रेखांकित किए जाएँगे, और चुनौती अलार्म ट्रिगर किए बिना उन्हें पूरा करना है। इस परिदृश्य में अधिक सेटअप शामिल है, और इसे खेलने में अधिक समय लगेगा (आप इसे कई बार खेलना चाह सकते हैं / इसकी आवश्यकता हो सकती है)।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/detection_evasion/README.md)

---

### ecs_efs_attack (कठिन)
`cloudgoat create ecs_efs_attack`

"ruse" EC2 तक पहुँच के साथ शुरुआत करते हुए, उपयोगकर्ता चल रहे ECS कंटेनर को बैकडोर करने के लिए इंस्टेंस प्रोफ़ाइल का लाभ उठाता है। बैकडोर किए गए कंटेनर का उपयोग करके हमलावर कंटेनर मेटाडेटा API से क्रेडेंशियल प्राप्त कर सकता है। ये क्रेडेंशियल हमलावर को उपयुक्त टैग वाले किसी भी EC2 पर एक सत्र शुरू करने की अनुमति देते हैं। हमलावर अपनी अनुमतियों का उपयोग करके प्रशासक EC2 पर टैग बदलता है और एक सत्र शुरू करता है। एक बार प्रशासक EC2 में, हमलावर माउंट करने के लिए एक खुले EFS के लिए सबनेट का पोर्ट स्कैन करेगा। एक बार माउंट होने के बाद, हमलावर इलास्टिक फ़ाइल सिस्टम से फ़्लैग प्राप्त कर सकता है।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/ecs_efs_attack/README.md)

---

### ecs_privesc_evade_protection (मध्यम)
`cloudgoat create ecs_privesc_evade_protection`

एक उपयोगकर्ता EC2 के अंदर एक कंटेनर के लिए एक कार्यशील वेब सेवा तक पहुँच करके शुरुआत करता है। हमलावर EC2 में मेटाडेटा API से क्रेडेंशियल प्राप्त करने या कंटेनर को नियंत्रित करने के लिए एक वेब सेवा कमज़ोरी का शोषण कर सकता है। यह क्रेडेंशियल हमलावर को एक विशिष्ट भूमिका के साथ एक नया कंटेनर शुरू करने और उसे नियंत्रित करने की अनुमति देता है। इस क्रिया के आधार पर, एक विशेषाधिकार वृद्धि करें और S3 में FLAG पढ़ें।

> **नोट:** इस परिदृश्य के लिए Docker को स्थानीय रूप से स्थापित करना आवश्यक है, क्योंकि यह तैनाती के दौरान एक कंटेनर इमेज बनाता है और इसे ECR में धकेलता है।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/ecs_privesc_evade_protection/README.md)

---

### secrets_in_the_cloud (कठिन)
`cloudgoat create secrets_in_the_cloud`

सीमित विशेषाधिकारों वाले IAM उपयोगकर्ता के रूप में, हमलावर सुराग और छिपी हुई जानकारी खोजने के लिए AWS संसाधनों की जाँच करके अपनी यात्रा शुरू करता है। यह जाँच अंततः एक ऐसी भूमिका प्राप्त करने में परिणत होती है जो परिदृश्य के प्राथमिक उद्देश्य तक पहुँच प्रदान करती है: Secrets Manager से अंतिम रहस्य प्राप्त करना।

[परिदृश्य पृष्ठ पर जाएँ।](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/secrets_in_the_cloud/README.md)

</details>

## उपयोग गाइड

CloudGoat कमांड की मूल संरचना इस प्रकार है:

> `cloudgoat [ command ] [ sub-command ] [ --arg-name ] [ arg-value ]`

CloudGoat में पाँच मुख्य कमांड नीचे संक्षेप में दिए गए हैं:

### create

`create [ scenario-name ]` आपकी पसंद के AWS खाते में एक परिदृश्य तैनात करता है। आप किसी मौजूदा परिदृश्य के विरुद्ध भी `create` चला सकते हैं यदि आप चाहें - CloudGoat बस नामित परिदृश्य को नष्ट और पुनः बनाएगा।

> **सुझाव:** आप नाम में `/scenarios` का उपयोग कर सकते हैं, जो bash के मूल टैब-पूर्णता की अनुमति देता है।

ध्यान दें कि सुरक्षा कारणों से `--profile` आवश्यक है - हम नहीं चाहते कि कोई गलती से उत्पादन वातावरण में CloudGoat परिदृश्य तैनात करे - और CloudGoat सिस्टम के "डिफ़ॉल्ट" AWS CLI प्रोफ़ाइल या पर्यावरण चरों के माध्यम से डिफ़ॉल्ट के रूप में निर्दिष्ट प्रोफ़ाइल का उपयोग नहीं करेगा। हालाँकि, आप इसे `config aws` के माध्यम से सेट कर सकते हैं ताकि इसे हर बार प्रदान करने से बचा जा सके।

### list

`list` `all`, `undeployed`, या `deployed` परिदृश्यों के बारे में कुछ जानकारी दिखाता है, या यहाँ तक कि एक `[ scenario-name ]` के बारे में बहुत सारी जानकारी दिखाता है जो पहले से तैनात है। आप क्लाउड प्लेटफ़ॉर्म द्वारा परिदृश्यों को फ़िल्टर भी कर सकते हैं: `list aws` या `list azure`।

### destroy

`destroy` एक `[ scenario-name ]` के क्लाउड संसाधनों को बंद और हटा देता है, और फिर परिदृश्य इंस्टेंस फ़ोल्डर को `./trash` में ले जाता है - यदि आपको Terraform स्थिति फ़ाइल या अन्य परिदृश्य फ़ाइलों को पुनर्प्राप्त करने की आवश्यकता हो तो ऐसा किया जाता है। आप सभी सक्रिय परिदृश्यों को नष्ट करने के लिए परिदृश्य नाम के बजाय `all` भी निर्दिष्ट कर सकते हैं।

> **सुझाव:** CloudGoat केवल उन संसाधनों का प्रबंधन कर सकता है जो वह बनाता है। यदि आप किसी परिदृश्य के दौरान स्वयं कोई संसाधन बनाते हैं, तो आपको `destroy` कमांड चलाने से पहले उन्हें मैन्युअल रूप से हटा देना चाहिए।

### config

`config` आपको अपने CloudGoat इंस्टॉलेशन के विभिन्न पहलुओं को प्रबंधित करने की अनुमति देता है, विशेष रूप से IP `whitelist`, आपकी डिफ़ॉल्ट AWS `profile`, और `argcomplete` के माध्यम से टैब-पूर्णता। यहाँ संक्षेप में बताना उचित है कि इनमें से प्रत्येक उप-कमांड क्या करता है।

#### whitelist

CloudGoat को यह जानना आवश्यक है कि क्लाउड में संभावित-कमज़ोर संसाधनों को तैनात करते समय किन IP पतों को व्हाइटलिस्ट किया जाना चाहिए, और ये IPs बेस प्रोजेक्ट निर्देशिका में `./whitelist.txt` फ़ाइल में ट्रैक किए जाते हैं। आप व्हाइटलिस्टिंग के लिए जो IP पता प्रदान करते हैं, उसे CIDR प्रारूप में होना आवश्यक नहीं है, लेकिन CloudGoat आपके द्वारा प्रदान किए गए किसी भी नंगे IP में `/32` जोड़ देगा। वैकल्पिक रूप से, आप `--auto` तर्क जोड़ सकते हैं, और CloudGoat अपने आप ifconfig.co पर curl का उपयोग करके एक नेटवर्क अनुरोध करेगा, आपका IP पता ढूँढेगा, और परिणाम के साथ व्हाइटलिस्ट फ़ाइल बनाएगा।

#### aws

जबकि CloudGoat कभी भी सिस्टम के "डिफ़ॉल्ट" AWS CLI प्रोफ़ाइल या पर्यावरण चरों के माध्यम से डिफ़ॉल्ट के रूप में निर्दिष्ट प्रोफ़ाइल का उपयोग नहीं करेगा, आप `config aws` कमांड का उपयोग करके CloudGoat को नाम से किसी विशेष AWS प्रोफ़ाइल का उपयोग करने का निर्देश दे सकते हैं। यह आपकी प्रोफ़ाइल का नाम संकेत देगा और बेस प्रोजेक्ट निर्देशिका में `config.yml` फ़ाइल में सहेजेगा। जब तक वह फ़ाइल मौजूद है, CloudGoat create और destroy कमांड के लिए `--profile` फ़्लैग की आवश्यकता के बजाय अंदर सूचीबद्ध प्रोफ़ाइल नाम का उपयोग करेगा। आप किसी भी समय `config aws` कमांड चला सकते हैं ताकि अपने CloudGoat-डिफ़ॉल्ट प्रोफ़ाइल का नाम देख सकें और `config.yml` के प्रारूप को मान्य कर सकें। आप चाहें तो `config.yml` मैन्युअल रूप से भी बना सकते हैं, बशर्ते आप सही प्रारूप का उपयोग करें।

#### azure

Terraform के लिए Azure प्रदाता के नए संस्करणों में संसाधनों को लागू करने के लिए सब्सक्रिप्शन आईडी की आवश्यकता होती है। जबकि CloudGoat `az` उपयोगिता के समान क्रेडेंशियल कॉन्फ़िगरेशन का उपयोग करता है, CloudGoat को स्पष्ट रूप से बताया जाना चाहिए कि किस सब्सक्रिप्शन में तैनात करना है। कॉन्फ़िगरेशन `cloudgoat config azure` के साथ किया जाता है, और सब्सक्रिप्शन AWS कॉन्फ़िगरेशन के साथ `config.yml` में संग्रहीत किया जाता है। आप चाहें तो `config.yml` मैन्युअल रूप से भी बना सकते हैं, बशर्ते आप सही प्रारूप का उपयोग करें।

#### argcomplete

हम वास्तव में CloudGoat में मूल टैब-पूर्णता चाहते थे, लेकिन जैसा कि यह पता चला, REPL के बाहर ऐसा करना कुछ मुश्किल था। यह Linux उपयोगकर्ताओं के लिए उचित रूप से काम करना चाहिए, और उन OSX उपयोगकर्ताओं के लिए जो अपने bash संस्करण को 4.2+ में अपग्रेड करने का साहस करते हैं। CloudGoat में [पायथन लाइब्रेरी "argcomplete"](https://github.com/kislyuk/argcomplete) शामिल और समर्थित है। argcomplete को स्थापित करने का एक संक्षिप्त सारांश नीचे दिया गया है, हालाँकि अधिक विस्तृत चरणों के लिए आपको लाइब्रेरी के [github पेज](https://github.com/kislyuk/argcomplete) पर आधिकारिक दस्तावेज़ देखना चाहिए।

1. CloudGoat की requirements.txt फ़ाइल का उपयोग करके argcomplete पायथन पैकेज स्थापित करें: `$ pip3 install -r core/python/requirements.txt`
2. bash में, argcomplete पैकेज द्वारा प्रदान की गई वैश्विक पायथन तर्क पूर्णता स्क्रिप्ट चलाएँ: `$ activate-global-python-argcomplete`
3. पिछले सक्रियण कमांड द्वारा मुद्रित स्थान पर पूर्णता स्क्रिप्ट को स्रोत करें, या अपने शेल सत्र को पुनरारंभ करें: `$ source [ /path/to/the/completion/script ]`

उन लोगों के लिए जो argcomplete को कॉन्फ़िगर नहीं कर सकते या नहीं करना चाहते, CloudGoad परिदृश्य नामों के रूप में निर्देशिका पथों के उपयोग का भी समर्थन करता है, जिसका अर्थ है कि टैब-पूर्णता परिदृश्य नामों के लिए काम करेगी। बस `/scenario/[ scenario-name ]` या `./[ scenarioinstance-name ]` का उपयोग करें और आपका शेल बाकी काम करेगा।

### help

`help` कमांड के बारे में प्रासंगिक सहायता प्रदान करता है। `help` प्रश्न में कमांड से पहले या बाद में आ सकता है, इसलिए जब भी आपको इसकी आवश्यकता हो, यह हमेशा उपलब्ध है। नीचे कुछ उदाहरण दिए गए हैं:* `cloudgoat create help`
* `cloudgoat destroy help`
* `cloudgoat list help`
* `cloudgoat config help`

एक और उपयोग ध्यान देने योग्य: `cloudgoat [ scenario-name ] help` का उपयोग परिदृश्य के एक संक्षिप्त सारांश को कंसोल पर प्रिंट करने के लिए किया जा सकता है, जैसा कि परिदृश्य के लेखक द्वारा परिभाषित किया गया है।

## सुविधा अनुरोध और बग रिपोर्ट

यदि आपके पास कोई सुविधा अनुरोध या रिपोर्ट करने के लिए कोई बग है, तो कृपया [उन्हें यहाँ जमा करें](https://github.com/RhinoSecurityLabs/cloudgoat/issues/new)।

बग के लिए, कृपया सुनिश्चित करें कि आपको मिले बग को पुन: उत्पन्न करने के लिए पर्याप्त विवरण शामिल करें, जिसमें ट्रेसबैक और पुनरुत्पादन चरण शामिल हों, और नई बग रिपोर्ट दर्ज करने से पहले अपने बग की अन्य रिपोर्टों की जाँच करें।

सुविधाओं के लिए, भी यही बात लागू होती है! अपने अनुरोध में विशिष्ट रहें, और सुनिश्चित करें कि किसी और ने पहले से उसी सुविधा का अनुरोध नहीं किया है।

## योगदान दिशानिर्देश

CloudGoat में योगदान की बहुत सराहना की जाती है। यदि आप परियोजना को बेहतर बनाने में मदद करना चाहते हैं, तो आगे पढ़ें।

1. **नया परिदृश्य बनाना**:
   - हमने आपको जल्दी से शुरू करने में मदद करने के लिए एक परिदृश्य टेम्पलेट प्रदान किया है। टेम्पलेट में CloudGoat परिदृश्य के लिए मूल संरचना और आवश्यक फ़ाइलें शामिल हैं। आप परिदृश्य टेम्पलेट [यहाँ](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/scenarios/scenario_template) पा सकते हैं।
   - **नया परिदृश्य बनाने के चरण**:
     - **टेम्पलेट कॉपी करें**: परिदृश्य टेम्पलेट की सामग्री को अपने परिदृश्य के नाम पर एक नई निर्देशिका में कॉपी करें।
     - **टेम्पलेट संशोधित करें**: टेम्पलेट में प्लेसहोल्डर सामग्री को अपने नए परिदृश्य की विशिष्टताओं से बदलें।
     - **परिदृश्य का परीक्षण करें**: सुनिश्चित करें कि आपका परिदृश्य पूरी तरह से परीक्षण करके अपेक्षित रूप से काम करता है।
2. **कोडिंग मानक**:
   - **कोड शैली**: परियोजना में मौजूदा कोड शैली का पालन करें। स्थिरता महत्वपूर्ण है।
   - **टिप्पणियाँ**: जटिल तर्क या महत्वपूर्ण निर्णयों को समझाने के लिए आवश्यकतानुसार अपने कोड में टिप्पणियाँ जोड़ें।
   - **दस्तावेज़ीकरण**: अपने नए परिदृश्य या परिवर्तनों के बारे में विवरण शामिल करने के लिए README.md और अन्य प्रासंगिक दस्तावेज़ को अपडेट करें।
3. **श्वेतसूचीकरण**:
   - परिदृश्य बनाते या संशोधित करते समय, निम्नलिखित बातों का ध्यान रखें:
     - **श्वेतसूचीकरण**: सुनिश्चित करें कि सुरक्षा समूह नियम और अन्य एक्सेस नियंत्रण केवल CloudGoat कॉन्फ़िगरेशन से IP को श्वेतसूचीबद्ध करने के लिए कॉन्फ़िगर किए गए हैं।
     - **समीक्षा**: योगदान देने से पहले किसी भी संभावित रूप से कमजोर सार्वजनिक संसाधनों के लिए अपने कॉन्फ़िगरेशन की दोबारा जाँच करें (अर्थात इंटरनेट के लिए सुलभ कमजोर EC2 न बनाएं)।
4. **पायथन कोड शैली**:
   - CloudGoat में पायथन कोड को सामान्यतः पायथन की शैली परंपराओं का पालन करना चाहिए, जिसमें पठनीयता और रखरखाव को सबसे ऊपर रखा जाए।
   - अच्छी git प्रथाओं का पालन करें: पुल अनुरोधों का उपयोग करें, फीचर ब्रांच को प्राथमिकता दें, हमेशा स्पष्ट कमिट संदेश लिखें।
   - CloudGoat `black` और `flake8` का उपयोग करता है - Python सिंटैक्स और शैली लिंटर्स। सुनिश्चित करें कि कोड कमिट करने से पहले `core/python/` में सभी Python फ़ाइलों और `cloudgoat.py` पर `flake8` और `black` दोनों चलाए जाएँ। `black` के निर्णय `flake8` पर प्राथमिकता लेते हैं। सामान्य उपयोगकर्ताओं को इनकी आवश्यकता नहीं होने के कारण ये दोनों `core/python/requirements.txt` फ़ाइल में टिप्पणी की गई हैं।
5. **लाइसेंसिंग**:
   - CloudGoat कोड को हमेशा BSD 3-क्लॉज लाइसेंस का उपयोग करना चाहिए।

और अंत में, योगदान देने के लिए धन्यवाद!

## परिवर्तन लॉग

- **6/24/19:** CloudGoat 2.0 जारी किया गया!

## अस्वीकरण

CloudGoat एक सॉफ्टवेयर है जो किसी भी प्रकार की कोई वारंटी के साथ नहीं आता है। CloudGoat का उपयोग करके, आप इसके परिणामस्वरूप होने वाले किसी भी और सभी परिणामों की पूरी जिम्मेदारी लेते हैं।
टूल डाउनलोड करें