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

يستخدم IAM Vulnerable ملف Terraform الثنائي وبيانات اعتماد AWS الخاصة بك لنشر أكثر من 250 موردًا من موارد IAM في حساب AWS المحدد. في غضون دقائق، يمكنك البدء في تعلم كيفية تحديد واستغلال تكوينات IAM القابلة للاختراق والتي تسمح بتصعيد الصلاحيات.
مرحبًا بالجميع. لا يزال IAM Vulnerable مفيدًا جدًا لفهم اللبنات الأساسية لتصعيد صلاحيات AWS IAM. ومع ذلك، بعد بضع سنوات من إنشاء IAM Vulnerable، قمت بإنشاء CloudFoxable، وهو إصدار بأسلوب CTF يعلمك أساسيات اختبار الاختراق السحابي بشكل أكثر شمولية. - @sethsec
انضم إلينا على خادم RedSec على Discord
🦊 مسارات تصعيد الصلاحيات المدعومة حاليًا: 31
منشور مدونة: IAM Vulnerable - ملعب تصعيد صلاحيات AWS IAM
يحدد هذا البدء السريع نهجًا رأييًا لتشغيل IAM Vulnerable في حساب AWS الخاص بك بأسرع وقت ممكن. قد تكون لديك العديد من هذه الخطوات مكتملة بالفعل، أو قد ترغب في تعديل بعض الأمور لتعمل مع تكوينك الحالي. راجع قسم حالات استخدام أخرى في هذا المستودع للحصول على بعض خيارات التكوين الإضافية.
aws sts get-caller-identity.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التنظيف البديل (عند فقدان حالة Terraform)
في حالة قمت فيها بنشر iam-vulnerable باستخدام Terraform ولكن لم يعد لديك إمكانية الوصول إلى ملف الحالة (و terraform destroy لا يعمل)، يمكنك استخدام نصوص التنظيف التالية:```bash
./cleanup-scripts/cleanup_iam_vulnerable.py --dry-run
./cleanup-scripts/cleanup_iam_vulnerable.sh --dry-run
سوف تقوم هذه البرامج النصية بـ:
- تحديد جميع موارد 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
لقد قمت الآن بنشر المكونات المطلوبة لتجربة مسارات تصعيد الصلاحيات في SSM.
## وحدات الموارد المجانية
لا توجد تكلفة لأي شيء يتم نشره داخل `free-resources`: