dir_extractor.sh

giugno 16th, 2011

Un paio di giorni fa parlavo con un amico che aveva necessità di estrarre tutti i file contenuti in una directory. L’operazione doveva essere eseguita lavorando da Linux e coinvolgeva un gran numero di formati diversi di file, quindi l’idea di usare Sfdumper per estrarre i singoli formati o anche di creare la giusta riga di comando per determinare tutte le tipologie di file ivi presenti per poi passarli a BSFE.sh appariva poco praticabile.
Sfortunatamente come spesso accade nel momento in cui ti accorgi di avere una specifica esigenza, scopri che i dati ad essa legati erano indispensabili per ieri :(

Oggi sulla mailing list di CFItaly un utente chiedeva come poter avere in formato tabellare i nomi , correlati di mac time, relativi a tutti i file contenuti in una directory.

Sono esigenze che possono intervenire nel momento meno opportuno, quando sprecare ore per fare il giusto script, domando gli output testuali di tool a riga di comando, può essere poco impossibile.

Così questa sera ho perso tre ore dietro la realizzazione di dir_extractor.sh

Si tratta del solito script poco elegante che lavora facendo il parsing degli output testuali dello Slueth Kit.

Non ho inserito alcun tipo di controllo sui parametri passati in input, quindi ..fate attenzione a ciò che scrite o non funziona.
Sintassi banale:

# sh dir_extractor.sh file_system  offset  image  \\int.riga
                      dir_name  output_dir  r/n

dove:
- file_system è il file system della partizione contenente la directory (tipologie supportate da STK);
- offset è l’offset (che fantasia) di inizio partizione, come indicato dall’output di mmls;
- image è il percorso-nome immagine, per le immagini in formato ewf, quindi .E01 o .e01 indicare solo image.E, se l’immagine è raw splittata o in formato aff ….devo pensarci :) quando tornerà la voglia metterò le righe necessarie. Quindi per ora lavora con raw singole ed ewf singole o splittate.
- dir_name è il nome della directory, o meglio il percorso in cui risiedono i file di interesse. Il tutto si basa su un banale grep, quindi il nome della directory/percorso deve essere preciso o …ciccia… Funziona in modo ricorsivo, quindi scende nella sub directory;
- output_dir è la directory di output che deve esistere, usate l’autocompletamento o mettete lo slash finale, come ho detto non ho inserito i controlli sui parametri in input;
- r/n se si vuole recuperare i file si mette r, se altrimenti si vuole solo un file con i dati testuali relativi ai mac time mettere n (non ci sono controlli per i caratteri sbagliati);

esempio:

$ sh dir_extractor.sh ntfs 63 ~/Forensic/CASO_1/image.E  "Documents and Settings/User/Cookies/" mio_output/ r

CREO LA LISTA DI FILE DA RECUPERARE
RECUPERO FILE e/o MAC TIME
***********************************************************

ESTRAZIONE TERMINATA

ACCEDI AI FILE RECUPERATI da mio_output/index.html

nella directory di output troviamo:
- una directory dal nome recovered/ contenente i file recuperati identificati dall’inode. L’estensione è quella ricavata dal nome, se si trattava di doppia estensione compare solo l’ultima;
- il file testuale tabella.txt contenente il nome file, stato, data creazione, modifica, ultimo accesso divisi da un punto e virgola, basta importarli in un foglio di calcolo usando il carattere “;” come separatore;
- il file index.html

da cui si accede ai vari file. A fondo pagina è presente il link per accedere a tabella.txt.

In definitiva..nulla di che, nulla di fine, ma può tornare utile, in particolare quando ti accorgi che ne avevi bisogno ieri. Non sono stato a perdere tempo implementando i controlli sui parametri di input perché altrimenti queste sessantasei righe di codice (commenti inclusi) lievitavano subito. Quando avrò tempo e voglia magari ci penserò.

Scordavo: è abbastanza palese che funzionando con lo SleuthKit possa digerire anche i device che vedrà come file raw, quindi:

$ sh dir_extractor.sh ntfs 63 /dev/sdb  "Documents and Settings/User/Cookies/" mio_output/ r

Download:
dir_extractor.sh v.0.0.1 – md5=aebc5f37e2fee3f3690f64c0c56c65ea;

dir_extractor.sh v.0.0.2 – md5=e757b94653b7ca731c05b66566429a37

Forensics, Tools | Comments | Trackback

One Response to “dir_extractor.sh”

  1. 1Estrazione ricorsiva di una directory | Gianni Amato
    giugno 17th, 2011 @ 18:25

    [...] farla breve, Denis oggi ha pubblicato uno script (che non ho ancora testato) per porre rimedio a questo inconveniente. forensics dff. [...]

Leave a Reply

  1.  
  2.  
  3.  
  4. XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
You can keep track of new comments to this post with the comments feed.

Cerca

giugno: 2011
L M M G V S D
« mag   lug »
 12345
6789101112
13141516171819
20212223242526
27282930  

Categorie

Blogroll

Feed

blaze.runner@katamail.com blaze.runner@email.it phishing@denisfrati.it bianchi_luigi1960@tiscali.it rossi_mario1960@tiscali.it laura.rossi80@libero.it laura.rossi80@tiscali.it denis.frati@poste.it cerca.soldi@infinito.it mario.rossi71@infinito.it