Discussione EzCast security flaw

Stato
Discussione chiusa ad ulteriori risposte.

hexan

Utente Electrum
15 Agosto 2007
79
15
34
101
Ultima modifica:
Di recente ho aperto la mia EzCast, messa da parte perché rotta, per scoprire che queste chiavette HDMI rappresentano una certa falla di sicurezza.


Non scrivo molti Thread, specie così espansivi, quindi abbiate pazienza se non è al Top dell'editoria

20210806_093629_low.jpg


Prima di tutto ho aperto il dongle, per scoprire che sono già indicati i pin Vcc, Rx, Tx e Gnd. Dopo aver saldato i cavi e collegato un TTL/USB è stato piuttosto semplice indovinare il Baud Rate ed osservare la Fase di Boot.

Alla fine si presenta un prompt di Login, con il quale è già possibile vedere quali utenti esistono nel sistema, perché se si fallisce usando root, restituisce un messaggio di errore per l'utente 'root', mentre con qualsiasi altro username, il messaggio diventa riferito ad 'UNKNOWN'.

Dopo aver tentato le combo più classiche, fallendo miseramente, ho tentato un'altra via, scaricando il Firmware originale.

Prima ho eseguito
Codice:
$ binwalk -B -t ezcast.bin

Qui il relativo Output

E successivamente ho estratto il FW
Codice:
$ binwalk -e ezcast.bin

Extracting_FW.png

