Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2018-14847 — Análisis y PoC para CVE-2018-14847, vulnerabilidad de divulgación de información en Winbox de MikroTik RouterOS que permite acceso de lectura no autenticado a la base de datos de credenciales. | Kitploit
Herramientas/GitHubGitHub/themalwareguardian/cve-2018-14847
Seguridad de Sistemas EmbebidosDescifrado de ContraseñasSeguridad IoTAnálisis de VulnerabilidadesExplotaciónRecopilación de Información
GitHubthemalwareguardian/cve-2018-14847

CVE-2018-14847

Análisis y PoC para CVE-2018-14847, vulnerabilidad de divulgación de información en Winbox de MikroTik RouterOS que permite acceso de lectura no autenticado a la base de datos de credenciales.

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
Ver Repositorio
hace 3 mesesAún no revisado

🐞 MikroTik CVE-2018-14847

Recorrido de ruta no autenticado en el protocolo Winbox de MikroTik que filtra credenciales de administrador de /flash/rw/store/user.dat




📑 Tabla de Contenidos

  • Resumen
  • Versiones Afectadas
  • Vulnerabilidad
    📂
    • Protocolo Winbox
    • Recorrido de Ruta
    • Descifrado de Contraseñas
    • Puerta Trasera de Desarrollador
  • Exploit
  • Referencias



📋 Resumen

CVE-2018-14847 es una vulnerabilidad de recorrido de ruta en MikroTik RouterOS que afecta al protocolo de gestión Winbox (puerto TCP 8291). Un atacante remoto no autenticado puede leer archivos arbitrarios del sistema de archivos del router, incluyendo la base de datos de credenciales de usuario /flash/rw/store/user.dat, que almacena contraseñas cifradas con una clave XOR estática débil.

La vulnerabilidad fue revelada originalmente por Jacob Baines (Tenable) en julio de 2018 a través del exploit By the Way. Este repositorio contiene una reimplementación independiente en Python3 con documentación completa del protocolo.




🎯 Versiones Afectadas

Descargar herramienta
CanalVersiones
Largo plazo6.30.1 - 6.40.7
Estable6.29 - 6.42
Beta6.29rc1 - 6.43rc3

MikroTik parcheó esta vulnerabilidad en abril de 2018. Los dispositivos que ejecutan RouterOS anteriores a las versiones corregidas siguen siendo vulnerables.




🔬 Vulnerabilidad

🧠 Protocolo Winbox

Winbox es el protocolo de gestión binario propietario de MikroTik que se ejecuta en el puerto TCP 8291. Las tramas se estructuran como:

root@kitploit:~
[total_len - 2][0x01][0x00][total_len - 4]["M2"][fields...]

El encabezado de 4 bytes codifica el tamaño total de la trama. No es un u16 estándar little-endian: cada byte codifica total_length - 2 y total_length - 4 de forma independiente.

Codificación de campos dentro de cada trama:

Byte de tipoSignificadoValor
0xffMarcador de campo extendidoseguido de field_id y valor
0x09Entero u81 byte
0x21CadenaPrefijo de longitud de 1 byte + datos
0x88Marcador de respuesta esperadasin valor
0xfeID de campo extendidoID de 3 bytes + tipo + valor

El manejador del sistema de archivos reside en el endpoint (sys=5, handler=0) y expone tres comandos relevantes:

  • 0x06 - abrir archivo
  • 0x04 - leer archivo
  • 0x01 - crear archivo

🧨 Recorrido de Ruta

El manejador del sistema de archivos de Winbox no desinfecta la ruta pasada al comando de abrir archivo. Al incrustar secuencias '/////./../', un atacante escapa del límite del sandbox y alcanza el sistema de archivos raíz:

root@kitploit:~
/////./..//////./..//////./../flash/rw/store/user.dat

Cada segmento '/////./../' (10 bytes) sube un nivel de directorio. Tres segmentos alcanzan la raíz, después de lo cual flash/rw/store/user.dat es la base de datos de credenciales de usuario de RouterOS. La solicitud no requiere autenticación.

El exploit envía dos tramas:

  1. Solicitud de apertura: comando de abrir archivo con la ruta de recorrido
    • Byte de respuesta [38] → session_id
  2. Solicitud de lectura: comando de leer archivo con session_id insertado
    • Respuesta desde el byte [55] en adelante → contenido bruto de user.dat

🔐 Descifrado de Contraseñas

user.dat es una secuencia de registros nv::message. Cada registro está precedido por un campo de longitud LE de 2 bytes y comienza con los bytes mágicos M2. Los campos dentro de cada registro usan un ID de campo LE de 3 bytes:

ID de campoTipoSignificado
0x01cadenanombre de usuario
0x02u8grupo - 3 = acceso completo de administrador
0x11cadenacontraseña cifrada (vacía si no se establece)

Las contraseñas se cifran con una clave XOR estática derivada de un salt hardcodeado compilado en RouterOS:

root@kitploit:~
key      = MD5(username + "283i4jfkai3389")
password = XOR(encrypted_pass[i], key[i % len(key)])  hasta el byte nulo

Esto significa que cualquier user.dat extraído de cualquier dispositivo afectado puede descifrarse sin conexión sin fuerza bruta.


🧬 Puerta Trasera de Desarrollador

Después de obtener la contraseña de administrador, el atacante puede autenticarse a través de Winbox y usar el comando de crear archivo para escribir dos archivos que activan el inicio de sesión de desarrollador oculto:

root@kitploit:~
/pckg/option                       activa el paquete option
/flash/nova/etc/devel-login        habilita el usuario devel

Una vez que estos archivos existen, el router expone un shell root BusyBox a través de Telnet y SSH bajo el usuario devel, usando la contraseña del administrador.

Telnet debe conectarse primero para que SSH funcione en algunas versiones de RouterOS.




⚙️ Exploit

Exploit_CVE_2018_14847.py es un exploit Python3 autónomo con cero dependencias externas. Implementa el protocolo binario Winbox desde cero y realiza:

  1. Recorrido de ruta no autenticado para extraer user.dat.
  2. Análisis binario de registros nv::message.
  3. Descifrado de contraseñas MD5-XOR.
root@kitploit:~
# Default port 8291
python3 Exploit_CVE_2018_14847.py 192.168.1.10

# Custom port
python3 Exploit_CVE_2018_14847.py 192.168.1.10 8291

Post-explotación - shell de puerta trasera de desarrollador:

root@kitploit:~
# Telnet (must connect first)
telnet -l devel 192.168.1.10

# SSH (after Telnet session)
ssh -oHostKeyAlgorithms=+ssh-dss [email protected]



📚 Referencias

  • Aviso de seguridad de MikroTik

    • Aviso de parche oficial y cronología de MikroTik.
  • Tenable - By the Way PoC

    • Exploit C++ original por Jacob Baines.
  • NVD - CVE-2018-14847

    • CVSS 9.1 (Crítico).