Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cloudgoat — CloudGoat هي أداة نشر AWS من Rhino Security Labs 'قابلة للاختراق حسب التصميم' | Kitploit
أدوات/GitHubGitHub/rhinosecuritylabs/cloudgoat
ماسحات الثغرات الأمنيةCTFاختبار الاختراقأمن السحابةسوء التكوينالتعلم والتعليممختبرات وتدريب عملي
GitHubrhinosecuritylabs/cloudgoat

cloudgoat

CloudGoat هي أداة نشر AWS من Rhino Security Labs 'قابلة للاختراق حسب التصميم'

عرض المستودع
3.7k763منذ 5 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CloudGoat (☁️🐐)

Rhino PyPI GitHub license PRs Welcome

CloudGoat هي أداة نشر سحابية من Rhino Security Labs مصممة لتكون "قابلة للاختراق بالتصميم".

مرجع سريع

  • أين يمكن الحصول على المساعدة: خادم Rhino Security Labs على Discord، أو Stack Overflow

  • أين يمكن تقديم المشكلات: https://github.com/RhinoSecurityLabs/cloudgoat/issues

  • يتم الصيانة بواسطة: مجتمع CloudGoat

CloudGoat 2.0 هنا!

CloudGoat هي أداة نشر سحابية من Rhino Security Labs مصممة لتكون "قابلة للاختراق بالتصميم". تتيح لك صقل مهاراتك في الأمن السيبراني السحابي من خلال إنشاء وإكمال العديد من سيناريوهات "التقاط العلم". يتكون كل سيناريو من موارد سحابية مرتبة معًا لتوفير تجربة تعليمية منظمة. بعض السيناريوهات سهلة، والبعض الآخر صعب، والعديد منها يقدم مسارات متعددة للنصر. كمهاجم، مهمتك هي استكشاف البيئة، وتحديد نقاط الضعف، واستغلال طريقك إلى أهداف السيناريو.

فيما يلي أهدافنا الرئيسية لـ CloudGoat:

  • تجارب تعليمية مركزة ومنتقاة وعالية الجودة - يجب أن يوفر كل سيناريو من سيناريوهات CloudGoat فرصة للتجريب والاستكشاف وبناء مهارات الأمن السحابي العملي.
  • توثيق جيد - لقد بذلنا قصارى جهدنا لضمان أن تكون سيناريوهات CloudGoat موثقة جيدًا وسهلة الفهم والتقييم من حيث الصعوبة والمحتوى والبنية والمهارات المطلوبة.
  • سهولة التثبيت والاستخدام - نحن ندرك أن CloudGoat هي وسيلة لتحقيق غاية - تعلم وممارسة اختبار الاختراق الأمني السحابي. لذلك، نهدف إلى الحفاظ على الأمور بسيطة ومباشرة وموثوقة.
  • النمطية - كل سيناريو هو بيئة تعليمية مستقلة بهدف واضح (أو مجموعة من الأهداف)، ويمكن لـ CloudGoat بدء تشغيل كل سيناريو أو إعادة تعيينه أو إيقاف تشغيله بشكل مستقل.
  • قابلية التوسع - تم تصميم المكونات الأساسية لـ CloudGoat (تطبيق بايثون والسيناريوهات) للسماح بالتوسع السهل والمستقل - من قبلنا أو من قبل المجتمع.

قبل المتابعة، يرجى الانتباه إلى هذه التحذيرات!

تحذير #1: يقوم CloudGoat بإنشاء موارد ضعيفة بشكل متعمد في حسابك. لا تقم بنشر CloudGoat في بيئة إنتاج أو بجانب أي موارد حساسة.

تحذير #2: يمكن لـ CloudGoat إدارة الموارد التي ينشئها فقط. إذا قمت بإنشاء أي موارد بنفسك أثناء سيناريو ما، فيجب عليك إزالتها يدويًا قبل تشغيل الأمر destroy.

