
CVE-2022-22965 (Spring4Shell) RCE भेद्यता के लिए Python शोषण Java Spring Core में। Tomcat लॉग कॉन्फ़िगरेशन के माध्यम से JSP वेबशेल इंजेक्ट करता है ताकि संवेदनशील सर्वरों पर दूरस्थ कमांड निष्पादित किए जा सकें।
CVE-2022-22965 भेद्यता, जिसे Spring4Shell के नाम से जाना जाता है, Java Spring Core फ्रेमवर्क में एक दूरस्थ कोड निष्पादन (RCE) दोष है, जो संस्करण 5.3.18 और 5.2.20 से पहले के संस्करणों में मौजूद है। यह भेद्यता एक हमलावर को Tomcat लॉग के गलत कॉन्फ़िगरेशन का शोषण करके कोड इंजेक्ट करने और उसे दूरस्थ रूप से निष्पादित करने की अनुमति देती है। इसकी खोज मार्च 2022 में हुई थी और यह JDK >= 9 संस्करण के साथ काम करने वाले activeMQ, Spring MVC और Spring WebFlux अनुप्रयोगों को प्रभावित करती है।

हम पहले से सुनिश्चित कर लेते हैं कि हमारे पास JDK >= 9 का संस्करण है, यदि नहीं तो हम इसे सक्रिय करते हैं:

आवश्यक शर्तें ✔ exploit के काम करने के लिए requests और BeautifulSoup मॉड्यूल आवश्यक हैं। इन्हें इस प्रकार स्थापित करें:
pip3 install bs4
pip3 install requests
नेटवर्क स्कैन

यहाँ, हमारे पास activeQM सेवा संस्करण 5.17.3 सुन रही है।
हमारी शोषण रणनीति में हम इस प्रोजेक्ट से जुड़े spring4shell.py नामक एक विकसित पायथन स्क्रिप्ट का उपयोग करेंगे।
इस स्क्रिप्ट का उद्देश्य: यह पायथन स्क्रिप्ट Tomcat के लॉगिंग पैरामीटर को संशोधित करके लॉग फ़ाइलों में एक वेबशेल इंजेक्ट करके CVE-2022-22965 दोष का शोषण करने की अनुमति देती है, जिससे समझौता किए गए सर्वर पर दूरस्थ कमांड निष्पादन संभव होता है।
पायथन कोड की व्याख्या
टर्मिनल आउटपुट का कॉन्फ़िगरेशन:
settings वर्ग चुने गए विकल्पों के अनुसार टर्मिनल में प्रदर्शन को अनुकूलित करता है, जानकारी, चेतावनी और त्रुटि संदेशों में अंतर करने के लिए रंगों के साथ।
यादृच्छिक चरों का निर्माण:
filename() और password() फ़ंक्शन फ़ाइल नाम और वेबशेल पासवर्ड को सुरक्षित करने के लिए यादृच्छिक हेक्साडेसिमल स्ट्रिंग उत्पन्न करते हैं।
भेद्यता का शोषण:
स्क्रिप्ट Tomcat के लॉगिंग पैरामीटर को संशोधित करने के लिए अनुरोध भेजता है, लॉग के माध्यम से JSP कोड के टुकड़े इंजेक्ट करता है। लॉग को webapps/ROOT निर्देशिका में लिखने के लिए कॉन्फ़िगर करके, प्रत्येक प्रविष्टि JSP कोड के रूप में व्याख्या योग्य हो जाती है।
इंजेक्ट की गई लॉग फ़ाइल तब कमांड निष्पादित करने के लिए ब्राउज़र के माध्यम से सुलभ वेबशेल के रूप में कार्य करती है।
वेबशेल के साथ इंटरैक्शन:
terminal वर्ग एक इंटरैक्टिव इंटरफ़ेस खोलता है जो समझौता किए गए सर्वर को कमांड भेजने की अनुमति देता है। कमांड cmd पैरामीटर में भेजे जाते हैं, और प्रतिक्रियाएँ टर्मिनल में प्रदर्शित होती हैं।
स्क्रिप्ट निष्पादित करने के बाद, वेबशेल का एक लिंक प्रदान किया जाता है: कमांड के माध्यम से:
python3 spring4shell.py http://172.17.0.1

हमें अपने activemq सर्वर के शेल तक सीधी पहुँच मिलती है ताकि हम जो भी कमांड चाहें निष्पादित कर सकें।
शोषण का अंत!!!