
ترقيع غير رسمي لـ libvirt لمختبر SpecterOps المجاني Kubernetes لمتخصصي الفرق الحمراء
تصحيح غير رسمي لـ libvirt و QEMU/KVM لدورة SpecterOps المجانية Kubernetes لمختصي الاختراق الأحمر. تبقى عناوين الشبكة الأصلية، وطوبولوجيا Kubernetes، واستدعاءات Mythic، وسلوك المختبر دون تغيير.
لأن تشغيل VirtualBox على لينكس يشبه إحضار مولد كهربائي محمول إلى منزل متصل بالفعل بالشبكة الكهربائية؛ أنت تدفع مرتين مقابل شيء يوفره النواة بالفعل، بينما تضيف سطح هجوم إضافي يتمثل في محاكي افتراضي ووحدات نواة. KVM جزء من لينكس، بينما يوفر QEMU و libvirt طبقات الجهاز الافتراضي والإدارة حوله. هذا يتجنب إضافة حزمة محاكي افتراضي خارجية منفصلة إلى مضيف لينكس.
يحل VirtualBox مشكلة التوزيع عبر المنصات في الدورة؛ بينما يحل libvirt مشكلة مضيف لينكس. يبقى موفر VirtualBox الأصلي دون تغيير لمستخدمي ويندوز و macOS، بينما يتيح هذا التصحيح لمستخدمي لينكس تشغيل نفس المختبر على KVM.
لا يحتوي هذا المستودع عمدًا على أرشيف مختبر SpecterOps أو نسخة من شجرة المصدر الخاصة به. احصل على المادة الأصلية من خلال الدورة الرسمية:
README.md
ARCHITECTURE.md
LICENSE
NOTICE.md
UPSTREAM_SHA256SUMS
docs/
libvirt-lab-provisioned.png
patches/
libvirt.patch
SHA256SUMS
يحتوي فقط على التغييرات اللازمة لإضافة دعم libvirt. لا يحتوي على الأرشيف الأصلي، أو خطط التحويل الداخلية، أو تقارير المراجعة، أو بيئة الاختبار المحلية، أو بيانات الاعتماد المولدة، أو حالة الأجهزة الافتراضية.
patches/libvirt.patchvagrant-libvirt؛نزّل k8s-attack-path-part-1-lab-assets.tar.gz من
قسم البنية التحتية للمختبر والتكوين في دورة SpecterOps المجانية.
استخرج ملفات المختبر الأصلية:
mkdir -p ~/kubernetes-for-red-teamers
cd ~/Downloads
tar xzvf k8s-attack-path-part-1-lab-assets.tar.gz -C ~/kubernetes-for-red-teamers
استنسخ مستودع التصحيح:
cd ~
git clone https://github.com/GregDurys/specterops-k8s-red-teamers-libvirt-patch.git
تحقق من التصحيح:
cd ~/specterops-k8s-red-teamers-libvirt-patch
sha256sum -c patches/SHA256SUMS
يجب أن تكون النتيجة:
patches/libvirt.patch: OK
اختياريًا، تحقق من الأرشيف الذي تم تنزيله مقابل الإصدار المستخدم لاختبار هذا التصحيح:
cd ~/Downloads
sha256sum -c ~/specterops-k8s-red-teamers-libvirt-patch/UPSTREAM_SHA256SUMS
إذا اختلف المجموع الاختباري، فقد تكون SpecterOps قد حدّثت ملفات المختبر.
طبّق التصحيح:
cd ~/kubernetes-for-red-teamers
git apply --check ~/specterops-k8s-red-teamers-libvirt-patch/patches/libvirt.patch
git apply ~/specterops-k8s-red-teamers-libvirt-patch/patches/libvirt.patch
تحقق من صحة التكوين:
vagrant validate
يجب أن تكون النتيجة:
Vagrantfile validated successfully.
يضيف التصحيح ملف README لاستخدام المختبر ووثيقة معمارية خاصة به إلى الدليل المستخرج.
ابدأ المختبر من دليل الدورة المُصحح:
vagrant up --provider=libvirt
يقوم ملف Vagrantfile تلقائيًا بتعطيل التشغيل المتوازي لأن الأجهزة اللاحقة تستهلك ملفات يولّدها مستوى التحكم.

يتم الحفاظ على الطوبولوجيا الوظيفية الموضحة في مخطط الدورة:
| عنصر المخطط | تحويل Libvirt |
|---|---|
| Teamserver | 192.168.56.10، DNS teamserver |
| مستوى التحكم | 192.168.56.20، خادم API على TCP 6443 |
| العامل 1 | 192.168.56.30 |
| العامل 2 | 192.168.56.31 |
| واجهة Mythic | TCP 7443 |
| منفذ الاستدعاء | TCP 8081 |
| سجل TLS | TCP 5000، موثوق به من قبل عقد المجموعة |
| استدعاءات Mythic | الاحتفاظ باستدعاءات المطور و noaccess |
| وصول المضيف | يقوم Vagrant بإعادة توجيه المنفذين 7443 و 8081 إلى teamserver |
| حركة مرور المختبر الخاصة | تبقى على شبكة 192.168.56.0/24 المعزولة |
| الوصول إلى الإنترنت | محتفظ به عبر المحول 1 |
| تحليل أسماء المضيفين | محتفظ به عبر جميع الأجهزة الافتراضية الأربعة |
| Code-server وملفات المختبر | دون تغيير عن الإصدار الأصلي |
يحتوي تنفيذ الشبكة على اختلاف واحد مقصود:
k8s-workshop-mgmt، عادةً 192.168.157.0/24.يمكن لأجهزة Libvirt الافتراضية بالتالي التواصل عبر المحول 1، بينما لا توفر محولات NAT المنفصلة في VirtualBox هذا المسار. Kubernetes و Calico واستدعاءات Mythic والسجل وتحليل أسماء مضيفي المختبر مثبتة صراحةً على المحول 2، لذا تبقى طوبولوجيا المختبر دون تغيير.
اقرأ ARCHITECTURE.md للحصول على تفاصيل الطوبولوجيا ومعالجة التصادم والأساس المنطقي للمجلد المتزامن.
بعد اكتمال التوفير:
vagrant status
vagrant ssh control-plane-1 -c 'kubectl get nodes -o wide'
vagrant port --guest 7443 teamserver
curl --insecure --head https://192.168.56.10:7443
يجب أن تكون جميع عقد Kubernetes الثلاث في حالة Ready مع عناوين داخلية .20 و .30 و .31. يجب أن تكون صفحة تسجيل الدخول إلى Mythic قابلة للوصول عبر منفذ المضيف المعاد توجيهه ومباشرةً على https://192.168.56.10:7443. يجب أن يظهر الاستدعاءان الخاصان بالدورة في Mythic كما هو موصوف في مادة الدورة الرسمية.
لتفكيك بيئة الاختبار:
vagrant destroy -f
العمل الأصلي في هذا المستودع مرخص بموجب رخصة Apache 2.0.
ينطبق هذا الترخيص فقط على الكود والوثائق الأصلية المساهَم بها من هذا المستودع. لا يمنح أي حقوق في دورة SpecterOps أو الأرشيف الذي تم تنزيله أو أي مادة أخرى من المصدر الأصلي.