Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
mikrotrick-poc — CVE-2026-67276 PoC de laboratorio para la omisión de autenticación de clave pública SSH en RouterOS | Kitploit
Herramientas/GitHubGitHub/dinosn/mikrotrick-poc
Análisis de VulnerabilidadesExplotaciónSeguridad de RedesPruebas de PenetraciónAutenticación
GitHubdinosn/mikrotrick-poc

mikrotrick-poc

CVE-2026-67276 PoC de laboratorio para la omisión de autenticación de clave pública SSH en RouterOS

Ver Repositorio
1003160hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

PoC de laboratorio MikroTrick — CVE-2026-67276 (omisión de autenticación de clave pública SSH en RouterOS)

Solo para uso en laboratorio. Ejecutar exclusivamente contra instancias de RouterOS que sean de tu propiedad. Atacar dispositivos que no te pertenecen es un delito (CFAA, art. 267 del Código Penal polaco, y equivalentes).

Contexto

CERT PL (2026-09-05) reveló seis vulnerabilidades de RouterOS, explotadas activamente en la naturaleza como la cadena "MikroTrick" (toma completa del dispositivo sin autenticación cuando SSH es accesible desde internet). Corregidas por MikroTik el 2026-09-03 en 7.25beta3 / 7.24.2 / 7.23.4 / 6.49.21.

CVETipoDefecto principal
2026-67276CWE-347 (este PoC)La comprobación de coincidencia de clave de userauth SSH verifica (tipo de clave, módulo) pero omite el exponente; la verificación de firma usa la clave proporcionada por el cliente ⇒ falsificación con e=1
2026-86060CWE-88Inyección de argumentos mediante nombre de usuario que comienza con un carácter prohibido (-2 visto en registros de ataques) ⇒ cambio de máscara de política ⇒ escalada de privilegios
2026-67279CWE-841SSH entra en el protocolo de conexión tras un rekey solicitado por el cliente sin userauth completado ⇒ ejecución no autenticada en el espacio de nombres de archivos
2026-67277CWE-306Estado previo a la autenticación de bandwidth-test + divulgación de buffer no inicializado + desbordamiento de tamaño ⇒ fuga de memoria del kernel / reinicio
2026-67278CWE-347X.509 acepta firmas RSA/PKCS#1v1.5 malformadas; ancla de confianza con e=3 ⇒ falsificación de intermediario de confianza
2026-67281CWE-824Puntero principal no inicializado obsoleto en WebFig /jsproxy + escape de ruta ⇒ lectura de archivos como root

Rangos vulnerables (los seis): [7.24, 7.24.2), [7.0.0, 7.23.4), [6.0.0, 6.49.21).

Mecanismo de CVE-2026-67276

  1. RouterOS compara el blob de clave pública SSH presentado con la clave autorizada del usuario por (tipo de clave, módulo) — el exponente no se compara.
  2. La verificación de firma usa la clave proporcionada por el cliente, es decir, el exponente del blob del atacante.
  3. Presentar {ssh-rsa, e=1, n=víctima} hace que sig^1 mod n == sig, por lo que la "firma" válida es simplemente EMSA-PKCS1-v1_5(hash, authdata) — calculable por cualquiera que conozca el módulo público de la víctima. No se necesita clave privada.
  4. Resultado: un canal de comandos SSH como el usuario objetivo.

Precondiciones (el mínimo de la propia divulgación): nombre de usuario objetivo + el módulo RSA público autorizado de ese usuario.

Información mínima necesaria para reproducir

  1. Objetivo: cualquier RouterOS en los rangos vulnerables, con SSH accesible (laboratorio: imagen CHR en QEMU con KVM; hardware real equivalente).
  2. Nombre de usuario de una cuenta con una clave RSA autorizada.
  3. El módulo RSA n de esa clave autorizada (de un .pub filtrado/capturado, registros de aprovisionamiento, o --modulus-hex). Esta es la única entrada cercana a un secreto; la clave privada nunca es necesaria.
  4. Comportamiento del servidor confirmado por la divulgación (el defecto en sí, de CERT PL): coincidencia = (tipo, n), verificación del exponente = proporcionado por el cliente.
  5. Un cliente que pueda presentar un blob de clave arbitrario y bytes de firma arbitrarios (paramiko + hook ForgeKey — OpenSSH estándar no puede).
  6. Algoritmo de firma que el servidor acepta (ssh-rsa en 6.x, rsa-sha2-256 también en 7.x).

