
वेबमिन संस्करण 1.890 से 1.920 में एक सरल C-आधारित भेद्यता
परिचय:
Webmin एक्सप्लॉइट Webmin सेवा के लिए एक लक्षित एक्सप्लॉइट है, जिसका उपयोग Webmin के पुराने संस्करणों पर किया जा सकता है। यह एक्सप्लॉइट दुर्भावनापूर्ण कोड निष्पादित करने और लक्षित सिस्टम पर अनधिकृत पहुँच प्राप्त करने के लिए विभिन्न तकनीकों का उपयोग करता है।
इसमें शामिल हैं:
लक्षित सिस्टम पर कमांड निष्पादित करने के लिए C और Assembly दोनों कोड का उपयोग करना।
रिवर्स शेल उत्पन्न करने के लिए anti-debugging, XOR डिक्रिप्शन, और execve तथा prctl जैसे syscalls का लाभ उठाना।
विशेषताएँ: Anti-debugging: एक्सप्लॉइट की डिबगिंग को रोकने के लिए ptrace सिस्टम कॉल का उपयोग करता है।
XOR डिक्रिप्शन: kthreadd और /bin/sh जैसे एन्क्रिप्टेड स्ट्रिंग्स को XOR एन्क्रिप्शन का उपयोग करके मेमोरी में डिकोड करता है।
prctl syscall: प्रोसेस का नाम बदलकर kthreadd करता है ताकि एक्सप्लॉइट प्रोसेस सूची से छिपा रहे।
execve syscall: लक्षित सिस्टम पर /bin/sh रिवर्स शेल निष्पादित करता है ताकि पूर्ण सिस्टम पहुँच प्राप्त हो सके।
C और Assembly का संयोजन: यह एक्सप्लॉइट कस्टम सिस्टम कॉल्स के लिए C के लचीलेपन को असेंबली भाषा की शक्ति के साथ जोड़ता है।
आवश्यकताएँ: ऑपरेटिंग सिस्टम: Linux या कोई भी Unix-आधारित वितरण।
आवश्यक लाइब्रेरीज़:
क्लाइंट और सर्वर के बीच कनेक्शन स्थापित करने के लिए libcurl।
एक्सप्लॉइट को कंपाइल करने के लिए GCC।
C में curl लाइब्रेरी लोड करने के लिए -lcurl लाइब्रेरी।
उपयोग कैसे करें: वातावरण सेट करना: सुनिश्चित करें कि आपके पास रूट विशेषाधिकार हैं क्योंकि execve जैसी कुछ क्रियाओं के लिए उन्नत अनुमतियों की आवश्यकता होती है।
आवश्यक लाइब्रेरीज़ इंस्टॉल करें:
sudo apt-get install libcurl4-openssl-dev
एक्सप्लॉइट को कंपाइल करना: webmin_exploit.c फ़ाइल को अपनी मशीन पर डाउनलोड करें।
PIE (Position Independent Executable) को अक्षम करने के लिए GCC के साथ -no-pie विकल्प का उपयोग करके एक्सप्लॉइट कोड को कंपाइल करें:
gcc -no-pie webmin_exploit.c -o webExploit -lcurl
नोट: यदि आपको PIE से संबंधित समस्याएँ आती हैं, तो ऊपर दिखाए अनुसार -no-pie का उपयोग करना सुनिश्चित करें।
एक्सप्लॉइट चलाना: एक्सप्लॉइट सेटिंग्स कॉन्फ़िगर करें: कोड में आवश्यकतानुसार target URL, LHOST (लोकल होस्ट), और LPORT (लोकल पोर्ट) को संशोधित करें।
एक्सप्लॉइट निष्पादित करें: कंपाइल करने के बाद, एक्सप्लॉइट को लक्षित मशीन पर चलाएँ:
./webExploit रिवर्स शेल प्राप्त करना:
एक्सप्लॉइट सफलतापूर्वक निष्पादित होने के बाद, इसे आपके LHOST और LPORT (जैसे, 192.168.0.174:4444) पर एक रिवर्स शेल कनेक्शन स्थापित करना चाहिए।
सुनिश्चित करें कि आप Netcat या समान टूल का उपयोग करके निर्दिष्ट पोर्ट पर सुन रहे हैं:
nc -lvnp 4444
तकनीकी विवरण: कोड में मुख्य निर्देश: Anti-debugging: ptrace सिस्टम कॉल का उपयोग एक्सप्लॉइट को gdb जैसे टूल द्वारा डिबग होने से रोकने के लिए किया जाता है। यह विश्लेषकों के लिए एक्सप्लॉइट का रिवर्स-इंजीनियरिंग करना कठिन बना देता है।
XOR डिक्रिप्शन: स्ट्रिंग्स kthreadd और /bin/sh बाइनरी में कुंजी 0x41 (ASCII 'A') के साथ XOR-एन्क्रिप्टेड हैं। ये स्ट्रिंग्स रनटाइम पर मेमोरी में डिक्रिप्ट की जाती हैं।
Syscalls:
prctl(PR_SET_NAME, "kthreadd"): प्रोसेस का नाम बदलकर kthreadd करता है, जिससे एक्सप्लॉइट का पता लगने से बचने में मदद मिलती है।
execve("/bin/sh"): /bin/sh के लिए एक रिवर्स शेल निष्पादित करता है, जिससे हमलावर को सिस्टम तक पूर्ण पहुँच मिलती है।
मुख्य निर्देश: mov: रजिस्टरों में मान लोड करता है।
xor: डेटा पर XOR ऑपरेशन करता है।
syscall: शेल स्पॉनिंग और प्रोसेस रीनामिंग के लिए execve और prctl जैसे सिस्टम कॉल निष्पादित करता है।
lea: रजिस्टर में एक एड्रेस लोड करता है।
समस्या निवारण: यदि कंपाइलेशन के दौरान समस्याएँ आती हैं, तो दोबारा जाँच करें कि आप Position Independent Executables (PIE) को अक्षम करने के लिए -no-pie फ़्लैग का उपयोग कर रहे हैं।
यदि समस्याएँ बनी रहती हैं, तो सुनिश्चित करें कि आपका विकास वातावरण आवश्यक लाइब्रेरीज़ के साथ अद्यतित है।
चेतावनियाँ: इस एक्सप्लॉइट का उपयोग केवल परीक्षण वातावरण में करें। इसे कभी भी लाइव सिस्टम या उन सिस्टमों पर न चलाएँ जिन्हें परीक्षण करने की आपके पास स्पष्ट अनुमति नहीं है।
यह सुनिश्चित करने के लिए कि रिवर्स शेल सफलतापूर्वक कनेक्ट हो सके, यदि आवश्यक हो तो लक्षित मशीन पर फ़ायरवॉल अक्षम करें।
रिवर्स शेल कनेक्शन प्राप्त करने के लिए Netcat या समान टूल का उपयोग करके पोर्ट पर सुनना सुनिश्चित करें।