Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
MIPS-CVE-2014-9222 — Lass uns Spaß haben, indem wir in die Firmware eines Zyxel-Routers und die MIPS-Architektur eintauchen. | Kitploit
Tools/GitHubGitHub/donfanning/mips-cve-2014-9222
Embedded-System-SicherheitSchwachstellenanalyseExploitationReverse EngineeringHardware-HackingBinäranalyseLernen & BildungFirmware-Analyse
GitHubdonfanning/mips-cve-2014-9222

MIPS-CVE-2014-9222

Lass uns Spaß haben, indem wir in die Firmware eines Zyxel-Routers und die MIPS-Architektur eintauchen.

Repository anzeigen
221vor 7 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Haftungsausschluss

Tutorials dienen ausschließlich Informations- und Bildungszwecken. Ich bin der Meinung, dass ethisches Hacken, Informationssicherheit und Cybersicherheit vertraute Themen für jeden sein sollten, der digitale Informationen und Computer nutzt. Ich bin der Meinung, dass es unmöglich ist, sich vor Hackern zu schützen, ohne zu wissen, wie Hacker vorgehen.

Anforderungen

$ IDA Pro +7.0 (Sie können Radar2 verwenden, da IDA recht teuer ist)
$ Router mit Rompager 4.07 : Es gibt eine immense Anzahl davon, z. B. TP-Link TD-W8951*, ZyXEL P-660R, Billion BiPAC 51**/52**
$ UART auf USB

Die Misfortune-Cookie-Sicherheitslücke existiert schon eine Weile, aber es fehlt immer noch eine öffentlich zugängliche Analyse, die die technischen Details der Schwachstelle darstellt. Laut Check Point ist die betroffene Software der eingebettete Webserver RomPager von AllegroSoft. Internetweite Scans deuten darauf hin, dass RomPager gemessen an der Anzahl der verfügbaren Endpunkte wahrscheinlich die am weitesten verbreitete Webserver-Software der Welt ist. RomPager ist typischerweise in der Firmware eingebettet, die mit dem Gerät ausgeliefert wird. Diese spezifische Schwachstelle wurde im Jahr 2002 in den Code eingeführt. Darüber hinaus sind die Geräte betroffen, die RomPager-Dienste mit Versionen vor 4.34 (und insbesondere 4.07) verwenden.

Für dieses Tutorial verwende ich einen ZXHN H108L, der Rompager 4.07 verwendet.

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="ZXHN H108L"
Content-Type: text/html
Transfer-Encoding: chunked
Server: RomPager/4.07 UPnP/1.0
EXT:

Jetzt nutzen wir die serielle Schnittstelle. Zuerst müssen wir die Baudrate ermitteln.

$ sudo stty -F /dev/ttyUSB0

AUSGABE:

speed 115200 baud; line = 0;
-brkint -imaxbel

Gerät

Ich verwende minicom, du kannst alles von screen bis HyperTerminal verwenden, aber ich bevorzuge dieses wegen seiner Stabilität ;)

Du musst zuerst die Hardware-Flusskontrolle deaktivieren

$ sudo minicom -s
    +-----------------------------------------------------------------------+
    | A -    Serielles Gerät       : /dev/modem                             |
    | B - Lockfile-Speicherort     : /var/lock                              |
    | C -   Anrufprogramm          :                                        |
    | D -  Anrufausgabeprogramm    :                                        |
    | E -    Bps/Par/Bits          : 115200 8N1                             |
    | F - Hardware-Flusskontrolle  : Nein                                   |
    | G - Software-Flusskontrolle  : Nein                                   |
    |                                                                       |
    |    Welche Einstellung ändern?                                         |
    +-----------------------------------------------------------------------+
            | Bildschirm und Tastatur      |
            | Setup als dfl speichern      |
            | Setup als... speichern       |
            | Beenden                      |
            | Minicom beenden              |
            +------------------------------+

Jetzt kann es losgehen:

$ sudo minicom -D /dev/ttyUSB0 -b 115200
Bootbase Version: VTC_SPI1.26 |  2012/12/26 16:00:00    
RAM: Größe = 8192 Kbytes
SPI Flash 2MiB GD25Q16 bei 0xbfc00000 gefunden
SPI Flash Quad Enable
Quad-Modus ausschalten

RAS Version: ZXHN H108LV4.0.0a_ZRQ_MA                                          
System   ID: $2.12.162.0(G94.BY.2)3.20.19.0| 2014/03/21   20140321_v006  | 2014 

Drücke innerhalb von 3 Sekunden eine beliebige Taste, um den Debug-Modus zu aktivieren.
..........

Um mögliche Befehle anzuzeigen:

$ ATHE

