Recuperare file con foremost

di Maurizio Anconelli

L'autopsia di un disco rigido rappresenta l'attività basilare nella computer forensics. Gli strumenti a disposizione dell'investigatore sono molti ed ognuno presenta caratteristiche proprie che ne consigliano o meno l'utilizzo in determinate occasioni. Foremost è un ottimo programma su piattaforma Linux per il recupero di file, cancellati o nascosti, direttamente da hard disk o da immagini ricavate attraverso i principali tool di duplicazione (dd, EnCase, Safeback ecc..).

L'interfaccia a linea di comando e la configurazione manuale di questo tool sviluppato dall'U.S. Air Force Office of Special Investigation possono a torto indirizzare l'operatore verso programmi di recupero più immediati che, non sempre, si rivelano la scelta ottimale in analisi ad ampio spettro.

Gli agenti speciali dell' U.S.A.F. Kriss Kendal e Jesse Kornblum hanno creato questo programma come supporto alle sempre più frequenti indagini riguardanti il recupero di file da personal computer rilasciandolo come free software, in quanto prodotto del Governo degli Stati Uniti per il quale non è prevista la protezione da copyright (17 USC 105). La versione attualmente disponibile è la 0.69 ed è scaricabile da sourceforge.net . L'installazione è molto semplice e si ottiene lanciando i comandi make e make install all'interno della cartella derivante dalla scompattazione del file tar.gz .

Le maggiori distribuzioni Linux-live orientate all'incident response ed alla sicurezza (F.I.R.E., Penguinsleuth e Knoppix STD) lo includono di default in versione precompilata e ciò, oltre ad essere una prova dell'utilità e della funzionalità in ambito forensico, ne dovrebbe quantomeno consigliare l'approfondimento a chi si occupa di sicurezza ed incident response.

Il funzionamento è basato, come per la maggior parte dei tools di recupero, sulla ricerca di un header ed un footer, cioè stringhe che caratterizzano l'inizio e la fine di un particolare file, così come specificato nel file di configurazione foremost.conf. Questo sistema che sembra accrescere la macchinosità del sistema è in realtà il fulcro ed il punto di forza del programma, motivo per il quale in parecchie occasioni ho preferito mettere in disparte applicazioni grafiche più blasonate. Foremost analizza il drive o l'immagine (in sola lettura, naturalmente) alla ricerca dell'header specificato e recupera i dati sino alla prima occorrenza del footer o al raggiungimento della dimensione massima specificata nel file di configurazione nel caso il footer non sia presente.
I file recuperati sono salvati in una directory predefinita se non specificato diversamente al prompt dei comandi, assieme ad un report finale audit.txt. Vedremo in seguito alcune opzioni del file di configurazione che permettono di piegare leggermente questo comportamento.

Utilizzo di base


Analizziamo innanzitutto la sintassi del programma:

# foremost [-h|V] [-qv] [-s num] [-i ] [-o ] \ [-c ] [] ....


La maggior parte dei parametri è autoesplicativa, mentre è bene soffermarsi su alcune opzioni che si rivelano fondamentali ai fini del risultato.

La modalità Quick (-q ) obbliga il programma a ricercare l'header solo all'inizio di ogni settore per la lunghezza massima dell'header più lungo presente nel file di configurazione, tralasciando il resto dei dati. Ciò velocizza di molto la ricerca ma potremmo lasciare indietro alcuni file interessanti, ad esempio quelli inglobati in altri file.

Se non è impostata una directory di output ( -o ), foremost salva i file in una cartella predefinita chiamata foremost-output, contenuta nella directory corrente che potrebbe non avere abbastanza spazio od essere destinata ad altro. La directory di output dev'essere vuota o al limite non esistere, penserà foremost a crearne una di default.

Il flag -s ci permette di partire da un determinato offset per dividere la scansione in più parti o perfezionare la ricerca di determinati file.

Vediamo alcuni esempi:

