
CVE-2023-33381 (MitraStar GPT-2741GNAC राउटर में OS कमांड इंजेक्शन) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट। डायग्नोस्टिक ping/traceroute कार्यक्षमता के माध्यम से प्रतिबंधित शेल को बायपास करने का प्रदर्शन, साथ ही कमजोर CGI बाइनरीज़ का रिवर्स इंजीनियरिंग विश्लेषण।
SSH के माध्यम से लॉग इन करने पर, मैंने तुरंत उपलब्ध कमांड और विकल्पों के सीमित सेट पर ध्यान दिया। यह स्पष्ट हो गया कि मैं वास्तव में एक प्रतिबंधित शेल वातावरण तक ही सीमित था।

कई ज्ञात भेद्यताओं का पता लगाने के बाद, मैंने नई भेद्यताओं की खोज में गहराई से उतरने का निर्णय लिया। शुरू करने के लिए, मैंने प्रशासनिक पोर्टल में लॉग इन किया और विभिन्न कार्यक्षमताओं का परीक्षण करना शुरू किया, जो संभावित रूप से OS कमांड इंजेक्शन का कारण बन सकती थीं। Diagnostic मेनू के भीतर, मुझे एक विशेष सुविधा मिली जो मुझे ping और traceroute कमांड का उपयोग करके कनेक्टिविटी का परीक्षण करने की अनुमति देती थी।


इसलिए, मैंने अपने कमांड में ";" वर्ण जोड़कर कुछ चालाकी आज़माने का निर्णय लिया। मैंने "cat /etc/passwd" निष्पादित किया और अंदाज़ा लगाइए? कमांड सफलतापूर्वक चल गया।

मैंने इसे एक कदम आगे बढ़ाया और "/etc/passwd" फ़ाइल में प्रतिबंधित शेल प्रविष्टि को एक पूर्ण इंटरैक्टिव शेल के साथ बदलने के लिए "sed" कमांड निष्पादित किया।

जैसा कि नीचे दी गई छवि में स्पष्ट रूप से दर्शाया गया है, मेरे द्वारा किए गए संशोधनों ने मुझे लॉग इन करने और "uname" और "cat" जैसे कमांड स्वतंत्र रूप से निष्पादित करने में सक्षम बनाया है।

चूंकि मेरे पास पूर्ण व्यवस्थापक विशेषाधिकार थे, इसलिए मैं कमजोर घटक का पता लगाने के लिए गहराई से जांच करने से खुद को नहीं रोक सका। ब्राउज़र अनुरोधों का निरीक्षण करते समय, मुझे कुछ दिलचस्प नज़र आया। अनुरोधों द्वारा दो CGI फ़ाइलें, "ping.cgi" और "DiagGeneral.cgi", लक्षित की जा रही थीं।

फ़ाइलों को प्राप्त करने के बाद, मैंने Ghidra का उपयोग करके रिवर्स इंजीनियरिंग में कुछ मज़ा किया। यहाँ दिलचस्प हिस्सा है: "ping.cgi" फ़ाइल में, मैंने देखा कि PingIPAddr पैरामीटर को बिना किसी उचित सैनिटाइज़ेशन के सीधे उपयोगकर्ता इनपुट से लिया जा रहा था। उपयोगकर्ता इनपुट से लिया गया PingIPAddr पैरामीटर tcapi_set फ़ंक्शन का उपयोग करके भविष्य में उपयोग के लिए संग्रहीत किया गया था।

अंत में, DiagGeneral.cgi फ़ाइल में PingIPAddr पैरामीटर को tcapi_get फ़ंक्शन का उपयोग करके प्राप्त किया गया था और फिर बिना किसी सैनिटाइज़ेशन के सीधे system फ़ंक्शन में उपयोग किया गया था। यह दोष एक कमांड इंजेक्शन भेद्यता पैदा करता है, जो सिस्टम पर मनमाने कमांड के अनधिकृत निष्पादन को सक्षम बनाता है।
