
Pre-Authentifizierungs-Remote-Code-Ausführungs-Exploit für den TP-Link Omada ER605 Router über den DDNS-Client-Daemon (cmxddnsd)
Proof-of-Concept (PoC) Exploit-Kette, die auf den TP-Link Omada ER605 DDNS-Client-Daemon (cmxddnsd) abzielt, wenn das Gerät für den Comexe-DDNS-Dienst konfiguriert ist.
⚠️ Rechtliches / Ethik: Dieses Repository dient ausschließlich autorisierter Sicherheitsforschung und kontrollierter Labor-Reproduktion. Verwenden Sie es nicht gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben.
Dieser PoC demonstriert eine Verkettungsstrategie, die Folgendes kombiniert:
Die Kette entspricht den folgenden veröffentlichten Schwachstellen:
| CVE | ZDI Advisory | Typ (wie von ZDI/NVD beschrieben) | Hochrangige Rolle in einer Kette |
|---|---|---|---|
| CVE-2024-5244 | ZDI-24-503 | Vertrauen auf Sicherheit durch Obskurität (DDNS-Nachrichten können abgefangen/gespooft werden) | Ermöglicht das Erstellen/Spoofen gültig erscheinender DDNS-Nachrichten |
| CVE-2024-5243 | ZDI-24-502 | Pufferüberlauf bei der Verarbeitung von DNS-Namen | Wird verwendet, um den DNS-Namen-bezogenen Zustand zu beeinflussen/zu vergiften und einen ASLR-Bypass-Leckpfad zu ermöglichen |
| CVE-2024-5242 | ZDI-24-501 | Stack-basierter Pufferüberlauf bei der Verarbeitung von DDNS-Fehlercodes | Wird als Steuerflussentführungs-Primitive für ROP-basiertes RCE verwendet |
Hinweis: Diese README richtet die CVE ↔ Problembeschreibung an der Formulierung von ZDI/NVD aus. Die genaue Exploit-Choreographie kann je nach Firmware-Build und lokalen Reproduktionsdetails variieren; siehe
exploit.pyund Analysenotizen in diesem Repository.
< ER605(UN)_V2_2.2.42.2.2ER605(UN)_V2_2.2.4 Build 20240119 (und später)ZDI beschreibt die Auswirkung als netzwerknah, wenn Comexe DDNS aktiviert/konfiguriert ist. In der Praxis erfordert eine Reproduktion typischerweise die Fähigkeit, den DDNS/DNS-Datenverkehr des Routers ausreichend zu beobachten und zu beeinflussen, um:
Dieses Repository vermeidet bewusst schrittweise Betriebsanleitungen zur Erreichung dieser Positionierung außerhalb eines kontrollierten Labors.
┌─────────────────┐ ┌─────────────────────────┐
│ TP-Link ER605 │ │ Angreifer │
│ (cmxddnsd) │ │ (autorisiertes Labor) │
└───────┬─────────┘ └───────────┬─────────────┘
│ │
│ (1) Spoofing/Imitation von DDNS-Nachr. │ CVE-2024-5244
│<-----------------------------------------│
│ │
│ (2) Überlauf beim Parsen beeinflusst │ CVE-2024-5243
│ DNS-Namen-Zustand; späterer Leck in │
│ DNS-Abfrage-Sendepfad (z.B. │
│ sndDnsQuery) um ASLR zu umgehen │
│<-----------------------------------------│
│ │
│ (3) Fehlercode-Überlauf für Steuerfluss- │ CVE-2024-5242
│ Entführung → ROP → system(command) │
│<-----------------------------------------│
Wichtige Trennung:
_chkPkt-nahe Parsing-Logik für Fehlercodes/DNS-Namen).exploit.py — PoC-Implementierung für die Labor-Reproduktion (erfordert das Ausfüllen buildspezifischer Konstanten/Offsets).README.md — Dieses Dokument.Dieser PoC erfordert buildspezifische Werte (z.B. Offsets, Gadget-Adressen, Leck-Interpretation), die von der Ziel-Firmware und libc abhängen. Diese Werte sind absichtlich als Platzhalter belassen und müssen durch Analyse des getesteten Builds abgeleitet werden.
Beispiel-Platzhalter (siehe exploit.py):
system()-OffsetEin wiederkehrendes Anti-Pattern in der Parsing-Logik ist das Kopieren von angreifergesteuerten Felddaten unter Verwendung einer aus einem Trennzeichen abgeleiteten Länge, ohne diese ordnungsgemäß auf die Größe des Zielpuffers zu begrenzen (konzeptionell):
char *end = strchr(ptr, '\x01'); // Trennzeichen
int len = end - ptr; // vom Angreifer beeinflusste Länge
memcpy_or_strncpy(dest, ptr, len); // fehlende Größenprüfung -> Überlauf
Der PoC verwendet eine MIPS-Delay-Slot-freundliche Gadget-Form:
move $t9, $s0
jalr $t9
move $a0, $s1 ; delay slot
Durch die Steuerung von $s0 und $s1 mittels Überschreiben gespeicherter Register wird eine kompakte system(command)-Aufrufsequenz ermöglicht.
Der praktische Payload-Aufbau wird eingeschränkt durch:
\x01), undSiehe exploit.py für die genauen Einschränkungen, die in dieser Reproduktion verwendet werden.
Dieser Code und diese Dokumentation werden nur zu Bildungszwecken und für autorisierte Sicherheitsforschung bereitgestellt. Jegliche Nutzung ohne ausdrückliche Erlaubnis ist untersagt und kann illegal sein.