Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2018-14847 — Analysis and PoC for CVE-2018-14847, MikroTik RouterOS Winbox information disclosure vulnerability allowing unauthenticated read access to the credential database. | Kitploit
Tools/GitHubGitHub/themalwareguardian/cve-2018-14847
Embedded Systems SecurityPassword CrackingIoT SecurityVulnerability AnalysisExploitationInformation Gathering
GitHubthemalwareguardian/cve-2018-14847

CVE-2018-14847

Analysis and PoC for CVE-2018-14847, MikroTik RouterOS Winbox information disclosure vulnerability allowing unauthenticated read access to the credential database.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
vor 3 MonatenNoch nicht geprüft

🐞 MikroTik CVE-2018-14847

Nicht authentifizierter Path-Traversal im Winbox-Protokoll von MikroTik, der Admin-Anmeldeinformationen aus /flash/rw/store/user.dat preisgibt




📑 Inhaltsverzeichnis

  • Übersicht
  • Betroffene Versionen
  • Schwachstelle
    📂
    • Winbox-Protokoll
    • Path-Traversal
    • Passwort-Entschlüsselung
    • Entwickler-Backdoor
  • Exploit
  • Referenzen



📋 Übersicht

CVE-2018-14847 ist eine Path-Traversal-Schwachstelle in MikroTik RouterOS, die das Winbox-Verwaltungsprotokoll (TCP-Port 8291) betrifft. Ein nicht authentifizierter entfernter Angreifer kann beliebige Dateien aus dem Dateisystem des Routers lesen, einschließlich der Benutzerdatenbank /flash/rw/store/user.dat, in der Passwörter mit einem schwachen statischen XOR-Schlüssel verschlüsselt gespeichert sind.

Die Schwachstelle wurde ursprünglich von Jacob Baines (Tenable) im Juli 2018 durch den By the Way Exploit veröffentlicht. Dieses Repository enthält eine eigenständige Python3-Neuimplementierung mit vollständiger Protokolldokumentation.




🎯 Betroffene Versionen

Tool herunterladen
KanalVersionen
Longterm6.30.1 - 6.40.7
Stable6.29 - 6.42
Beta6.29rc1 - 6.43rc3

MikroTik hat diese Schwachstelle im April 2018 behoben. Geräte, die eine ältere RouterOS-Version als die korrigierten Versionen ausführen, bleiben verwundbar.




🔬 Schwachstelle

🧠 Winbox-Protokoll

Winbox ist MikroTiks proprietäres binäres Verwaltungsprotokoll, das auf TCP-Port 8291 läuft. Frames sind wie folgt aufgebaut:

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

Der 4-Byte-Header kodiert die gesamte Framegröße. Es ist kein standardmäßiges Little-Endian-u16 – jedes Byte kodiert total_length - 2 und total_length - 4 unabhängig.

Feldkodierung innerhalb jedes Frames:

Typ-ByteBedeutungWert
0xffErweiterter Feldmarkergefolgt von field_id und Wert
0x09u8-Integer1 Byte
0x21String1-Byte-Längenpräfix + Daten
0x88Antwort-erwartet-Markerkein Wert
0xfeErweiterte Feld-ID3-Byte-ID + Typ + Wert

Der Dateisystem-Handler befindet sich am Endpunkt (sys=5, handler=0) und stellt drei relevante Befehle bereit:

  • 0x06 - Datei öffnen
  • 0x04 - Datei lesen
  • 0x01 - Datei erstellen

🧨 Path-Traversal

Der Winbox-Dateisystem-Handler bereinigt den Pfad, der an den Befehl zum Öffnen der Datei übergeben wird, nicht. Durch Einbetten von '/////./../'-Sequenzen kann ein Angreifer die Sandbox-Grenze umgehen und das Root-Dateisystem erreichen:

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

Jedes '/////./../'-Segment (10 Bytes) geht eine Verzeichnisebene nach oben. Drei Segmente erreichen das Root-Verzeichnis, woraufhin flash/rw/store/user.dat die RouterOS-Benutzerdatenbank ist. Die Anfrage erfordert keine Authentifizierung.

Der Exploit sendet zwei Frames:

  1. Öffnen-Anfrage: open-file-Befehl mit dem Traversal-Pfad
    • Antwortbyte [38] → session_id
  2. Lese-Anfrage: read-file-Befehl mit eingefügter session_id
    • Antwort ab Byte [55] → rohe user.dat-Inhalte

🔐 Passwort-Entschlüsselung

user.dat ist eine Sequenz von nv::message-Datensätzen. Jeder Datensatz wird von einem 2-Byte-LE-Längenfeld eingeleitet und beginnt mit den Magic-Bytes M2. Felder in jedem Datensatz verwenden eine 3-Byte-LE-Feld-ID:

Feld-IDTypBedeutung
0x01StringBenutzername
0x02u8Gruppe - 3 = voller Administratorzugriff
0x11Stringverschlüsseltes Passwort (leer, wenn nicht gesetzt)

Passwörter werden mit einem statischen XOR-Schlüssel verschlüsselt, der aus einem fest codierten Salt abgeleitet wird, das in RouterOS einkompiliert ist:

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

Das bedeutet, dass jede user.dat, die von einem betroffenen Gerät extrahiert wurde, offline ohne Brute-Force entschlüsselt werden kann.


🧬 Entwickler-Backdoor

Nachdem der Angreifer das Admin-Passwort erhalten hat, kann er sich über Winbox authentifizieren und mit dem create-file-Befehl zwei Dateien schreiben, die den versteckten Entwickler-Login aktivieren:

root@kitploit:~
/pckg/option                       aktiviert das Option-Paket
/flash/nova/etc/devel-login        aktiviert den devel-Benutzer

Sobald diese Dateien vorhanden sind, stellt der Router eine BusyBox-Root-Shell über Telnet und SSH unter dem Benutzer devel bereit, wobei das Admin-Passwort verwendet wird.

Telnet muss zuerst verbunden werden, damit SSH bei einigen RouterOS-Versionen funktioniert.




⚙️ Exploit

Exploit_CVE_2018_14847.py ist ein eigenständiger Python3-Exploit ohne externe Abhängigkeiten. Er implementiert das Winbox-Binärprotokoll von Grund auf und führt Folgendes aus:

  1. Nicht authentifizierte Path-Traversal zum Extrahieren von user.dat.
  2. Binäres Parsen von nv::message-Datensätzen.
  3. MD5-XOR-Passwortentschlüsselung.
root@kitploit:~
# Standard-Port 8291
python3 Exploit_CVE_2018_14847.py 192.168.1.10

# Benutzerdefinierter Port
python3 Exploit_CVE_2018_14847.py 192.168.1.10 8291

Post-Exploitation – Entwickler-Backdoor-Shell:

root@kitploit:~
# Telnet (zuerst verbinden)
telnet -l devel 192.168.1.10

# SSH (nach Telnet-Sitzung)
ssh -oHostKeyAlgorithms=+ssh-dss [email protected]



📚 Referenzen

  • MikroTik Security Advisory

    • Offizielle Patch-Mitteilung und Zeitleiste von MikroTik.
  • Tenable - By the Way PoC

    • Original-C++-Exploit von Jacob Baines.
  • NVD - CVE-2018-14847

    • CVSS 9.1 (Kritisch).