
Outil de test pour l'exploit Mikrotrick (CVE-2026-67276)
Un validateur comportemental automatisé conçu pour détecter la vulnérabilité de contournement de l'authentification par clé publique SSH dans MikroTik RouterOS (CVE-2026-67276).
Le script teste si un défaut de validation incomplète du service SSH permet l'authentification en établissant une poignée de main utilisant une signature forgée correspondant uniquement au modulus de la clé publique ciblée.
CVE-2026-67276 provient d'une vérification incomplète de la clé publique RSA dans le gestionnaire du démon SSH de RouterOS. Lors du traitement d'une demande d'authentification par clé publique d'un client, les versions concernées ne comparent que le type de clé et le modulus public RSA ($n$), en omettant la validation de l'exposant public ($e$).
Un opérateur qui possède la clé publique autorisée configurée pour le compte cible peut forger une charge utile de connexion. En soumettant un bloc de clé éphémère où l'exposant est défini sur $1$ ($e=1$) accompagné du modulus autorisé valide, une signature mathématiquement prévisible correspondant à la structure exacte attendue par le vérificateur peut être transmise. Cela contourne complètement l'authentification sans posséder ni nécessiter la clé privée correspondante.
ssh-rsa.ssh-rsa, rsa-sha2-256 ou rsa-sha2-512).Le validateur nécessite Python 3 et la bibliothèque paramiko pour la construction de messages SSH personnalisés.
pip install paramiko
python3 ssh_modulus_forge_check.py -H <IP_CIBLE> -u <NOM_UTILISATEUR> -k <CHEMIN_VERS_CLÉ_PUBLIQUE_AUTORISÉE>
| Option | Description | Défaut |
|---|---|---|
-H, --host | Adresse IP ou nom d'hôte de la cible. | Obligatoire |
-p, --port | Numéro de port SSH de la cible. | 22 |
-u, --user | Nom d'utilisateur cible à valider. | Obligatoire |
-k, --pubkey | Chemin vers le fichier .pub légitime lié au compte cible. | Obligatoire |
--sig-alg | Forcer le type de signature (ssh-rsa, rsa-sha2-256, rsa-sha2-512). | auto |
--exec | Commande distante à exécuter comme preuve d'accès en cas de succès. | None |
--timeout | Délais d'expiration réseau et d'authentification en secondes. | 10 |
python3 ssh_modulus_forge_check.py -H 192.168.88.1 -u admin -k id_rsa.pub --exec "/system resource print"
Pour protéger les appareils vulnérables, assurez-vous que les installations RouterOS sont mises à jour vers les versions corrigées immédiatement. Si le correctif ne peut pas être planifié nativement, restreignez l'accès administratif au service en appliquant des règles de pare-feu IP localisées (/ip firewall filter) ou en utilisant la gestion des services RouterOS (/ip service) pour limiter les adresses sources autorisées.
Cette implémentation est destinée uniquement à la vérification comportementale défensive, à l'audit des identifiants et à la validation de conformité des correctifs sur des réseaux autorisés.