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.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

IAM Vulnerable

استخدم Terraform لإنشاء ملعب تصعيد الصلاحيات الخاص بك في AWS IAM القابل للاختراق عن طريق التصميم.

يستخدم IAM Vulnerable ملف Terraform الثنائي وبيانات اعتماد AWS الخاصة بك لنشر أكثر من 250 موردًا من موارد IAM في حساب AWS المحدد. في غضون دقائق، يمكنك البدء في تعلم كيفية تحديد واستغلال تكوينات IAM القابلة للاختراق والتي تسمح بتصعيد الصلاحيات.

الأخ الأكبر لـ IAM Vulnerable - CloudFoxable

مرحبًا بالجميع. لا يزال IAM Vulnerable مفيدًا جدًا لفهم اللبنات الأساسية لتصعيد صلاحيات AWS IAM. ومع ذلك، بعد بضع سنوات من إنشاء IAM Vulnerable، قمت بإنشاء CloudFoxable، وهو إصدار بأسلوب CTF يعلمك أساسيات اختبار الاختراق السحابي بشكل أكثر شمولية. - @sethsec

ملعب قابل للاختراق عن قصد

  • CloudFoxable - صندوق رمل قرصنة سحابي بأسلوب الألعاب

هل تريد الدردشة حول IAM-Vulnerable و CloudFox و CloudFoxable؟

انضم إلينا على خادم RedSec على Discord

🦊 مسارات تصعيد الصلاحيات المدعومة حاليًا: 31

جدول المحتويات

  • IAM Vulnerable
  • النهج الموصى به
  • تعليمات الاستخدام المفصلة
  • البدء السريع
    • ما الموارد التي تم إنشاؤها للتو؟
    • كم سيكلف هذا؟
  • نهج معياري
    • وحدات الموارد المجانية
    • وحدات الموارد غير المجانية
  • مسارات تصعيد الصلاحيات المدعومة
  • حالات استخدام أخرى
  • الأسئلة الشائعة

النهج الموصى به

  1. اختر أو أنشئ حساب AWS - لا تستخدم أي حساب يحتوي على موارد إنتاجية أو بيانات حساسة.
  2. أنشئ ملعبك القابل للاختراق - استخدم هذا المستودع لإنشاء مبادئ وسياسات IAM التي تدعم 31 مسارًا فريدًا لتصعيد صلاحيات AWS IAM.
  3. قم بواجبك المنزلي - تعرف على 21 مسارًا أصليًا لتصعيد الصلاحيات التي ابتكرها Spencer Gietzen.
  4. اخترق، اخترق - تدرب على الاستغلال في ملعبك الجديد باستخدام دليل Gerben Kleijn.
  5. ارفع مستواك - قم بتشغيل أدواتك ضد حساب ملعب IAM الجديد القابل للاختراق (على سبيل المثال، Cloudsplaining، AWSPX، Principal Mapper، Pacu).

تعليمات الاستخدام المفصلة

منشور مدونة: IAM Vulnerable - ملعب تصعيد صلاحيات AWS IAM

البدء السريع

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

  1. اختر أو أنشئ حساب AWS. (لا تستخدم أي حساب يحتوي على موارد إنتاجية أو بيانات حساسة!)
  2. أنشئ مستخدمًا غير جذر بصلاحيات إدارية ستستخدمه عند تشغيل Terraform.
  3. أنشئ مفتاح وصول لهذا المستخدم.
  4. قم بتثبيت AWS CLI.
  5. قم بتكوين AWS CLI الخاص بك باستخدام المستخدم الإداري الذي أنشأته حديثًا كملف تعريف افتراضي.
  6. تأكد من أن CLI يعمل كما هو متوقع عن طريق تنفيذ aws sts get-caller-identity.
  7. قم بتثبيت ملف Terraform الثنائي وأضف موقع الملف الثنائي إلى مسارك.
  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

التنظيف البديل (عند فقدان حالة Terraform)