Usando strings (ed avendo informazioni di base come il fatto che il sistema gira su Linux 2.6.27.29 ed abbiamo l'utente root) ho iniziato a cercare nei file di sistema appena estratti ed ho ottenuto immediatamente un riscontro.

Codice:
$ ls | grep .ext
2E65A00.ext
3365A00.ext
465800.ext
** nei primi due non c'era nulla di utile, ma nel terzo... **
$ strings 465800.ext | grep root
...
...
root:$1$qsNdVNb0$U5HuLrYhZ6vbslIiyaQlA1:14610:0:99999:7:::
...

StringsGrepRoot.png

Usando un hash analyzer, tanto per sicurezza, viene dato il risultato:

Hash: $1$qsNdVNb0$U5HuLrYhZ6vbslIiyaQlA1
Salt: Not Found
Hash type: MD5-Crypt
Bit length: 128
Character length: 34
Character type: Mostly base64
Hash: U5HuLrYhZ6vbslIiyaQlA1
Salt: qsNdVNb0

Significa che ci viene restituito l'hash originale, non shadow, quindi si può procedere con:

Codice:
$ echo "$1$qsNdVNb0$U5HuLrYhZ6vbslIiyaQlA1" > rootpass.txt
$ john --wordlist=mywordlist.txt rootpass.txt
$ john --show rootpass.txt  ->  000000

Ho poi guardato gli hash nel file shadow ed è differente. Prendendo passwd e shadow, facendo l'unshadow, si ottiene nuovamente quello di prima, ad ulteriore conferma che quello che si ottiene dal dump del firmware è quello corretto, senza shadow e senza alcun sistema di protezione.

Mi ricollego tramite UART, arrivo al login, user root, password 000000 e.... Login failed.
Ho tentato anche con hascat, servizi online, a tutti risulta '000000' eppure non funziona.

Dopo aver cercato la stringa hash online è apparso un unico risultato di successo con la password di root funzionante (e che non metterò, perché non so se sia legale pubblicarla, visto che si tratta di un FW proprietario e sono qui appunto a dire che rappresenta un problema di sicurezza), il quale non è chiaro di come sia stato ottenuto e non mi ha funzionato nemmeno con hashcat in mask mode. Fatto sta che funziona, anche perché pare essere usata anche su altri dispositivi, come anyCast...e quindi, con questa botta di fortuna, si va avanti.

LoggedInAsRoot.png

Come ho detto all'inizio, il mio Dongle è rotto, non funziona il WiFi e quando EzCast rileva un'anomalia va in un Boot Loop.

SchermataErrore_Low.jpg

A causa di questo sarebbe impossibile operare nel sistema, quindi bisogna immediatamente terminare il processo responsabile "fui.app" ed il sistema rimane stabile.

Anomalia_WiFi-Kill_FuiApp.png

A questo punto è possibile vedere i file unici contenuti nel dispositivo, i quali non sono presenti in ezcast.bin, essendo un firmware vuoto, mai utilizzato da un utente.

Ed è esattamente questa la falla di sicurezza del titolo. Sì, perché questi dongle tengono in memoria tutte le informazioni delle reti WiFi con le quali sono entrati in collegamento, mettendo a disposizione indirizzo MAC, nome delle reti e relative password, tutto in chiaro.

mnt_user1_info.png

mnt_vram_wifi_info.png



A mio avviso si tratta di un problema piuttosto grave, poiché sarebbe sufficiente acquistarne di usate, direttamente da privati che le vendono su internet ed avere accesso a diverse reti, senza sforzo e con una spesa minima.


Ma oltre ad ottenere informazioni sulle reti WiFi memorizzate, questi dispositivi sembrano essere adatti anche ad altri tipi di attività.

Non ho ancora visto molto, su questo secondo aspetto, anche perché non posso usare il mio a causa del difetto che ha, però ho notato che sono presenti file che cercano determinati indirizzi IP

Codice:
#cat /mnt/user1/dns/resolv.conf
search actions.com.cn
nameserver 192.168.140.10
nameserver 192.168.1.10

Purtroppo faccio fatica a lavorarci, tra lavoro e vita privata non ho molto tempo per questo... C'è da analizzare ancora tutta la sezione /proc ed inoltre non riesco ad accedere a determinati file, i quali sembrano non esistere nella versione stock del firmware, tra questi molti sono file dell'interfaccia web

thttpd_difference.png


Modificando gli indirizzi DNS memorizzati nel firmware sarebbe inoltre possibile dare ulteriori aggiornamenti con malware o con le pagine web modificate per il phishing.
Il dispositivo esegue sicuramente bash script e da qualche parte c'è anche gcc, anche se non me lo restituisce tra i comandi disponibili, oltre a file con estensione ".c", andando a far pensare che li compili direttamente, senza riguardo di quello che ci sia dentro.

Infine, uno screenshot di tutti i comandi disponibili

comandi.png

Mi sembra strano che non ci fosse nulla in tutto il forum e spero di aver dato un contributo utile. Se avete questo tipo di dispositivi, vi sconsiglio di venderli o tentate di fare qualche reset prima. Nel mio, all'interno, è presente un piccolo tasto, ma per quanto lo tenga premuto sembra non fare nulla e non posso accedere dall'interfaccia utente, per verificare se i metodi di reset a disposizione facciano veramente sparire i dati.
 
Continuo con un piccolo approfondimento sul modulo WiFi

20210810_125338_low.jpg20210810_125459_low.jpg

Una volta aperto il guscio di plastica, si presenta una sorta di chiavetta usb/wifi, priva di led, con chip Realtek 8188etv.

Il suo cavo di alimentazione ha solamente positivo e negativo nel connettore USB-A, mentre sono presenti anche D+ e D- nel tratto che va dalla scheda wifi alla porta micro-usb (quest'ultima è quella che si collega ad EzCast.

Avendo riscontrato l'anomalia WiFi, ho tentato di mettere tutto sul piano di lavoro e fare dei collegamenti diretti, in modo da essere sicuro di non avere a che fare con cavi spezzati o difettosi.

IMG-20210811-WA0002.jpeg

Come si può vedere, ho ricostruito lo schema di collegamento, ma inserendo una porta USB-A Femmina, in modo da poter sostituire facilmente la scheda di rete con altri dispositivi.

Purtroppo si tratta di tutto hardware gravemente danneggiato, infatti attualmente ho dovuto fermare tutto perché non posso più accedere al login, la console a volte mostra una sequenza di boot normale, altre volte kernel panic, altre ancora ulteriori messaggi di errore. Prima che questo accadesse, ho tentato di collegare altri dispositivi usb, ma nessuno di questi pare venisse riconosciuto.

La scheda wifi ha presentato solamente problemi, generalmente non veniva riconosciuto il dispositivo, ma anche quando questo accadeva, comunque non funzionava.

Ho tentato con Windows:

WiFi device connected.pngWindows 01.png


Con Kali:
Kali Error.pngDmesg_Kali.pngMonitor enabled - not working.pngKali_Airodump.pngNotWorking.png


Con Slackware:

Dmesg.pngWiFi to USB in Slackware.pngMonitor mode not available.pngNo monitor mode.png

Da qui si può vedere la risposta differente tra i due sistemi, dove Kali abilita la monitor mode, anche se non funziona, mentre con Slackware non è possibile nemmeno impostare la scheda.


Ed ovviamente dalla console stessa di EzCast:

Wifi to Dongle.png
dove nemmeno viene rilevata, rendendo impossibile qualsiasi tipo di test.


Mi dispiace non poter proseguire, perché trovo molto interessante che un tale dispositivo, concepito per un utilizzo di semplice streaming video, venga dotato di determinati dettagli. Avrei voluto tentare di utilizzare chroot, oltre a capire meglio perché siano presenti dropbear e telnet, oltre a smontare completamente la sezione thttpd. E credo assolutamente che tutto l'insieme di strumenti di rete possa rendere questi dispositivi delle specie di microspie (prodotto cinese, non sarebbe la prima volta), se non di default, con delle semplici modifiche.
Purtroppo non riesco nemmeno a fare un reset di fabbrica, quindi spero almeno che queste pagine possano tornare utili a qualcuno :)
 
  • Mi piace
Reazioni: 0xbro
Stato
Discussione chiusa ad ulteriori risposte.