Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2020-12124 — Exploit proof-of-concept per CVE-2020-12124 che mira al router Wavlink AC1200, dimostrando iniezione di comandi non autenticata e buffer overflow dello stack nelle interfacce CGI. | Kitploit
Strumenti/GitHubGitHub/scorpion-security-labs/cve-2020-12124
Sicurezza Sistemi EmbeddedSicurezza IoTAnalisi delle VulnerabilitàExploitReverse EngineeringSfruttamento di Applicazioni WebCommand and ControlAnalisi di Binari

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Paper e Ricerca
Apprendimento e Formazione
Analisi del Firmware
GitHubscorpion-security-labs/cve-2020-12124

CVE-2020-12124

Exploit proof-of-concept per CVE-2020-12124 che mira al router Wavlink AC1200, dimostrando iniezione di comandi non autenticata e buffer overflow dello stack nelle interfacce CGI.

Vedi Repository
247 mesi faNon ancora revisionato

Anatomia di un Exploit IoT, dal Hands-On all'RCE

originariamente su https://www.klogixsecurity.com/scorpion-labs-blog/anatomy-of-an-iot-exploit-from-hands-on-to-rce

di David E. Baker, pubblicato il 1 giugno 2023

Premessa

Questo studio riguarda il firmware del router Wavlink Wireless-AC1200 Gigabit a partire da giugno 2020. Le vulnerabilità discusse qui potrebbero essere state corrette o meno dal fornitore, ma si tratta di un caso di ricerca di vulnerabilità in cui il viaggio è la ricompensa, non la conclusione. L'autore ha condotto questa ricerca prima della divulgazione pubblica delle vulnerabilità, ma dopo che erano state scoperte indipendentemente da altri ricercatori e segnalate al fornitore.

Il fornitore rende disponibile il firmware per i propri prodotti nella sezione di supporto del proprio sito web; questo è un modo comune per ottenere il firmware IoT e un'alternativa utile rispetto all'estrazione dalla memoria del dispositivo. Il firmware non è crittografato, quindi può essere facilmente estratto con binwalk. L'analisi dinamica è stata effettuata con accesso a un esemplare fisico del dispositivo, e l'analisi statica è stata effettuata tramite Ghidra.

tl;dr

L'interfaccia web del router Wavlink Wireless-AC1200 Gigabit ha diversi endpoint vulnerabili che consentono la copia illimitata di dati forniti dall'utente nello stack dell'applicazione o addirittura direttamente nella riga di comando per ottenere l'esecuzione arbitraria di comandi.

Hands-On e Locale

Le scansioni iniziali del dispositivo suggeriscono che l'unica risorsa esposta fosse la console di amministrazione web, accessibile agli utenti autenticati sull'interfaccia LAN via HTTP sulla porta TCP 80. Il dispositivo può offrire più servizi, ma non sono abilitati out-of-the-box e per impostazione predefinita. Di conseguenza, questa indagine si concentra esclusivamente sull'interfaccia web.


Una scansione nmap del dispositivo esemplare, che mostra solo l'interfaccia web in ascolto.

I test usuali — come le tipiche iniezioni di comandi che si trovano nei pannelli di diagnostica del dispositivo che consentono un'iniezione di comandi nei parametri di un ping o del comando traceroute — non hanno prodotto risultati immediatamente interessanti, il che è stato deludente.


Opzioni di gestione disponibili dopo l'autenticazione al pannello di amministrazione web. “USB Storage” è visibile come seconda opzione.

La prima interfaccia (alla fine sfruttabile) esaminata è stata trovata nel pannello “USB Storage”, visibile come seconda opzione nello screenshot sopra. Il dispositivo ha una porta USB adiacente ai connettori Ethernet 802.2, suggerendo che potrebbe offrire funzionalità di archiviazione collegata in rete (NAS).


Una foto del retro dell'esemplare reale, che mostra la disponibilità della USB.

Un principio semplice nella ricerca di vulnerabilità è che più componenti interagiscono con un pezzo di codice e più parti mobili ha, più è probabile che ci sia codice sfruttabile nelle vicinanze. La presenza di funzionalità NAS è promettente perché indica la presenza di codice che interagisce contemporaneamente con il livello software del dispositivo, il livello hardware e la periferia collegata (l'archiviazione USB stessa).

L'interfaccia di gestione per la console di archiviazione USB è mostrata di seguito. La sola presenza del campo “Workgroup” è promettente, poiché suggerirebbe che questo router WiFi possa persino tentare di interagire tramite Server Message Block (SMB) — un grande sforzo per un router IoT. Non riesco a contare quante volte ho visto input fornito dall'utente inviato direttamente alla riga di comando come argomento alla funzione Unix smbpasswd.


Opzioni di archiviazione USB disponibili per gli utenti autenticati.

I tentativi iniziali di manipolare queste impostazioni sono falliti a causa del mancato rilevamento di un'unità USB da parte del dispositivo, come mostrato di seguito.


Le modifiche di configurazione alle opzioni di archiviazione USB non verranno salvate a meno che un'unità formattata correttamente non venga collegata manualmente alla porta USB del dispositivo.

Tuttavia, una volta collegata un'unità formattata correttamente, il dispositivo ha permesso di impostare un nome utente e una password FTP. Come sospettato, ha inserito questo input fornito dall'utente nella riga di comando:


Un'iniezione di comandi nel campo 'password' fornisce il primo accesso shell direttamente al sistema operativo del dispositivo.

Sebbene interessante, questa vulnerabilità è difficile da suscitare grande entusiasmo: richiede non solo l'accesso con credenziali all'interfaccia di amministrazione del dispositivo, ma anche l'accesso fisico al dispositivo per manipolare la sua unità USB. L'exploit sopra menzionato consente a un ricercatore di interagire con i singoli componenti del sistema operativo (e di esfiltrarli a fini di reverse engineering).

Possiamo Fare di Meglio

Il dispositivo era un sistema Linux incentrato su busy box con un'interfaccia web alimentata da Lighttpd. La funzionalità Common Gateway Interface (CGI) era fornita da singoli binari in /etc\_ro/lighttpd/www/cgi-bin/, con richieste web agli URI CGI che avviavano direttamente questi binari. Uno sguardo rapido a nas.cgi in Ghidra mostra l'iniezione di comandi alla riga 38 qui sotto, che invia una password fornita dall'utente direttamente alla funzione do\_system (essa stessa semplicemente un wrapper attorno alla chiamata di sistema standard libc).


L'input utente viene inserito nella riga di comando come argomento dello script chpasswd.sh alla riga 38, risultando in un'iniezione di comandi e nell'accesso shell direttamente al sistema operativo del dispositivo.

Esaminando la directory /cgi-bin/ si riduce il compito di trovare un exploit più interessante all'enumerazione delle interfacce CGI disponibili per l'utente, mostrate di seguito:


Un elenco esaustivo dei binari CGI messi a disposizione sul dispositivo, preso live dalla shell stabilita dall'exploit descritto in questa sezione. L'input utente viene inserito nella riga di comando come argomento dello script chpasswd.sh alla riga 38, risultando in un'iniezione di comandi e nell'accesso shell direttamente al sistema operativo del dispositivo.

Scarica lo strumento