
Testwerkzeug für den Mikrotrick-Exploit (CVE-2026-67276)
Ein automatisierter Verhaltens-Validator zur Erkennung der SSH-Public-Key-Authentifizierungs-Bypass-Schwachstelle in MikroTik RouterOS (CVE-2026-67276).
Das Skript testet, ob eine unvollständige Validierungs-Schwachstelle des SSH-Dienstes eine Authentifizierung ermöglicht, indem ein Handshake mit einer gefälschten Signatur aufgebaut wird, die nur dem Modulus des Ziel-Public-Keys entspricht.
CVE-2026-67276 resultiert aus einer unvollständigen RSA-Public-Key-Überprüfung im SSH-Daemon-Handler von RouterOS. Bei der Verarbeitung einer Public-Key-Authentifizierungsanfrage eines Clients gleichen betroffene Versionen nur den Schlüsseltyp und den RSA-Public-Modulus ($n$) ab, wobei die Validierung des Public-Exponenten ($e$) ausgelassen wird.
Ein Angreifer, der den konfigurierten autorisierten Public-Key des Zielbenutzers besitzt, kann eine Login-Payload fälschen. Durch die Übermittlung eines ephemeren Schlüssel-Blobs, bei dem der Exponent auf $1$ ($e=1$) gesetzt ist, zusammen mit dem gültigen autorisierten Modulus, kann eine mathematisch vorhersagbare Signatur übergeben werden, die exakt der Struktur entspricht, die der Verifizierer erwartet. Dies umgeht die Authentifizierung vollständig, ohne den entsprechenden privaten Schlüssel zu besitzen oder zu benötigen.
ssh-rsa-OpenSSH-Public-Key-Datei.ssh-rsa, rsa-sha2-256 oder rsa-sha2-512) an.Der Validator erfordert Python 3 und die Bibliothek paramiko für die benutzerdefinierte SSH-Nachrichtenkonstruktion.
pip install paramiko
python3 ssh_modulus_forge_check.py -H <ZIEL_IP> -u <BENUTZERNAME> -k <PFAD_ZUM_AUTORISIERTEN_PUBLIC_KEY>
| Flag | Beschreibung | Standard |
|---|---|---|
-H, --host | IP-Adresse oder Hostname des Zielhosts. | Erforderlich |
-p, --port | SSH-Portnummer des Ziels. | 22 |
-u, --user | Zielbenutzername zur Validierung. | Erforderlich |
-k, --pubkey | Pfad zur legitimen .pub-Datei, die dem Zielkonto zugeordnet ist. | Erforderlich |
--sig-alg | Signaturtyp erzwingen (ssh-rsa, rsa-sha2-256, rsa-sha2-512). | auto |
--exec | Remote-Befehl zur Ausführung als Zugriffsnachweis bei Erfolg. | None |
--timeout | Netzwerk- und Authentifizierungs-Verbindungszeitüberschreitungen in Sekunden. | 10 |
python3 ssh_modulus_forge_check.py -H 192.168.88.1 -u admin -k id_rsa.pub --exec "/system resource print"
Zum Schutz verwundbarer Geräte muss sichergestellt werden, dass RouterOS-Installationen umgehend auf die behobenen Versionen aktualisiert werden. Wenn ein Patchen nicht nativ geplant werden kann, beschränken Sie den administrativen Zugriff auf den Dienst, indem Sie lokalisierte IP-Firewall-Regeln (/ip firewall filter) durchsetzen oder die RouterOS-Diensteverwaltung (/ip service) verwenden, um zulässige Quelladressen einzuschränken.
Diese Implementierung ist ausschließlich für defensive Verhaltensüberprüfung, Berechtigungs-Audits und Patch-Compliance-Validierung auf autorisierten Netzwerken bestimmt.