
अनौपचारिक libvirt पैच फ्री SpecterOps Kubernetes for Red Teamers लैब के लिए
मुफ्त SpecterOps Kubernetes for Red Teamers पाठ्यक्रम के लिए एक अनौपचारिक libvirt और QEMU/KVM पैच। मूल नेटवर्क पते, Kubernetes टोपोलॉजी, Mythic कॉलबैक और लैब व्यवहार अपरिवर्तित रहते हैं।
क्योंकि Linux पर VirtualBox चलाना उस घर में पोर्टेबल जनरेटर लाने जैसा है जो पहले से ही ग्रिड से जुड़ा है; आप उस चीज़ के लिए दो बार भुगतान कर रहे हैं जो कर्नेल पहले से देता है, साथ ही एक और हाइपरवाइज़र और कर्नेल-मॉड्यूल अटैक सतह जोड़ रहे हैं। KVM Linux का हिस्सा है, जबकि QEMU और libvirt इसके चारों ओर वर्चुअल-मशीन और प्रबंधन परतें प्रदान करते हैं। यह Linux होस्ट में एक अलग तृतीय-पक्ष हाइपरवाइज़र मॉड्यूल स्टैक जोड़ने से बचाता है।
VirtualBox पाठ्यक्रम की क्रॉस-प्लेटफ़ॉर्म वितरण समस्या को हल करता है; libvirt Linux होस्ट समस्या को हल करता है। मूल VirtualBox प्रदाता Windows और macOS उपयोगकर्ताओं के लिए अछूता रहता है, जबकि यह पैच Linux उपयोगकर्ताओं को KVM पर वही लैब चलाने देता है।
इस रिपॉजिटरी में जानबूझकर SpecterOps लैब संग्रह या उसके स्रोत ट्री की प्रति नहीं है। मूल सामग्री आधिकारिक पाठ्यक्रम के माध्यम से प्राप्त करें:
README.md
ARCHITECTURE.md
LICENSE
NOTICE.md
UPSTREAM_SHA256SUMS
docs/
libvirt-lab-provisioned.png
patches/
libvirt.patch
SHA256SUMS
patches/libvirt.patch में केवल libvirt समर्थन जोड़ने के लिए आवश्यक परिवर्तन शामिल हैं। इसमें मूल संग्रह, आंतरिक रूपांतरण योजनाएँ, समीक्षा रिपोर्ट, स्थानीय परीक्षण हार्नेस, उत्पन्न क्रेडेंशियल या VM स्थिति शामिल नहीं है।
vagrant-libvirt प्लगइन;मुफ्त SpecterOps पाठ्यक्रम के Lab Infrastructure and Configuration अनुभाग से k8s-attack-path-part-1-lab-assets.tar.gz डाउनलोड करें।
मूल लैब फ़ाइलें निकालें:
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, TCP 6443 पर API सर्वर |
| Worker 1 | 192.168.56.30 |
| Worker 2 | 192.168.56.31 |
| Mythic UI | TCP 7443 |
| कॉलबैक पोर्ट | TCP 8081 |
| TLS रजिस्ट्री | TCP 5000, क्लस्टर नोड्स द्वारा विश्वसनीय |
| Mythic कॉलबैक | Developer और noaccess कॉलबैक बनाए रखे गए |
| होस्ट एक्सेस | Vagrant पोर्ट 7443 और 8081 को teamserver पर अग्रेषित करता है |
| निजी लैब ट्रैफ़िक | पृथक 192.168.56.0/24 नेटवर्क पर रहता है |
| इंटरनेट एक्सेस | एडेप्टर 1 के माध्यम से बनाए रखा गया |
| होस्टनाम रिज़ॉल्यूशन | सभी चार VMs में बनाए रखा गया |
| Code-server और लैब मेनिफेस्ट | अपस्ट्रीम से अपरिवर्तित |
नेटवर्क कार्यान्वयन में एक जानबूझकर अंतर है:
k8s-workshop-mgmt NAT नेटवर्क से जोड़ता है, सामान्यतः 192.168.157.0/24।इसलिए libvirt VMs एडेप्टर 1 के माध्यम से संचार कर सकते हैं, जबकि VirtualBox के अलग NAT एडेप्टर वह पथ प्रदान नहीं करते हैं। 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 नोड्स आंतरिक पते .20, .30, और .31 के साथ Ready होने चाहिए। Mythic लॉगिन पृष्ठ अग्रेषित होस्ट पोर्ट और सीधे https://192.168.56.10:7443 पर पहुंच योग्य होना चाहिए। दो पाठ्यक्रम कॉलबैक आधिकारिक पाठ्यक्रम सामग्री के अनुसार Mythic में दिखाई देने चाहिए।
परीक्षण वातावरण को नष्ट करने के लिए:
vagrant destroy -f
इस रिपॉजिटरी में मूल कार्य Apache License 2.0 के तहत लाइसेंस प्राप्त है।
यह लाइसेंस केवल इस रिपॉजिटरी द्वारा योगदान किए गए मूल कोड और दस्तावेज़ीकरण पर लागू होता है। यह SpecterOps पाठ्यक्रम, डाउनलोड किए गए संग्रह या अन्य अपस्ट्रीम सामग्री में कोई अधिकार प्रदान नहीं करता है।