مختبر اختبار الاختراق على AWS
مختبر اختبار اختراق يتم نشره كـ IaC باستخدام Terraform على AWS.
يقوم بنشر مثيل Kali Linux يمكن الوصول إليه عبر ssh و VPN (Wireguard).
مثيلات ضعيفة في شبكة فرعية خاصة.
ملاحظة:
- المعرفات (Ids) محددة فقط للمنطقة "eu-west-1"
- بالنسبة للمناطق الأخرى، يجب تحديد معرف صورة Kali ومعرف metasploitable3 (بعد بنائه)
سجل التغييرات
- [2022-01-30]
- تعيين sudoers للسماح باستخدام sudo nmap لمجموعة المستخدمين
- مجموعة الأمان تسمح بالاتصالات الواردة إلى المنافذ 8800-8899 (لـ reverse-shells)
- [2021-12-26]
- تعيين منطقة التوفر الأولى تلقائياً
- إنشاء صور metasploitable جديدة باستخدام Packer
- دمج أولي لثغرة log4jshell في جهاز metasploitable3 (لكنها غير قابلة للاستخدام)
- [2021-12-22]
- Packer لبناء صور metasploitable (انظر ./metasploitable3/)
- إصلاحات في script user_data الخاص بـ Kali
- التحقق من النشر في us-east-1
- [2021-12-09]
- البحث عن أحدث معرف صورة Kali-linux بدلاً من توفير المعرفات
- استبدال terraform template_file لأنه قديم
- صورة Windows server (مهام قادمة: تثبيت برنامج ضعيف)
- [2021-09-15]
- إصلاحات في إنشاء multi-peer لـ Wireguard
- دمج تطبيق Infection Monkey على Kali Linux
- الترقية إلى إصدار Kali الجديد 2021.3
- [2021-06-02] تغيير معرفات صور AMI لاستخدام Kali 2021.2
- [2021-03-10] استخدام إصدار Kali الجديد 2021.1
مخطط

المكونات
- مثيل Kali (يتم حفظ المفتاح الخاص في kali.pem)
- خدمة VPN Wireguard: ملف العميل client_vpn.wg
- يمكن الوصول إليه عبر ssh/scp
- شبكة فرعية عامة 10.0.0.5/24
- Infection Monkey يعمل على المنفذ 5000 (يمكن الوصول إليه فقط عبر VPN أو ssh)
- جهاز ضعيف "Metasploitable" (صورة AMI عامة)
- شبكة فرعية خاصة 10.0.1.5/24
- المزيد من المختبرات/الأجهزة/Docker الضعيفة (قيد التطوير)
الميزات المضافة
- إدارة المستخدمين
- إنشاء مستخدمين غير مميزين تلقائياً في مثيل Kali مع rsa
- ملف عميل Wireguard VPN لكل مستخدم
- تسجيل مراجعة أوامر سطر الأوامر في syslog
- تمكين auditd مع مفاتيح sudo_log و users_log لمراجعة إجراءات المستخدم (انظر أيضاً الأمر ausearch)
- مهام قادمة: إعادة توجيه مراجعة الطرفية إلى CloudWatch أو S3 Bucket بسياسة الكتابة مرة واحدة
كيفية الاستخدام
- المتطلبات:
- واجهة سطر أوامر Terraform دليل التثبيت
- واجهة سطر أوامر AWS CLI دليل التثبيت
- تكوين $PATH لـ AWS CLI و Terraform
- حساب AWS وتكوين بيانات الاعتماد عبر aws cli:
aws configure
- اشتراك Kali Linux في AWS Marketplace
- صورة AMI لـ Metasploitable3 تم بناؤها مسبقاً (صورة AMI عامة متاحة لمنطقة eu-west-1) انظر
النشر
- تمكين/تعطيل المثيلات الضعيفة التي سيتم نشرها عن طريق تعيين
0 أو 1 في variables.tf:
variable "deploment-control" {
type = map
default = {
#"instance" = 0 or 1, to disable or enable
"metasploitable3" = 1
"dvca" = 0
}
description = "Control which EC2 instances are deployed, 0 for none or 1"
}
- استخدم Terraform لنشر البنية التحتية
terraform init
terraform plan
terraform apply -auto-approve
المخرجات
ستظهر مخرجات Terraform الإدخالات التالية:
- أمر اتصال ssh لمستخدم kali (الجذر عبر sudo)
- ملف عميل wireguard لمستخدم kali سيتم استرجاعه تلقائياً من خادم kali
- أمر scp لاسترجاع ملف عميل wireguard (فقط في حالة فشل الأمر local-exec المحدد في terraform)
- لكل مستخدم عادي تم إنشاؤه في مثيل Kali
- ملف المفتاح الخاص لاتصال ssh
- ملف عميل wireguard للاتصال عبر VPN
الاستخدام
إما الاتصال بـ Kali عبر ssh أو wireguard:
- SSH: (سطر الأوامر فقط) استخدم المفتاح الخاص الذي تم إنشاؤه تلقائياً (انظر مخرجات terraform)
KALI_IP=<KALI_IP> # configure kali public ip
ssh -i kali.pem -o StrictHostKeyChecking=no -o IdentitiesOnly=yes kali@${KALI_IP}
- Wireguard: قم بتوصيل مثيل Kali المحلي عبر wireguard (انظر ملف client_vpn.wg الذي تم إنشاؤه)
KALI_IP=<KALI_IP> # configure kali public ip
scp -i kali.pem -o StrictHostKeyChecking=no IdentitiesOnly=yes kali@${KALI_IP}:/home/kali/client_vpn.wg .
####
(local_kali)$ sudo apt-get install –y wireguard
(local_kali)$ sudo gedit /etc/wireguard/wg0.conf # copy contents of client_vpn.wg
(local_kali)$ sudo chmod 700 /etc/wireguard/wg0.conf
(local_kali)$ sudo wg-quick up wg0
(local_kali)$ ping 10.0.0.5 # test connectivity with kali instance in AWS
الإزالة
terraform destroy -auto-approve
المراجع