======= Debug-Befehlsliste =======
AT          einfach OK antworten
ATHE          Hilfe anzeigen
ATBAx         Baudrate ändern. 1:38.4k, 2:19.2k, 3:9.6k 4:57.6k 5:115.2k
ATENx,(y)     BootExtension Debug-Flag setzen (y=Passwort)
ATSE          den Seed des Passwortgenerators anzeigen
ATTI(h,m,s)   Systemzeit auf Stunde:Minute:Sekunde ändern oder aktuelle Zeit anzeigen
ATDA(y,m,d)   Systemdatum auf Jahr/Monat/Tag ändern oder aktuelles Datum anzeigen
ATDS          RAS-Stack ausgeben
ATDT          Boot Module Common Area ausgeben
ATDUx,y       Speicherinhalt ab Adresse x mit Länge y ausgeben
ATRBx         8-Bit-Wert von Adresse x anzeigen
ATRWx         16-Bit-Wert von Adresse x anzeigen
ATRLx         32-Bit-Wert von Adresse x anzeigen
ATGO(x)       Programm bei Adresse x ausführen oder Router booten
ATGR          Router booten
ATGT          Hardware-Testprogramm ausführen
ATRTw,x,y(,z) RAM-Teststufe w, von Adresse x bis y (z Iterationen)
ATSH          Herstellerbezogene Daten im ROM ausgeben
ATDOx,y       Download von Adresse x mit Länge y zum PC via XMODEM
ATTD          Routerkonfiguration zum PC via XMODEM herunterladen
ATUR          Router-Firmware in Flash-ROM hochladen

< Drücke eine beliebige Taste zum Fortfahren >

Diese Firmware verfügt über eine Reihe versteckter Befehle, die für unsere dynamische Analyse sehr nützlich sind. Das Problem ist, dass wir die Register nicht sehen und keine Breakpoints setzen können, aber hoffentlich werden wir diese Funktionen mit diesen versteckten Befehlen haben. Um sie zu sehen und zu nutzen, müssen wir ATEN verwenden. Dieser Befehl erfordert jedoch ein Passwort. Was können wir also jetzt tun? Lassen Sie uns die Firmware reverse engineeren, um den Algorithmus des Passwortgenerators zu finden.

(Statische Analyse) Schauen wir uns zuerst die Firmware-Datei an:

$ binwalk ras

binwalk1

$ dd if=ras of=rom1.lzma bs=1 skip=85043 count=66696
$ dd if=ras of=rom2.lzma bs=1 skip=350259 count=3350556
$ lzma -d <rom1.lzma> rom1
$ lzma -d <rom2.lzma> rom2

Schauen wir uns nun die Signatur in den extrahierten Dateien an:

$ binwalk -Y rom1
DECIMAL       HEXADECIMAL     BESCHREIBUNG
--------------------------------------------------------------------------------
0             0x0             MIPS ausführbarer Code, 32/64-Bit, Big Endian, mindestens 1250 gültige Anweisungen

string ist ein großartiges Werkzeug, um eine Vorstellung davon zu bekommen, was eine Binärdatei ist oder was sie enthält. Mal sehen, ob wir den Passwortalgorithmus finden können:

$ strings rom1 | grep -i aten
$ strings rom2 | grep -i aten

Anscheinend können wir ihn nicht sehen, da die Firmware noch komprimiert ist. Das bedeutet, dass wir sie mit dem Debug-Modus aus dem Router auslesen müssen:

$ ATDO bfc00000, 1f0000

xmodem

Das erste, was mir in den Sinn kommt, ist, nach einer Dispatch-Tabelle zu suchen. Warum? Nur Intuition, die einzige Alternative ist if-elif, aber das wäre eine lange Liste davon, um die Gültigkeit des vom Benutzer bereitgestellten Passworts zu überprüfen. Und hier ist, was ich gefunden habe:

ROM:800158A0 CmdTable:       .word unk_80015C20       # DATA XREF: sub_8000E3D8+4Co
ROM:800158A0                                          # sub_8000E3D8+90o ...
ROM:800158A4                 .word sub_8000E6D0
ROM:800158A8                 .byte    0
ROM:800158A9                 .byte    0
ROM:800158AA                 .byte    0
ROM:800158AB                 .byte    0
ROM:800158AC                 .word aJustAnswerOk      # "          just answer OK"
ROM:800158B0                 .word aAthe              # "ATHE"
ROM:800158B4                 .word CMD_SHOW_HELP_ATHE
ROM:800158B8                 .byte    0
ROM:800158B9                 .byte    0
ROM:800158BA                 .byte    0
ROM:800158BB                 .byte    0
ROM:800158BC                 .word aPrintHelp         # "          print help"
ROM:800158C0                 .word aAtba              # "ATBA"
ROM:800158C4                 .word CMD_ATBA
...
ROM:800158D0                 .word aAten              # "ATEN"
ROM:800158D4                 .word CMD_ATEN
Tool herunterladen