
पूर्व-पैच किए गए घटकों के साथ D-Link DCS-932L फ़र्मवेयर इम्यूलेशन को सरल बनाता है और CVE-2024-37606 के लिए एक प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट शामिल करता है।

स्वागत है! यह रिपॉज़िटरी D-Link DCS-932L फ़र्मवेयर को एमुलेट करने और CVE-2024-37606 भेद्यता को प्रदर्शित करने हेतु उपकरण और एक वातावरण प्रदान करती है। इसमें पहले से पैच किए गए बाइनरी और आवश्यक लाइब्रेरीज़ शामिल हैं, जो एमुलेशन सेटअप को सरल बनाती हैं, जिससे आपको Ghidra जैसे उपकरणों के साथ मैन्युअल पैचिंग करने की आवश्यकता नहीं होती।
इस प्रोजेक्ट में CVE-2024-37606 के लिए एक proof-of-concept एक्सप्लॉइट (CVE-2024-37606-DCS932L.py) शामिल है। यह भेद्यता alphapd सेवा में बफर ओवरफ़्लो से संबंधित है। कृपया इसका उपयोग जिम्मेदारीपूर्वक और केवल शैक्षिक उद्देश्यों के लिए करें।
वीडियो देखने के लिए फोटो पर क्लिक करें

फ़र्मवेयर एमुलेशन वातावरण की कार्यक्षमता और उपयोगिता बढ़ाने के लिए कई संशोधन किए गए हैं:
startup.sh) जोड़ी गई।libnvram.so से पंक्तियाँ 338 से 342 हटाई गईं। संशोधित फ़ाइल (firmadyne/libnvram.so) शामिल है।sysinfo से IP प्राप्त करने में बाधा डालने वाली त्रुटि को हल करने के लिए Ghidra का उपयोग करके alphapd बाइनरी को पैच किया गया।qemu-mipsel-static शामिल किया गया।एमुलेशन वातावरण स्थापित करने और एक्सप्लॉइट चलाने के लिए इन चरणों का पालन करें।
gitqemu-user-staticpython3 और pipgit clone https://github.com/itwizardo/DCS932L-Emulation-CVE-2024-37606-Attack DCS932L-CVE
cd DCS932L-CVE
sudo apt update
sudo apt install qemu-user-static
brew install qemu
# QEMU installation via Homebrew includes user-mode static binaries.
choco install qemu
QEMU स्टैटिक बाइनरी को फ़र्मवेयर के फाइलसिस्टम में कॉपी करें:
sudo cp /usr/bin/qemu-mipsel-static ./usr/bin/
वेब निर्देशिका पर इम्यूटेबल विशेषता सेट करें। यह एमुलेशन और एक्सप्लॉइट के सही कामकाज के लिए आवश्यक महत्वपूर्ण वेब सर्वर फ़ाइलों में संशोधन को रोकता है:
sudo chattr +i etc_ro/web/
Set-ItemProperty -Path ./etc_ro/web -Name IsReadOnly -Value $true
# Note: This sets the directory as Read-Only, preventing accidental changes.
# To make contents read-only too, add -Recurse to Get-ChildItem:
# Get-ChildItem -Path ./etc_ro/web -Recurse | Set-ItemProperty -Name IsReadOnly -Value $true
sudo chflags schg etc_ro/web/
MIPS लिटिल एंडियन QEMU बाइनरी का उपयोग करके chroot वातावरण में प्रवेश करें:
sudo chroot . /usr/bin/qemu-mipsel-static /bin/sh
chroot शेल के अंदर, स्टार्टअप स्क्रिप्ट चलाएं और वेब सर्वर प्रारंभ करें:
# Execute startup tasks (network setup, etc.)
./startup.sh
# Set environment variables for nvram emulation
export LD_PRELOAD=/firmadyne/libnvram.so
export HOME=.
export RANDFILE=$HOME/.rnd
# Start the vulnerable web server (binds to 0.0.0.0, may take 1-2 mins to fully initialize)
alphapd
इस टर्मिनल को चालू रखें। एमुलेटेड डिवाइस की सेवाएँ होस्ट मशीन से उस IP पते के माध्यम से सुलभ होंगी जो startup.sh द्वारा कॉन्फ़िगर किया गया है (प्रायः 192.168.0.1)।
अपनी होस्ट मशीन पर (chroot वातावरण के बाहर) एक नई टर्मिनल विंडो खोलें।
नई टर्मिनल में खोलें:
cd /path/to/DCS932L # Adjust path if necessary
(वैकल्पिक) स्क्रिप्ट को आवश्यकता पड़ने पर आवश्यक Python पैकेज (जैसे requests) स्थापित करें:
# pip3 install requests # Uncomment if needed
एक्सप्लॉइट स्क्रिप्ट निष्पादित करें। यह स्वचालित रूप से स्थानीय एमुलेटेड वातावरण (startup.sh द्वारा सेट किया गया 192.168.0.1) को लक्षित करती है:
python3 CVE-2024-37606-DCS932L.py
किसी भिन्न IP पते को लक्षित करने के लिए, --ip तर्क का उपयोग करें:
# Example: python3 CVE-2024-37606-DCS932L.py --ip <target_ip>
एक्सप्लॉइट को क्रियान्वित होते देखने के लिए स्क्रिप्ट के आउटपुट का अनुसरण करें।
qemu-mipsel-static का उपयोग करना चाहिए।qemu-mips-static (बिग एंडियन) का उपयोग करने पर Invalid ELF image त्रुटियाँ उत्पन्न होंगी।alphapd सेवा chroot वातावरण के अंदर 0.0.0.0 से बंधती है और निष्पादन के बाद पूरी तरह से प्रतिक्रियाशील होने में 1-2 मिनट लग सकते हैं।startup.sh स्क्रिप्ट संभवतः IP 192.168.0.1 के साथ एक नेटवर्क इंटरफ़ेस (जैसे tap0) स्थापित करती है। एक्सप्लॉइट कनेक्ट करने में विफल रहने पर इसे सत्यापित करें।/lib/ld-uClibc.so.0) chroot वातावरण की /lib निर्देशिका में मौजूद हैं।यह प्रोजेक्ट केवल शैक्षिक और शोध उद्देश्यों के लिए है। यह एक ज्ञात भेद्यता (CVE-2024-37606) को प्रदर्शित करता है। लेखक इस जानकारी या कोड के किसी भी दुरुपयोग के लिए जिम्मेदार नहीं हैं। इस वातावरण और एक्सप्लॉइट का उपयोग जिम्मेदारीपूर्वक और नैतिक रूप से करें।
यह Novi Hogeschool के लिए एक स्कूल प्रोजेक्ट के भाग के रूप में विकसित किया गया था।
Georgio T. - itwizardo
फ़र्मवेयर रिवर्स इंजीनियरिंग और सुरक्षा विश्लेषण के लिए इस प्रोजेक्ट में योगदान करने और उपकरणों को बेहतर बनाने के लिए स्वतंत्र महसूस करें!