Domanda Reversing [+] Estrarre file system firmware TP-link TD-W8960N

Stato
Discussione chiusa ad ulteriori risposte.

Sputkin

Utente Silver
22 Febbraio 2015
125
11
40
79
Ultima modifica:
####################################################################################
*/

Lo scopo iniziale di questo lavoro era quello di riuscire ad estrarre la directory contenente i codici sorgente del webserver di un mio router .

Nota: Con questo thread non voglio in alcun modo promuovere qualsiasi azioni illegale , ma cercare di discutere su un argomento assai interessante , il Reverse Engineering . Ciò che spiegherò di seguito è una breve panoramica su come estrarre il file system dal firmware , l'argomento trattato presuppone una conoscenza quantomeno basilare di un file system e di alcuni tipi di algoritmi di compressione dati , per questo non spiegherò la differenza tra le diverse compressioni , ma mi limiterò a rilasciare un link per l'approfondimento .

perche fare questo ?

I motivi sono tanti , attraverso il reverse engineering infatti , è possibile scovare nuove vulnerabilità , aggiungere nuove funzionalità , e in alcuni casi visto che la maggior parte dei sistemi embedded è forniti con delle implementazioni open source , scoprire se sono stati infranti i termini di licenza (DIVERTIRSI).

*/
####################################################################################


Gli strumenti che ho utilizzato sono i seguenti

Binwalk --> https://github.com/devttys0/binwalk
dd --> http://linux.die.net/man/1/dd
Sublime Text --> https://www.sublimetext.com
Strings o Hexdump
Magic file --> https://www.freebsd.org/cgi/man.cgi?query=file&sektion=1
Lzma --> http://tukaani.org/lzma/


Il primo passo è stato quello di scaricare la giusta versione del firmware presente nel router ed estrapolare alcune informazioni utili con il tool Binwalk

Schermata 2016-04-02 alle 17.40.29.png



Schermata 2016-04-02 alle 17.48.35.png


Binwalk mi ha restituito il tipo di filesystem (Squashfs) è la compressione utilizzata dallo stesso . Con queste informazioni si può copiare la sezione del file system in una nuova immagine con estensione squashfs.

Schermata 2016-04-02 alle 18.04.36.png


Con il tool file , presente sulla maggior parte dei sistemi unix , verifico con esattezza il corretto formato del file .

Schermata 2016-04-02 alle 18.06.53.png


Sembra non essere ciò che cercavo, quindi tento di estrarre tutti i caratteri presenti nel file e li visiono con Sublime Text

Schermata 2016-04-02 alle 18.16.56.png


Schermata 2016-04-02 alle 18.18.06.png


Ottimo , l'intestazione di un file system squashfs normalmente presenta i caratteri "sqsh cioè il magic number" che descrive lo stesso . La scansione con Binwalk ha riportato due possibili algoritmi di compressione quindi uno dei due deve aver modificato questi valori in "shsqa" , cerchiamo di copiare nuovamente la sezione cambiando formato in LMZA e tentiamo di decomprimerlo.

LMZA --> https://it.wikipedia.org/wiki/Algoritmo_Lempel-Ziv-Markov

Schermata 2016-04-02 alle 18.54.29.png

Perfetto :yo: ecco il file system e la cartella del webserver

Schermata 2016-04-02 alle 18.58.48.png



Schermata 2016-04-02 alle 19.06.49.png


***********************************************************************************************
Altro esempio per Sitecom WLM-3600

Schermata.jpg


TO BE CONTINUED
 
Non riesco a capire il penultimo passaggio dopo che hai decompresso il formato LMZA come hai fatto a entrare nel filesistem del router?

Inviato dal mio Find7 utilizzando Tapatalk
 
Ultima modifica:
Non riesco a capire il penultimo passaggio dopo che hai decompresso il formato LMZA come hai fatto a entrare nel filesistem del router?

Inviato dal mio Find7 utilizzando Tapatalk
La compressione utilizzata è LZMA , e il blocco da 768 in su , contiene il file system . Ora sapendo che il formato di compressione è LZMA , basta provare ad esportare quel blocco come lzma e decomprimerlo . Quello che vedi nelle foto , e il contenuto "quasi intero" del file system . Con ulteriori ricerche , è possible estrarre anche il kernel ecc , effettuare le proprie modifiche e riassemblare l'intero firmware .
 
Stato
Discussione chiusa ad ulteriori risposte.