
مختبر اختبار اختراق محلي باستخدام docker-compose.
لم أعد أطور هذا بنشاط، لكنني سأصلح الأخطاء وأتابع المشكلات وطلبات السحب. المساعدة موضع تقدير :)
يستخدم هذا المختبر المحلي للاختبارات الاختراقية docker compose لتشغيل خدمات ضحية متعددة وخدمة مهاجم تعمل بنظام Kali Linux. إذا قمت بتشغيل هذا المختبر لأول مرة، فسيستغرق الأمر بعض الوقت لتنزيل جميع صور docker المختلفة.
الأوامر المنفذة:
./lab.sh --help./lab.sh --check-dependencies./lab.sh --up --all-services./lab.sh --info./lab.sh --overview allssh root@kali -o "UserKnownHostsFile /dev/null"./lab.sh --downيجب أن يعمل المختبر مباشرة إذا تم تثبيت جميع التبعيات المطلوبة. عند بدء التشغيل، سيقوم المختبر بإجراء فحص للتبعيات.
git clone https://github.com/oliverwiegers/pentest_lab
cd pentest_lab
./lab.sh -u
افتراضيًا، سيبدأ المختبر جميع خدمات الضحية وخدمة فريق أحمر واحدة. يمكن بدء تشغيل خدمات أخرى وإضافتها. مزيد من المعلومات حول هذا أدناه.
لمزيد من معلومات الاستخدام، يُنصح بقراءة رسالة المساعدة المعروضة بواسطة ./lab.sh -h | --help.
يحتوي المختبر على فحص تبعيات مدمج يتم تشغيله عند بدء التشغيل. يمكن أيضًا تشغيله يدويًا ./lab.sh -C.
لسهولة الاستخدام، تمت إضافة واجهة Heimdall والتي تتعرض على localhost:7000. جميع الخدمات المتعرضة لجهازك المحلي والتي يمكن الوصول إليها عبر المتصفح مدرجة هناك. يتم حفظ التغييرات التي يتم إجراؤها على الواجهة تلقائيًا في ./etc/heimheimdall. ثم يتم تحويل هذا الدليل إلى ./etc/heimdall.tar عند إيقاف المختبر. سيتم استخراج هذا الأرشيف tar عند بدء التشغيل. يتم تجاهل كل من ./etc/heimdall.tar و ./etc/heimdall بواسطة git افتراضيًا.
يمكن العثور على الخلفية المستخدمة هنا.
يعرف هذا المختبر الأنواع الأربعة التالية من الخدمات.
خدمة الفريق الأحمر الافتراضية - خدمة Kali - هي مثيل Kali أساسي إلى حد ما. ومع ذلك، يتم تثبيت الحزمة الوصفية kali-tools-web. بالنسبة لمختبر اختبار تطبيقات الويب، تبدو أدوات اختبار الويب الأساسية مفيدة. يمكن تغيير ذلك عن طريق تحرير Dockerfile الذي يُبنى منه الصورة. وهي موجودة في ./dockerfiles/kali. تقوم خدمة kali بتثبيت dotfiles هذه افتراضيًا. هذا قابل للتغيير أيضًا عن طريق تعديل Dockerfile.
على الرغم من أن خدمات المراقبة هي أيضًا خدمات الفريق الأزرق، إلا أنها مقسمة في فئة مختلفة.
توفر هذه المجموعة وظائف مراقبة السجلات والأداء.
لمزيد من المعلومات حول الحالات الفردية، انظر أدناه.
يتكون إعداد المراقبة حاليًا من الخدمات التالية:
يوفر مثيل Grafana لوحتي تحكم: واحدة للسجلات والأخرى للمقاييس.
هذه أساسية إلى حد ما. يمكن إضافة المزيد عن طريق إضافة لوحات تحكم عبر واجهة Grafana. سيتم فقدان لوحات التحكم هذه عند حذف وحدة تخزين grafana. لإضافة لوحات تحكم بشكل دائم، راجع وثائق التزويد من Grafana. الدلائل المستخدمة للتزويد موجودة في ./etc/grafana/.
لتغيير الإعدادات عبر واجهة Grafana، يجب تسجيل الدخول كـ admin. بيانات الاعتماد هي الافتراضية: admin:admin. #hacktheplanet
لكي يتمكن Loki من جمع سجلات docker، يقوم هذا المختبر بتثبيت برنامج تشغيل Loki Docker كإضافة Docker.
لكي يتمكن Prometheus من الوصول إلى مقاييس أداء الحاويات التي تعمل في المجموعة، يتم استخدام cAdvisor.
لإضافة خدمات إضافية، هناك حاجة إلى معرفة بسيطة بملفات docker-compose.yml. يتم إنشاء docker-compose.yml في جذر هذا المستودع تلقائيًا عند بدء تشغيل المختبر. تستخدم هذه العملية ملفات yaml الموجودة تحت ./etc/services.
➜ pentest_lab tree ./etc/services
./etc/services
├── blue_team
│ └── endlessh.yml
├── default.yml
├── monitoring
│ ├── cadvisor.yml
│ ├── grafana.yml
│ ├── loki.yml
│ └── prometheus.yml
├── red_team
└── victim
├── beginner
│ ├── bwapp.yml
│ ├── dvwa.yml
│ ├── hackazon.yml
│ ├── tiredful.yml
│ ├── webgoat.yml
│ └── xvwa.yml
├── expert
│ └── juice-shop.yml
└── intermediate
└── ninjas.yml
الخدمات التي سيتم تشغيلها يتم التحكم فيها عن طريق استدعاء ./lab.sh مع الخيارات المقابلة. لتعطيل خدمة بشكل دائم، قم بإزالة امتداد الملف .yml.
مثال على خدمة ضحية:
bwapp:
labels:
class: 'victim'
cluster: 'pentest_lab'
level: 'beginner'
image: raesene/bwapp
ports:
- '8080:80'
networks:
pentest_lab:
ipv4_address: 10.5.0.100
hostname: bwapp
volumes:
- bwapp-data:/var/lib/mysql
ملاحظة: إذا كانت الخدمة تتطلب نوعًا من التثبيت عند الاستخدام الأول، استخدم docker inspect <image_name> لمعرفة أين يخزن صورة docker البيانات وأضف حجمًا يشير إلى هذا الدليل. في المثال أعلاه هذا هو:
volumes:
- bwapp-data:/var/lib/mysql
يضمن هذا أنك لست مضطرًا لإعداد الخدمة مرة أخرى في كل مرة تعيد فيها تشغيل المختبر. ولكن إذا كنت تريد إعادة تعيين المختبر والبدء من جديد تمامًا، يمكنك استخدام ./lab.sh -p | --prune. سيؤدي هذا إلى حذف جميع الموارد المملوكة للمختبر.
سبب استخدامنا لعناوين IP ثابتة هو أن صندوق Kali يحتاج إلى عنوان IP لا يتغير لتبسيط تسجيل الدخول عبر SSH. مزيد من المعلومات في قسم النصائح/الحيل أدناه.
إذا قمت بإضافة خدمات وكانت هناك معلومات إضافية مفيدة لأي شخص يشغل هذا المختبر، يمكنك إضافة هذه المعلومات إلى ./etc/services_info. ستتم طباعة محتويات هذا الملف كما هي سطرًا سطرًا عن طريق تشغيل ./lab.sh -i.
للاتصال السهل بخدمة Kali، يمكن إضافة ما يلي إلى $HOME/.ssh/cofig:
Host kali
User root
Hostname 10.5.0.5
UserKnownHostsFile /dev/null
StrictHostKeyChecking accept-new
لذا بدلاً من ssh [email protected] -o "UserKnownHostsFile /dev/null" يمكن تشغيل ssh kali.
لمستخدمي tmux، سيقوم ما يلي بالاتصال بجلسة tmux تلقائيًا:
Host kali
User root
Hostname 10.5.0.5
UserKnownHostsFile /dev/null
StrictHostKeyChecking accept-new
RequestTTY yes
RemoteCommand tmux -L tmux new-session -As hacktheplanet