المتطلبات

  • لينكس أو ماك. لا يُدعم ويندوز رسميًا.
    • يتطلب إكمال الوسيطات (tab-completion) bash 4.2+ (لينكس، أو ماك بصعوبة).
  • مطلوب 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`. أحيانًا يتم أيضًا إنشاء زوج مفاتيح SSH باسم `cloudgoat`/`cloudgoat.pub`.

> **ملاحظة:** لا تقم بحذف أو تعديل مجلد نموذج السيناريو أو الملفات الموجودة داخله، لأن ذلك قد يمنع CloudGoat من إدارة موارد السيناريو الخاص بك.

أثناء العمل على السيناريو، لا تتردد في الرجوع إلى ملف readme الخاص بالسيناريو إذا كنت بحاجة إلى توجيه. إذا علقت، فهناك أوراق غش مرتبطة في أسفل كل دليل مسار.

عند الانتهاء من السيناريو، احذف أي موارد قمت بإنشائها بنفسك (تذكر: يمكن لـ CloudGoat إدارة الموارد التي ينشئها فقط) ثم قم بتشغيل أمر `destroy`. من الجيد دائمًا إلقاء نظرة سريعة على وحدة التحكم الإلكترونية الخاصة بك بعد ذلك - فقط في حالة عدم حذف شيء ما.

يمكنك قراءة الوثائق الكاملة لأوامر CloudGoat [هنا في قسم دليل الاستخدام](#usage-guide).

## كيفية استخدام صورة Docker الخاصة بـ CloudGoat

[![جرب في 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

تحذير: سيؤدي تشغيل هذا الأمر إلى تحميل ملفات إعدادات 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 منخفض المستوى يُدعى Bob. مهمتك هي إجراء تعداد شامل لـ IAM باستخدام AWS CLI. من خلال التحقيق في السياسات المُدارة، والسياسات المضمنة، وعضويات المجموعات، والأدوار القابلة للافتراض، ستكشف عن خمسة أعلام مميزة.

[زيارة صفحة السيناريو.](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/iam_enum_basics/README.md)  

مساهمة من Tyler Ramsbey

---

### data_secrets (سهل)
`cloudgoat create data_secrets`

في هذا السيناريو، تبدأ بمستخدم IAM لديه صلاحيات محدودة. مهمتك هي تحديد مثيل EC2 تم تكوينه بشكل خاطئ يُسرب بيانات الاعتماد في بيانات المستخدم الخاصة به، مما يسمح لك بالحصول على وصول SSH. من هناك، يجب عليك التنقل من خلال استغلال خدمة بيانات الوصف (IMDS) لسرقة دور، وتعداد دوال Lambda للعثور على متغيرات بيئة مخفية، وأخيراً اختراق مستخدم لديه حق الوصول إلى هدف السيناريو: سر مخزن في AWS Secrets Manager.

[زيارة صفحة السيناريو.](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/data_secrets/README.md)  

مساهمة من Tyler Ramsbey

---

### 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)  

مساهمة من Tyler Ramsbey

---

### sns_secrets (سهل)
`cloudgoat create sns_secrets`

في هذا السيناريو، تبدأ بوصول أساسي إلى حساب AWS. تحتاج إلى تعداد صلاحياتك، واكتشاف موضوع SNS يمكنك الاشتراك فيه، واسترداد مفتاح API مُسرّب، وأخيراً استخدام مفتاح API للوصول إلى API Gateway للحصول على العلم النهائي.

[زيارة صفحة السيناريو.](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/sns_secrets/README.md)  

مساهمة من Tyler Ramsbey

---

### 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`

في هذا السيناريو، تتصرف كمهاجم خارجي يزور بوابة شركة. من خلال تحليل تطبيق الويب، تحدد أنه يقوم بتحميل مكتبات JavaScript مهمة من دلو 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 Identity Pool.