foremost -v -o /mnt/usbDisk/recupero/ /home/immagine1.dd
Analizza l'immagine contenuta in /home e salva i risultati nella directory recupero di un hard disk USB.

foremost -v -c /home/anconelli/foremost.conf /dev/sda1
Legge il file di configurazione nella home dell'utente ed analizza il device /dev/sda1

foremost -o /home/prove/ -s 681574400 /mnt/immagini/disco1.dd
Inizia a scansire l'immagine disco1.dd dall'offset 681574400

File di configurazione


Il file di configurazione guida il comportamento di foremost durante la ricerca ed è sostanzialmente un elenco delle caratteristiche da ricercare per ogni file. Le righe che iniziano col carattere # sono considerate commenti e non vengono prese in considerazione dal programma. Ogni riga è divisa in sezioni con gli attributi dei file:

extension

case sensitive

size

header

footer

opzioni







mpg

y

4000000

\x00\x00\x01\xba

\x00\x00\x01\xb9

REVERSE








Foremost nomina numericamente ogni file recuperato, partendo da 00000000 ed aggiungendo l'estensione specificata nel campo extension. E' possibile inserire NONE nel suddetto campo per fare in modo che nessuna estensione sia aggiunta al nome del file.

Case sensitive può essere impostato 'y' o 'n' e riguarda il trattamento di header e footer.

Size rappresenta il massimo numero di byte che foremost recupera se non trova un footer.

L'header ed il footer possono essere specificati con valori esadecimali, ottali o in caratteri, lo spazio è rappresentato da \s. I valori esadecimali sono rappresentati come \x[0-f][0-f], quelli ottali come \[0-3][0-7][0-7] . L'esempio riportato nel file di configurazione stesso è il seguente:

\x4f\123\I\sCCI è equivalente a “OSI CCI”
Un'utile accorgimento è l'inserimento di una wildcard per stringhe contenenti byte variabili : il carattere utilizzato di default è '?' (es. ????????\x6d\x6f\x6f\x76) che può essere cambiato modificando la relativa stringa nel file di configurazione.
Il campo footer è l'unico opzionale e, in molti casi, è utile eliminarlo per affidarsi alla dimensione massima specificata.
Oltre a questi parametri esistono due opzioni che possono essere appese alla riga di specifica per plasmare il comportamento di foremost in casi particolari:


Rapporto

Nella directory in cui sono immagazzinati i dati recuperati, Foremost crea un file dal nome audit.txt, ovvero un report contenente i dettagli dell'operazione effettuata tra i quali è da evidenziare l'offset di partenza originale del file recuperato ( Found at Byte). Ho trovato questo parametro molto utile per approfondire una prima ricerca di base. Cercando ad esempio alcune immagini create con Photoshop 7, possiamo impostare l'header in modo che trovi una caratteristica unica dell'immagine ( la stringa Adobe\sPhotoshop). Sapendo che l'occorrenza dell'header è collocata all'offsett 144 (0x90) del file possiamo recuperare per intero l'immagine calcolando il byte di partenza del file impostandolo come punto di avvio della ricerca con l'opzione -s.

Le possibilità di Foremost dipendono molto dalla fantasia dell'investigatore. Giocate con i file di configurazione, analizzate i dati recuperati con un buon editor esadecimale, variate le opzioni e createvi configurazioni ad hoc per le tipologie di recupero più frequenti: scoprirete che a volte può valer la pena abbandonare programmi più comodi per tornare alla vecchia e sobria line di comando.




Per informazioni contattare staff@cybercrimes.it
Il logo cybercrimes.it e le immagini relative sono di proprietà del sito.
La documentazione presente nel sito è soggetta alla licenza Creative Commons ed è quindi liberamente riproducibile riportando il nome dell'autore originale.

>>>Forum<<<

Google
Web
cybercrimes.it

Lo Staff di Cybercrimes.it

Anconelli Maurizio

Adduci Massimo



ISFCE


hackin9

Hard Disk Forensics e Specifiche ATA