Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2018-14847 — Analisi e PoC per CVE-2018-14847, vulnerabilità di divulgazione di informazioni in MikroTik RouterOS Winbox che consente l'accesso in lettura non autenticato al database delle credenziali. | Kitploit
Strumenti/GitHubGitHub/themalwareguardian/cve-2018-14847
Sicurezza Sistemi EmbeddedPassword CrackingSicurezza IoTAnalisi delle VulnerabilitàExploitRaccolta Informazioni
GitHubthemalwareguardian/cve-2018-14847

CVE-2018-14847

Analisi e PoC per CVE-2018-14847, vulnerabilità di divulgazione di informazioni in MikroTik RouterOS Winbox che consente l'accesso in lettura non autenticato al database delle credenziali.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
3 mesi faNon ancora revisionato

🐞 MikroTik CVE-2018-14847

Path traversal non autenticato nel protocollo Winbox di MikroTik che espone le credenziali di amministratore da /flash/rw/store/user.dat




📑 Indice

  • Panoramica
  • Versioni Affette
  • Vulnerabilità
    📂
    • Protocollo Winbox
    • Path Traversal
    • Decifratura della Password
    • Backdoor dello Sviluppatore
  • Exploit
  • Riferimenti



📋 Panoramica

CVE-2018-14847 è una vulnerabilità di path traversal in MikroTik RouterOS che interessa il protocollo di gestione Winbox (porta TCP 8291). Un attaccante remoto non autenticato può leggere file arbitrari dal filesystem del router, incluso il database delle credenziali utente /flash/rw/store/user.dat, che memorizza le password cifrate con una debole chiave XOR statica.

La vulnerabilità è stata originariamente divulgata da Jacob Baines (Tenable) nel luglio 2018 tramite l'exploit By the Way. Questo repository contiene una reimplementazione standalone in Python3 con documentazione completa del protocollo.




🎯 Versioni Affette

Scarica lo strumento
ChannelVersions
Longterm6.30.1 - 6.40.7
Stable6.29 - 6.42
Beta6.29rc1 - 6.43rc3

MikroTik ha corretto questa vulnerabilità nell'aprile 2018. I dispositivi con RouterOS più vecchi delle versioni corrette rimangono vulnerabili.




🔬 Vulnerabilità

🧠 Protocollo Winbox

Winbox è il protocollo di gestione binario proprietario di MikroTik in esecuzione sulla porta TCP 8291. I frame sono strutturati come:

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

L'intestazione di 4 byte codifica la dimensione totale del frame. Non è un u16 little-endian standard - ogni byte codifica total_length - 2 e total_length - 4 indipendentemente.

Codifica dei campi all'interno di ogni frame:

Byte di tipoSignificatoValore
0xffMarcatore di campo estesoseguito da field_id e valore
0x09Intero u81 byte
0x21Stringaprefisso di lunghezza 1 byte + dati
0x88Marcatore di risposta attesanessun valore
0xfeID campo estesoID 3 byte + tipo + valore

Il gestore del filesystem risiede all'endpoint (sys=5, handler=0) ed espone tre comandi rilevanti:

  • 0x06 - apri file
  • 0x04 - leggi file
  • 0x01 - crea file

🧨 Path Traversal

Il gestore del filesystem di Winbox non sanifica il percorso passato al comando apri file. Incorporando sequenze '/////./../', un attaccante esce dal confine della sandbox e raggiunge il filesystem di root:

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

Ogni segmento '/////./../' (10 byte) sale di un livello di directory. Tre segmenti raggiungono la root, dopodiché flash/rw/store/user.dat è il database delle credenziali utente di RouterOS. La richiesta non richiede autenticazione.

L'exploit invia due frame:

  1. Richiesta di apertura: comando apri file con il percorso traversal
    • Byte [38] della risposta → session_id
  2. Richiesta di lettura: comando leggi file con session_id inserito
    • Byte [55] in poi della risposta → contenuto raw di user.dat

🔐 Decifratura della Password

user.dat è una sequenza di record nv::message. Ogni record è preceduto da un campo di lunghezza LE di 2 byte e inizia con i byte magici M2. I campi all'interno di ogni record utilizzano un ID campo LE di 3 byte:

ID campoTipoSignificato
0x01stringanome utente
0x02u8gruppo - 3 = accesso amministratore completo
0x11stringapassword cifrata (vuota se non impostata)

Le password sono cifrate con una chiave XOR statica derivata da un sale hardcoded compilato in RouterOS:

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

Ciò significa che qualsiasi user.dat estratto da qualsiasi dispositivo affetto può essere decifrato offline senza forza bruta.


🧬 Backdoor dello Sviluppatore

Dopo aver ottenuto la password di amministratore, l'attaccante può autenticarsi tramite Winbox e utilizzare il comando crea file per scrivere due file che attivano il login nascosto dello sviluppatore:

root@kitploit:~
/pckg/option                       attiva il pacchetto option
/flash/nova/etc/devel-login        abilita l'utente devel

Una volta che questi file esistono, il router espone una shell root di BusyBox tramite Telnet e SSH sotto l'utente devel, utilizzando la password dell'amministratore.

Telnet deve essere connesso prima affinché SSH funzioni su alcune versioni di RouterOS.




⚙️ Exploit

Exploit_CVE_2018_14847.py è un exploit Python3 autonomo con zero dipendenze esterne. Implementa il protocollo binario Winbox da zero ed esegue:

  1. Path traversal non autenticato per estrarre user.dat.
  2. Parsing binario dei record nv::message.
  3. Decifratura della password tramite MD5-XOR.
root@kitploit:~
# Porta predefinita 8291
python3 Exploit_CVE_2018_14847.py 192.168.1.10

# Porta personalizzata
python3 Exploit_CVE_2018_14847.py 192.168.1.10 8291

Post-exploitation - shell backdoor sviluppatore:

root@kitploit:~
# Telnet (connettere prima)
telnet -l devel 192.168.1.10

# SSH (dopo sessione Telnet)
ssh -oHostKeyAlgorithms=+ssh-dss [email protected]



📚 Riferimenti

  • Avviso di sicurezza MikroTik

    • Avviso di patch ufficiale e cronologia da MikroTik.
  • Tenable - By the Way PoC

    • Exploit C++ originale di Jacob Baines.
  • NVD - CVE-2018-14847

    • CVSS 9.1 (Critico)