[زيارة صفحة السيناريو.](https://github.com/rhinosecuritylabs/cloudgoat/blob/HEAD/cloudgoat/scenarios/aws/vulnerable_cognito/README.md)

مساهمة من TrustOnCloud 

---
### vulnerable_lambda (متوسط)
`cloudgoat create vulnerable_lambda`

في هذا السيناريو، تبدأ كمستخدم 'bilbo'. ستفترض دوراً بصلاحيات أكبر، وتكتشف دالة Lambda تطبق سياسات على المستخدمين، وتستغل ثغرة في الدالة لتصعيد صلاحيات مستخدم 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 Solus، يكتشف المهاجم أن لديه صلاحيات القراءة فقط لدالة Lambda، حيث تقوده الأسرار المضمنة بشكل ثابت إلى مثيل EC2 يعمل بتطبيق ويب معرض للتزوير من جانب الخادم (SSRF). بعد استغلال التطبيق الضعيف والحصول على مفاتيح من خدمة بيانات وصف EC2، يحصل المهاجم على وصول إلى دلو S3 خاص مع مجموعة من المفاتيح التي تسمح له باستدعاء دالة Lambda وإكمال السيناريو.

[زيارة صفحة السيناريو.](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`

في هذا السيناريو، نبدأ بالمستخدم 'David'. من خلال David، يمكنك استغلال الصلاحيات لسرقة بيانات الاعتماد.
باستخدام بيانات الاعتماد المسروقة، يمكن للمهاجم استغلال ثغرة 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 يمكنها إدارة مفسري كود agentcore في Bedrock. مهمتك هي استغلال ذلك للوصول إلى بيانات حساسة تستخدمها عوامل agentcore أخرى. اكتشف كيفية الوصول إلى العلم المخزن في قاعدة معرفة Bedrock.

> **ملاحظة:** قد يتطلب هذا السيناريو إنشاء بعض موارد 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 وتحديث دوال Lambda. مهمتك هي تحليل الوكيل وفهم كيفية وصوله إلى المعلومات في الوقت الفعلي. استغل هذا التدفق لتحديد واستخراج العلم المخزن في 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 Lara، يستكشف المهاجم موازن التحميل ودلو S3 بحثاً عن أدلة على ثغرات، مما يؤدي إلى استغلال RCE على تطبيق ويب ضعيف يكشف ملفات سرية ويبلغ ذروته في الوصول إلى هدف السيناريو: مثيل قاعدة بيانات RDS عالي الأمان.

بدلاً من ذلك، قد يبدأ المهاجم كمستخدم IAM McDuck ويقوم بتعداد دلاء 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 Solo، يقوم المهاجم أولاً بتعداد واستكشاف مشاريع CodeBuild، ويجد بها مفاتيح IAM غير آمنة لمستخدم IAM Calrissian. بعد ذلك، أثناء العمل كـ Calrissian، يكتشف المهاجم قاعدة بيانات RDS. غير قادر على الوصول إلى محتويات قاعدة البيانات مباشرة، يمكن للمهاجم استخدام وظيفة لقطة RDS بذكاء للحصول على هدف السيناريو: زوج من السلاسل السرية.

بدلاً من ذلك، قد يستكشف المهاجم معلمات SSM ويجد مفاتيح SSH لمثيل EC2. باستخدام خدمة بيانات الوصف، يمكن للمهاجم الحصول على مفاتيح ملف تعريف مثيل 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`

بدءاً بالوصول إلى مثيل EC2 "ruse"، يستغل المستخدم ملف تعريف المثيل لاختراق حاوية ECS قيد التشغيل. باستخدام الحاوية المخترقة، يمكن للمهاجم استرداد بيانات الاعتماد من واجهة برمجة تطبيقات بيانات وصف الحاوية. تسمح بيانات الاعتماد هذه للمهاجم ببدء جلسة على أي 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، أو للتحكم في الحاوية. تسمح بيانات الاعتماد هذه للمهاجم ببدء حاوية جديدة بدور معين والتحكم فيها. بناءً على هذا الإجراء، قم بتصعيد الامتيازات، وقراءة FLAG في S3.

> **ملاحظة:** يتطلب هذا السيناريو تثبيت 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، وملف تعريف AWS الافتراضي، والإكمال التلقائي عبر `argcomplete`. يجدر وصف ما يفعله كل من هذه الأوامر الفرعية باختصار.

#### whitelist

يحتاج CloudGoat إلى معرفة عناوين IP التي يجب وضعها في القائمة البيضاء عند نشر الموارد التي قد تكون ضعيفة في السحابة، ويتم تتبع عناوين IP هذه في ملف `./whitelist.txt` في الدليل الأساسي للمشروع. عنوان IP الذي تقدمه للقائمة البيضاء ليس من _الضروري_ أن يكون بتنسيق CIDR، لكن CloudGoat سيضيف `/32` إلى أي عناوين IP مجردة تقدمها. اختيارياً، يمكنك إضافة الوسيطة `--auto`، وسيقوم CloudGoat تلقائياً بعمل طلب شبكة، باستخدام curl إلى ifconfig.co لمعرفة عنوان IP الخاص بك، ثم إنشاء ملف القائمة البيضاء بالنتيجة.

#### aws

بينما لن يستخدم CloudGoat أبداً ملفات تعريف AWS CLI الافتراضية للنظام أو ملفات التعريف المحددة كافتراضية عبر متغيرات البيئة، يمكنك توجيه CloudGoat لاستخدام ملف تعريف AWS معين بالاسم باستخدام الأمر `config aws`. سيطلب هذا اسم ملف التعريف الخاص بك ويحفظه في ملف `config.yml` في الدليل الأساسي للمشروع. طالما أن هذا الملف موجود، سيستخدم CloudGoat اسم ملف التعريف المدرج بالداخل لأوامر create و destroy، بدلاً من طلب العلم `--profile`. يمكنك تشغيل الأمر `config aws` في أي وقت لعرض اسم ملف تعريف CloudGoat الافتراضي والتحقق من تنسيق `config.yml`. يمكنك أيضاً إنشاء `config.yml` يدوياً، إذا أردت، بشرط استخدام التنسيق الصحيح.

#### azure

تتطلب الإصدارات الأحدث من موفر Azure لـ Terraform معرف الاشتراك لتطبيق الموارد عليه. بينما يستخدم CloudGoat نفس تكوين بيانات الاعتماد مثل الأداة `az`، يجب إخبار CloudGoat صراحةً بأي اشتراك سيتم النشر عليه. يتم التكوين باستخدام `cloudgoat config azure`، ويتم تخزين الاشتراك في `config.yml` بجانب تكوين aws. يمكنك أيضاً إنشاء `config.yml` يدوياً، إذا أردت، بشرط استخدام التنسيق الصحيح.

#### argcomplete

لقد أردنا حقاً أن يكون لدينا إكمال تلقائي أصلي في CloudGoat، ولكن كما اتضح، كان من الصعب إلى حد ما القيام بذلك خارج REPL. يجب أن يعمل بشكل معقول لمستخدمي Linux، ومستخدمي OSX الشجعان بما يكفي لمعرفة طريقة لترقية إصدار bash الخاص بهم إلى 4.2+. يتضمن CloudGoat ويدعم [مكتبة Python "argcomplete"](https://github.com/kislyuk/argcomplete). ملخص موجز لكيفية تثبيت argcomplete مقدم أدناه، على الرغم من أنه للحصول على خطوات أكثر تفصيلاً يجب عليك الرجوع إلى الوثائق الرسمية على [صفحة github](https://github.com/kislyuk/argcomplete) الخاصة بالمكتبة.

1. قم بتثبيت حزمة Python argcomplete باستخدام ملف requirements.txt الخاص بـ CloudGoat: `$ pip3 install -r core/python/requirements.txt`
2. في bash، قم بتشغيل سكريبت إكمال وسيطات Python العام المقدم من حزمة argcomplete: `$ activate-global-python-argcomplete`
3. قم بمصدر (source) سكريبت الإكمال في الموقع الذي تمت طباعته بواسطة أمر التنشيط السابق، أو أعد تشغيل جلسة shell الخاصة بك: `$ source [ /path/to/the/completion/script ]`

بالنسبة لأولئك الذين لا يستطيعون أو لا يرغبون في تكوين argcomplete، يدعم CloudGoat أيضاً استخدام مسارات الدليل كأسماء سيناريوهات، مما يعني أن الإكمال التلقائي سيعمل مع أسماء السيناريوهات. فقط استخدم `/scenario/[ scenario-name ]` أو `./[ scenario-instance-name ]` ويجب أن تقوم shell الخاصة بك بالباقي.

### help

`help` يوفر مساعدة سياقية حول الأوامر. يمكن أن يأتي `help` قبل الأمر المعني أو بعده، لذا فهو موجود دائماً عندما تحتاجه. فيما يلي بعض الأمثلة:* `cloudgoat create help`
* `cloudgoat destroy help`
* `cloudgoat list help`
* `cloudgoat config help`

استخدام آخر جدير بالملاحظة: يمكن استخدام `cloudgoat [ اسم السيناريو ] 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. **القائمة البيضاء**:
   - عند إنشاء أو تعديل السيناريوهات، ضع في اعتبارك ما يلي:
     - **القائمة البيضاء**: تأكد من تكوين قواعد مجموعة الأمان وعناصر التحكم في الوصول الأخرى لوضع عنوان IP من تكوين CloudGoat فقط في القائمة البيضاء.
     - **المراجعة**: تحقق جيدًا من تكويناتك بحثًا عن أي موارد عامة قد تكون معرضة للخطر قبل المساهمة (أي لا تقم بإنشاء EC2s ضعيفة يمكن الوصول إليها من الإنترنت).
4. **نمط كود بايثون**:
   - يجب أن يتبع كود بايثون في CloudGoat بشكل عام اصطلاحات نمط بايثون، مع تفضيل قابلية القراءة والصيانة فوق كل شيء آخر.
   - اتبع ممارسات git الجيدة: استخدم طلبات السحب، وفضل الفروع الوظيفية، واكتب دائمًا رسائل ارتكاب واضحة.
   - يستخدم CloudGoat `black` و `flake8` - أدوات التحقق من بناء الجملة والنمط في بايثون. تأكد من تشغيل كل من `flake8` و `black` على جميع ملفات بايثون في `core/python/` وعلى `cloudgoat.py` قبل ارتكاب الكود. قرارات `black` لها الأولوية على قرارات `flake8`. كلا الأمرين معلقان في ملف `core/python/requirements.txt` لأن المستخدمين العاديين لا يحتاجون إليهما.
5. **الترخيص**:
   - يجب أن يستخدم كود CloudGoat دائمًا ترخيص BSD المكون من 3 بنود.

وأخيرًا، شكرًا لك على المساهمة!


## سجل التغييرات

- **24/6/19:** تم إصدار CloudGoat 2.0!

## إخلاء المسؤولية

CloudGoat هو برنامج لا يأتي مع أي ضمانات على الإطلاق. باستخدام CloudGoat، تتحمل المسؤولية الكاملة عن أي وجميع النتائج التي تنتج عن ذلك.
تنزيل الأداة