Archivos

  • forge_67276.py — primitiva: análisis de clave pública OpenSSH, codificador EMSA RFC 8017, constructores de blob/firma falsificados, verificador de referencia RFC 8017.
  • selftest.py — prueba local, sin router: codificador idéntico byte a byte a OpenSSL (mediante inversión de firma real), la firma falsificada verifica con e=1 y NO con 65537, simulación completa de la forma de cable RFC 4252 §7. Las 15 comprobaciones PASAN.
  • poc_67276.py — cliente paramiko que realiza la omisión (fijación de algoritmo por conexión; se requiere --lab-i-own-this-target).
  • console_setup.py — preparación única de CHR a través de telnet serie de qemu (obtener clave de la víctima mediante 10.0.2.2, importar para admin, habilitar ssh).
  • sanity_real_key.py — control: la autenticación normal de clave pública debe tener éxito primero.
  • victim_rsa / victim.pub — par de claves "víctima" desechable generado de 2048 bits; excluido deliberadamente de Git.

Configuración local

python3 -m venv .venv
./.venv/bin/python -m pip install -r requirements.txt
ssh-keygen -q -t rsa -b 2048 -N '' -C victim-key -f victim_rsa

Laboratorio (aprovisionado en [email protected])

  • Kali x86_64, QEMU 11.0.1 + KVM, /root/mikrotrick-lab/, puente del host br0 (192.168.100.1/24) con taps tap0-tap3; dnsmasq en br0 con concesiones por MAC.
VMImagenIP del invitadoMACTúnel desde Mac
chr-6.49.206.x vulnerable192.168.100.1152:54:00:aa:00:11127.0.0.1:2222
chr-6.49.216.x parcheado192.168.100.1252:54:00:aa:00:12127.0.0.1:2223
chr-7.23.37.x vulnerable192.168.100.1352:54:00:aa:00:13127.0.0.1:2224
chr-7.23.47.x parcheado192.168.100.1452:54:00:aa:00:14127.0.0.1:2225
  • Estado previsto del invitado: NIC e1000, IP de invitado estática, contraseña de admin labpass123, y clave de la víctima importada para admin. Los cambios forzados de contraseña en el primer inicio de sesión se gestionaron por SSH (bootstrap_password.py lee el diálogo) o mediante sendkey del monitor QEMU (mon_type.py) — la consola serie de CHR está muerta por defecto; la consola VGA solo es legible mediante screendump del monitor.
  • Túnel desde el Mac: ssh -N -L 2222:192.168.100.11:22 -L 2223:192.168.100.12:22 -L 2224:192.168.100.13:22 -L 2225:192.168.100.14:22 [email protected]

Re-ejecución (ejemplo, VM3):

qemu-system-x86_64 -enable-kvm -m 512 -smp 2 -name chr-7.23.3 \
  -drive file=/root/mikrotrick-lab/chr-7.23.3.img,format=raw,if=virtio \
  -netdev tap,id=n2,ifname=tap2,script=no,downscript=no \
  -device e1000,netdev=n2,mac=52:54:00:aa:00:13 \
  -display none -monitor unix:/root/mikrotrick-lab/mon3.sock,server,nowait &
./.venv/bin/python import_key.py 127.0.0.1 admin labpass123 victim.pub 2224
./.venv/bin/python sanity_real_key.py 127.0.0.1 2224 victim_rsa admin   # línea base
./.venv/bin/python poc_67276.py --host 127.0.0.1 --port 2224 \
    --username admin --pubkey victim.pub --algos rsa-sha2-256,ssh-rsa \
    --exp-enc aligned --exec '/system resource print' --lab-i-own-this-target

Resultados observados (revalidación independiente del 2026-09-06)

Objetivoclave privada real (línea base)clave falsificada e=1 (PoC)
7.23.3auth OKauth OK + ejecución de /system resource print — CVE confirmado
7.23.4 (parcheado)auth OKrechazado
6.49.20auth OKrechazado (ver matiz)
6.49.21 (parcheado)línea base no válidano interpretable; el invitado aceptó autenticación SSH none

Para el par 7.x, la línea base de clave real tiene éxito en ambas versiones, la autenticación SSH none es rechazada, una falsificación con módulo incorrecto es rechazada por 7.23.3, y la falsificación con módulo correcto tiene éxito solo en 7.23.3. Esta es una comparación válida de vulnerable frente a parcheado.

Descargar herramienta