
शैक्षिक लैब जो pinned EDK II/OVMF फ़र्मवेयर बनाती है, QEMU में एक UEFI VM बूट करती है, और PXE नेटवर्क-बूट DoS तथा मेमोरी-करप्शन भेद्यता के लिए Python PoC स्क्रिप्ट चलाती है।
EDK II / OVMF में PXE नेटवर्क-बूट कमज़ोरी का अध्ययन करने के लिए एक शैक्षिक प्रयोगशाला। यह एक पिन किए गए EDK II रिवीज़न को बिल्ड करती है, QEMU में एक UEFI वर्चुअल मशीन बूट करती है, और denial of service (DoS) तथा memory corruption की जाँच के लिए Python proof-of-concept स्क्रिप्ट शामिल करती है।
संदर्भ: EDK II सुरक्षा सलाह · अपस्ट्रीम फ़िक्स
dnsmasq, ip/tc (सामान्यतः iproute2 या iproute से), और sudo/root विशेषाधिकार।निकाले गए आर्काइव से:
cd pxe-lab-public
chmod +x *.sh
./start.sh
लॉन्चर निर्भरताओं की जाँच करता है, अनुपलब्ध पैकेज इंस्टॉल करने का विकल्प देता है, आवश्यक होने पर edk2-stable202608 (कमिट 2970e5699ba6267f3384ffab20f96647578aebc8) बिल्ड करता है, और VM नियंत्रण मेनू खोलता है। start.sh या फ़र्मवेयर बिल्ड को sudo के साथ न चलाएँ।
उपयोगी कमांड:
./start.sh --check # Check the environment
./start.sh --build-only # Build the pinned firmware without starting QEMU
./start.sh --system # Use system OVMF instead (not suitable for verifying the pinned vulnerability)
./lab_run.sh --help # Show networking, capture, and QEMU options
डिफ़ॉल्ट QEMU यूज़र-मोड नेटवर्क पृथक है और इसके लिए root की आवश्यकता नहीं है। पैकेट कैप्चर रिकॉर्ड करने के लिए, फ़र्मवेयर बिल्ड करने के बाद ./lab_run.sh --pcap session.pcap चलाएँ।
PoC स्क्रिप्ट के लिए ब्रिज मोड आवश्यक है; वे डिफ़ॉल्ट QEMU यूज़र-मोड नेटवर्क में पैकेट इंजेक्ट नहीं कर सकतीं।
पहले, एक सामान्य उपयोगकर्ता के रूप में ./start.sh --build-only से फ़र्मवेयर बिल्ड करें। फिर, एक टर्मिनल में:
cd pxe-lab-public
sudo ./lab.sh --network bridge --namespace pxelab
मेनू में 1 (Start) चुनें। एक अलग टर्मिनल में, निकाले गए आर्काइव की रूट से निम्नलिखित में से एक चलाएँ:
cd PoC-DoS
sudo bash ./start_dos.sh
या, प्रयोगात्मक memory-corruption / RCE प्रयास के लिए:
cd PoC-RCE
sudo bash ./start_rce.sh
ये प्रयोग पृथक वर्चुअल PXE वातावरण में तैयार किया गया ट्रैफ़िक भेजते हैं और फ़र्मवेयर हैंग, क्रैश, या अपवाद उत्पन्न कर सकते हैं। क्रैश या दूषित रजिस्टर मान इस बात का प्रमाण नहीं है कि मनमाना कोड निष्पादन सफल हुआ। RCE स्क्रिप्ट एक प्रयोगात्मक प्रयास है, सत्यापित RCE एक्सप्लॉइट नहीं। परिणाम सिस्टम और फ़र्मवेयर बिल्ड के अनुसार भिन्न हो सकते हैं।
प्रयोगशाला अवसंरचना (सेटअप, बिल्ड, और VM प्रबंधन कोड) एक बड़े भाषा मॉडल (LLM) की सहायता से उत्पन्न की गई थी और लेखक द्वारा परीक्षण की गई थी। DoS और RCE proof-of-concept स्क्रिप्ट लेखक द्वारा स्वयं लिखी गई थीं और एक LLM सहायक के साथ परीक्षण की गई थीं। परीक्षण शुद्धता, सुरक्षा, पुनरुत्पादनीयता, या अन्य सिस्टम के साथ संगतता की गारंटी नहीं देता है।
इस कोड का उपयोग केवल उन उपकरणों पर करें जिनका स्वामित्व आपके पास है और जिन्हें आप नियंत्रित करते हैं, एक पृथक परीक्षण वातावरण में। इसका उपयोग तृतीय-पक्ष सिस्टम, नेटवर्क, या उपकरणों के विरुद्ध न करें।
सभी कोड और स्क्रिप्ट “जैसी हैं वैसी ही,” किसी भी प्रकार की वारंटी के बिना प्रदान की गई हैं। लागू कानून द्वारा अनुमत अधिकतम सीमा तक, लेखक इस रिपॉज़िटरी के उपयोग से उत्पन्न त्रुटियों, खराबियों, क्षति, डेटा हानि, या परिणामों के लिए उत्तरदायित्व अस्वीकार करता है। उपयोगकर्ता अपने कार्यों और लागू कानूनों के अनुपालन के लिए पूर्ण रूप से स्वयं उत्तरदायी हैं।