في حالة قمت فيها بنشر iam-vulnerable باستخدام Terraform ولكن لم يعد لديك إمكانية الوصول إلى ملف الحالة (و 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:~
سوف تقوم هذه البرامج النصية بـ:
- تحديد جميع موارد IAM المعرضة للخطر تلقائيًا في حساب AWS الخاص بك
- إظهار ما سيتم حذفه بالضبط قبل المتابعة
- حذف الموارد بالترتيب الصحيح لتجنب تعارضات التبعيات
- دعم ملفات تعريف AWS وتوفير تسجيل مفصل

**هام**: قم دائمًا بتشغيل الأمر `--dry-run` أولاً لرؤية ما سيتم حذفه. راجع `cleanup-scripts/CLEANUP_README.md` للحصول على تعليمات الاستخدام المفصلة.

## ما هي الموارد التي تم إنشاؤها للتو؟

لقد استخدم ثنائي Terraform بيانات اعتماد ملف التعريف الافتراضي لحساب AWS الخاص بك لإنشاء:
* **31 مستخدمًا ودورًا وسياسة** كل منها له مسار استغلال فريد للوصول الإداري إلى حساب الملعب
* بعض المستخدمين والمجموعات والأدوار والسياسات الإضافية المطلوبة لتحقيق مسارات استغلال معينة بشكل كامل
* بعض المستخدمين والأدوار والسياسات الإضافية التي تختبر قدرات الكشف للأدوات الأخرى

افتراضيًا، يمكن لكل دور تم إنشاؤه بواسطة وحدة Terraform هذه أن يتحمله المستخدم أو الدور الذي استخدمته لتشغيل Terraform.
* إذا كنت ترغب في أن يستخدم Terraform ملف تعريف آخر غير ملف التعريف الافتراضي، أو إذا كنت ترغب في ترميز ARN لسياسة `assume_role_policy` بشكل ثابت، فانظر [حالات الاستخدام الأخرى](#other-use-cases).

## كم ستتكلف؟
نشر IAM vulnerable في **تكوينه الافتراضي لن يكلف شيئًا**. راجع القسم التالي لمعرفة كيفية تمكين الوحدات غير الافتراضية التي تتسبب في تكاليف، ومقدار تكلفة كل وحدة شهريًا إذا قمت بنشرها.

# نهج معياري

تقوم IAM Vulnerable بتجميع موارد معينة معًا في وحدات. بعض الوحدات مفعلة افتراضيًا (تلك التي ليس لها أي آثار تكلفة)، والبعض الآخر معطل افتراضيًا (تلك التي تتسبب في تكاليف إذا تم نشرها). بهذه الطريقة، يمكنك تمكين وحدات محددة حسب الحاجة.

على سبيل المثال، عندما تكون مستعدًا للعب بمسارات الاستغلال مثل `ssm:StartSession` التي تتضمن موارد خارج IAM، يمكنك نشر وإزالة هذه الموارد عند الطلب عن طريق إلغاء تعليق الوحدة في ملف `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.

## وحدات الموارد المجانية

لا توجد تكلفة لأي شيء يتم نشره داخل `free-resources`:

| الاسم | الحالة الافتراضية | التكلفة المقدرة | الوصف |
| --- | --- | --- | --- |
| privesc-paths  | مفعّل | لا شيء | يحتوي على جميع مسارات تصعيد الصلاحيات في IAM |
| tool-testing  | مفعّل | لا شيء | يحتوي على حالات اختبار تقيّم قدرات أدوات تصعيد الصلاحيات المختلفة في IAM |

## وحدات الموارد غير المجانية

قد ينتج عن نشر هذه الوحدات الإضافية تكلفة:

| الاسم | الحالة الافتراضية | التكلفة المقدرة | الوصف | مطلوب لـ |
| --- | --- | --- | --- | --- |
| 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 | `Glue-UpdateExistingGlueDevEndpoint` |
| SageMaker | معطّل | غير متأكد بعد | ينشئ دفتر ملاحظات SageMaker | `sageMakerCreatePresignedNotebookURL` |
| CloudFormation | معطّل |  :slightly_smiling_face: <br> 0.40 دولار/شهر للسر الذي تم إنشاؤه عبر CloudFormation. لا شيء أو لا يُذكر بالنسبة للـ stack نفسه	| ينشئ مكدس CloudFormation يقوم بإنشاء سر في مدير الأسرار | `privesc-cloudFormationUpdateStack` |

# مسارات تصعيد الصلاحيات المدعومة

| اسم المسار | اسم الملف الشخصي الضعيف في IAM | الوحدات الإضافية المطلوبة غير الافتراضية | مراجع الاستغلال |
| --- | --- | --- | --- |
| **الفئة: صلاحيات IAM على مستخدمين آخرين** |   |   |   |
| IAM-CreateAccessKey | privesc4  | لا شيء  | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 04](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - الجزء 3](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-3) |
| IAM-CreateLoginProfile | privesc5  | لا شيء  | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 05](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - الجزء 3](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-3)  |
| IAM-UpdateLoginProfile | privesc6  | لا شيء  | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 06](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - الجزء 3](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-3)  |
| **الفئة: تمرير الدور (PassRole) إلى خدمة** |   |  |   |
| CloudFormation-PassExistingRoleToCloudFormation | privesc20  | لا شيء  |:fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 20](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)   |
| CodeBuild-CreateProjectPassRole| privesc-codeBuildProject  | لا شيء  |   |
| DataPipeline-PassExistingRoleToNewDataPipeline| privesc21  | لا شيء  | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 21](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| EC2-CreateInstanceWithExistingProfile| privesc3  | لا شيء  | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 03](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - الجزء 2](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-2) |
| Glue-PassExistingRoleToNewGlueDevEndpoint | privesc18  | لا شيء  | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 18](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| Lambda-PassExistingRoleToNewLambdaThenInvoke | privesc15  |  لا شيء | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 15](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)   |
| Lambda-PassRoleToNewLambdaThenTrigger | privesc16  |  لا شيء | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 16](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| SageMaker-CreateNotebookPassRole |  privesc-sageNotebook | لا شيء  | :rhinoceros: [تصعيد صلاحيات IAM في AWS - الطريقة 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: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 13](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)   |
| IAM-AttachGroupPolicy| privesc8  | لا شيء   | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 08](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-AttachRolePolicy| privesc9  | لا شيء   | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 09](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-AttachUserPolicy| privesc7  | لا شيء   | :fox_face:  [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 07](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-CreateNewPolicyVersion| privesc1  |  لا شيء | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 01](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - الجزء 1](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable) |
| IAM-PutGroupPolicy | privesc11  | لا شيء  | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 11](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-PutRolePolicy | privesc12  | لا شيء | :fox_face:  [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 12](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) |
| IAM-PutUserPolicy | privesc10  | لا شيء   | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 10](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| IAM-SetExistingDefaultPolicyVersion | privesc2  | لا شيء  |  :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 02](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - الجزء 2](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-2)|
| **الفئة: تصعيد الصلاحيات باستخدام خدمات AWS**|    |   |   |
| EC2InstanceConnect-SendSSHPublicKey | privesc-instanceConnect  |  EC2  | 🔑 [مسارات تصعيد صلاحيات IAM في AWS](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| CloudFormation-UpdateStack | privesc-cfUpdateStack | CloudFormation | 🔑 [مسارات تصعيد صلاحيات IAM في AWS](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| Glue-UpdateExistingGlueDevEndpoint| privesc19  |  Glue | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 19](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws)  |
| Lambda-EditExistingLambdaFunctionWithRole| privesc17  |  Lambda  | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - Privesc 17](https://labs.bishopfox.com/tech-blog/privilege-escalation-in-aws) <br> :lock: [s3cur3.it IAMVulnerable - الجزء 4](https://s3cur3.it/home/practicing-aws-security-with-iamvulnerable-part-4)  |
| SageMakerCreatePresignedNotebookURL | privesc-sageUpdateURL | Sagemaker | :rhinoceros: [تصعيد صلاحيات IAM في AWS - الطريقة 3](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation-part-2/) |
| SSM-SendCommand| privesc-ssm-command  |  EC2  | 🔑 [مسارات تصعيد صلاحيات IAM في AWS](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| SSM-StartSession | privesc-ssm-session  |  EC2  | 🔑 [مسارات تصعيد صلاحيات IAM في AWS](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| STS-AssumeRole | privesc-assumerole  | لا شيء   | 🔑 [مسارات تصعيد صلاحيات IAM في AWS](https://pswalia2u.medium.com/aws-iam-privilege-escalation-paths-cba36be1aa9e) |
| **الفئة: تحديث سياسة AssumeRole** |   |   |   |
| IAM-UpdatingAssumeRolePolicy |  privesc14 | لا شيء  | :fox_face: [حسنًا، لقد تصاعدت الأمور بسرعة - 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، ولكن استخدام ARN من الحساب Y كجهة رئيسية يمكنها تولي الأدوار المنشأة حديثًا

إذا كنت قد قمت بتكوين ملفات تعريف 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؟

جميع هذه الأدوات تستخدم Terraform لنشر بنية تحتية ضعيفة عن قصد في AWS. ومع ذلك، يركز IAM Vulnerable على تصعيد صلاحيات IAM، بينما الأدوات الأخرى إما لا تغطي تصعيد صلاحيات IAM أو تغطي بعض السيناريوهات فقط.

  • ينشر CloudGoat ثمانية سيناريوهات فريدة، بعضها يغطي مسارات تصعيد صلاحيات IAM، بينما يركز البعض الآخر على مجالات أخرى مثل الأسرار في بيانات EC2 الوصفية.
  • يركز Terragoat وSadCloud على الطرق العديدة التي يمكن بها إساءة تكوين حسابات السحابة الخاصة بك، لكنهما لا يغطيان مسارات تصعيد صلاحيات IAM. في الواقع، يمكنك تقريبًا التفكير في 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 مطلقًا وأنا خائف منه. ساعدوني!؟

كنت أيضًا خائفًا من Terraform والمشاريع التي تنشئ موارد في حسابي قبل أن أعرف كيف يعمل Terraform. إليك بعض الأشياء التي قد تخفف من قلقك:

  • باستخدام حساب AWS لهذا الغرض الوحيد، يمكنك التأكد من أن هذا المستودع لن يؤثر سلبًا على أي شيء آخر تهتم به. حتى إذا قمت بنشر IAM Vulnerable إلى حساب منفصل في مؤسسة AWS، يمكنك التأكد من أن الحسابات الأخرى في المؤسسة ستكون خارج نطاق تأثير هذا الحساب التجريبي.
  • الأمر terraform plan هو تشغيل تجريبي. يُظهر لك بالضبط ما سيتم نشره إذا قمت بتشغيل terraform apply قبل تنفيذه فعليًا.
  • كن مطمئنًا أنه يمكنك استخدام terraform destroy لإزالة أي شيء قمت بتطبيقه باستخدام terraform apply لتحصل على لوحة نظيفة.
  • إذا كان قلقك هو التكلفة، فاطلع على Infracost. تقوم بتنزيل هذا الملف الثنائي، وتسجيل للحصول على مفتاح API مجاني، وتنفيذه داخل دليل Terraform مثل iam-vulnerable. تقوم هذه الأداة بتشغيل 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
  • (اختياري) أضف ملفات تعريف IAM القابلة للاختراق إلى ملف بيانات اعتماد AWS الخاص بك، وقم بتغيير رقم الحساب.
    • الأوامر التالية تقوم بعمل نسخة احتياطية من ملف بيانات اعتماد 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