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
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.
Con il tool file , presente sulla maggior parte dei sistemi unix , verifico con esattezza il corretto formato del file .
Sembra non essere ciò che cercavo, quindi tento di estrarre tutti i caratteri presenti nel file e li visiono con Sublime Text
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
Perfetto ecco il file system e la cartella del webserver
***********************************************************************************************
Altro esempio per Sitecom WLM-3600
TO BE CONTINUED
*/
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
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.
Con il tool file , presente sulla maggior parte dei sistemi unix , verifico con esattezza il corretto formato del file .
Sembra non essere ciò che cercavo, quindi tento di estrarre tutti i caratteri presenti nel file e li visiono con Sublime Text
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
Perfetto ecco il file system e la cartella del webserver
***********************************************************************************************
Altro esempio per Sitecom WLM-3600
TO BE CONTINUED