Quante e quante volte è capitato, erroneamente, di cancellare particolari file e/o di avere un hd con dati nascosti che compromettono la visione degli stessi ?

Esistono molteplici tool per l’indagine e recupero dei dati in ambito linux; tra questi sicuramente è bene conoscere: Foremost.

Link Ufficiale: Foremost

Foremost è un tool di indagine & ripristino dati che agisce a patto che lo spazio su cui pogiavano i dati da recuperare “se cancellati per errore e/o volutamente” non sia stato utilizzato e sovrascritto da altri dati.

Come prima cosa chiaramente, preoccupiamoci di installare il tool aggiornato all’ultima release disponibile:

~$ wget foremost-1.5.5.tar.gz

~$ tar zxvf foremost-1.5.5.tar.gz
~$ cd foremost-1.5.5
~$ make
~$ su
Password:
~# make install

Sintassi:

$ foremost [-v -V -h -T -Q -q -a -w-d] [-t \] \[-s \] \[-k \]

[-b \] \[-c \] \[-o

\] \[-i <file\] ****

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:

</col> </col> </col> </col> </col> </col>

extension

case sensitive

size

header

footer

opzioni

</td>

</td>

</td>

</td>

</td>

</td> </tr>

mpg

y

4000000

x00x00x01xba

x00x00x01xb9

REVERSE

</td>

</td>

</td>

</td>

</td>

</td> </tr> </tbody> </table>

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:

x4f123IsCCI è equivalente a “OSI CCI”
Un'utile accorgimento è l'inserimento di una wildcard per stringhe contenenti byte variabili : il carattere utilizzato di default è '?' (es. ????????x6dx6fx6fx76) 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:

  • REVERSE – Foremost esegue la scansione dall'header alla dimensione massima specificata, poi ripercorre il percorso a ritroso fino alla prima occorrenza del footer. Utile nei casi di file con più istanze del footer all'interno (i file PDF appartengono a questa categoria, troverete infatti il parametro REVERSE settato di default nel file di configurazione originale)
  • NEXT – La scansione si arresta alla prima occorrenza del footer che è escluso dal file recuperato. In questo modo è possibile concludere il recupero quando è presente una stringa che sappiamo per certo non appartenere alla tipologia del file ricercato ma, è altresì possibile recuperare file dei quali non conosciamo il footer concludendo il recupero ed avviando il successivo alla prima occorrenza dello stesso header.

Spiegata la sintassi e il conf non resta che recuperare i dati persi.

Uso Comune:

NB: E' buona norma in caso di partizioni creare un mount point "che potrebbe essere un ennesimo hd Dati" e/o un hard disk usb esterno e quindi:

- Supponiamo di voler recuperare i dati dell'hard disk Hda2; creo la cartella foremost nel disco esterno usb  che chiamerò "recupero", grande a sufficienza da contenere tutto hda2 "disco/partizione sul quale si tenta la scansione e quindi il recupero di dati":

~# mount /dev/hda3 /mnt/recupero   "disco usb"
~# mkdir  /mnt/recupero/foremost   "creazione punto di montaggio sul disco usb (dove finiranno i dati)"

Creato il punto di montaggio scelto come in esempio, basterà avviare foremost in maniera generica (cercando il recupero di tutti i dati) indicando l'hd su cui verificare la scansione e il punto di montaggio che di default risulta essere altrimenti la directory "/output" :

~# foremost -i /dev/hda2 -o /mnt/recupero/foremost

NB: la durata di scansione e recupero varia a seconda della grandezza della partizione e/o dell'hd su cui si lavora.

A lavoro finito la cartella o il punto di montaggio scelto si presenta come segue:

audit.txt  dll/  gif/  jpg/  mpg/  png/  rif/  sxc/  vis/  xls/
avi/       doc/  htm/  mbd/  ole/  ppt/  sdw/  sxi/  wav/  zip/
bmp/       exe/  jar/  mov/  pdf/  rar/  sx/   sxw/  wmv/

NB: Come da esempio, i file sono suddivisi in cartelle per estensione. La nota dolente è che all'interno delle cartelle i file recuperati sono rinominati  numericamente perdendo il nome originario.

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). Questo parametro risulta molto utile per approfondire una prima ricerca di base. Cercando ad esempio alcune immagini create con Photoshop, possiamo impostare l'header in modo che trovi una caratteristica unica dell'immagine ( la stringa AdobesPhotoshop). 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.

Uso Specifico per tipi di file:

Potrebbe essere utile scansionare la partizione e/o l'hd scelto cercando solo ed esclusivamente determinati tipi di file:

~# foremost -t jpg -i /dev/hda2 -o /mnt/recupero/foremost

NB: Come da esempio l'estensione è configurabile con il tipo di file che si intende recuperare Gif, Avi, Zip, Rar, Doc, Html etc ...

Le possibilità di indagine e ripristino con Foremost sono varie, e anche se può risultare non troppo comodo permette di creare file di configurazione vari per i vari tipi di file che si intende ricercare fuori dal contesto della ricerca default; ricerca che di suo risulta essere davvero semplice all'user comune.

Riferimenti: Cybercrimes

#