Forensic’s Artifacts #1: Attenti al Cestino!
Ciao a tutti, in questa serie di post vi parlerò di alcuni importanti artefatti di windows, elementi da analizzare che possono contenere una notevole quantità di informazioni in fase di investigazione per un team di incident response o di un investigatore forense.
Vi parlerò quindi del “Cestino” di Windows, noto come “recycle bin”, vi mostrerò cosa è, come lavora, che informazioni si possono estrarre e come si può fare ciò.
Iniziamo con un analogia: il cestino del vostro pc windows funziona esattamente come il cestino che avete sotto la vostra postazione di lavoro in ufficio, tuttò ciò che non serve più viene butatato li dentro, e rimosso dal lavoro…ma questa informazione che e stata cestinata/buttata, davvero non esiste più?
Assolutamente no, esiste eccome, finchè non verrà completamente distrutta. Il cestino può rivelarsi una miniera preziosa di informazioni per un investigatore che, per la sua indagine, parte proprio da li.
Questa tecnica prende il nome di “dumpster diving”, ma per questo ci sarà tempo e un post separato in cui ne parleremo in modo più dettagliato. Torniamo a noi, vi stavate chiedendo cosa centri il cestino del lavoro e quello del vostro personal computer vero? esattamente…
La logica di funzionamento per quanto possa essere più complessa è molto simile, un dato non viene cancellato definitivamente perchè si trova nel cestino, anche se lo svuotate! l’informazione verrà distrutta solo quando verrà sovrascritta da una nuova informazione all’interno di quel settore di memoria specifico.
Quindi vediamo la struttura:
Il Cestino visto come collegamento sul desktop dell’utente si riferisce a un percorso specifico di una directory situata in “C:\$Recycle.bin\”. Muoviamoci all’interno di quel percorso e vediamo un po’ ..
Apriamo il cmd come Administrator:
cd C:\$Recycle.bin\
dir /ah

Vediamo quelle ultime due directory che sono composte da blocchi di caratteri uguali a eccezione dell’ultimo gruppo… Quei due numeri 1000 e 1001 si riferiscono ai SID ovvero il Security Identifier di ogni utente.
Ogni user ha quindi una propria directory (nascosta, per questo usiamo il parametro /ah) all ‘interno del percorso C:\$Recycle.bin\.
All’interno di questo percorso troveremo per ogni file che è stato cancellato, 2 file:
- $I123asd.ext: contiene i metadati del file, data di creazione modifica e accesso sono quelli del momento della cancellazione (tutti uguali), l’estensione è quella del file originale. L’unica differenza con il file originale è il nome.
- $R123asd.ext: “raw” contiene i veri dati del file, la data di creazione/modifica/accesso sono quelli del file “originale”, così come l’estensione e la dimensione.
Entrambi i file sono composti dal carattere jolly “$” seguito dai sei caratteri alfanumerici casuali e l’estensione originale del file.

Come si vede nello screenshot abbiamo due file: $I48NVBE.txt e $R48NVBE.txt con due timestamps completamente diversi.
Il file $I contiene i metadati e infatti il timestamp corrisponde a quello della eliminazione mentre il file $R contiene i dati del file di prova che ho creato.
Approfondiamo il contenut del file $I… aprendolo con un editor esadecimale:

I primi 8 byte sono riservati al sistema, da 0x08 a 0x0F sono riservati alla dimensione dle file, i successivi 8 bytes sono dedicati alla data di cancellazione, i successivi 4 bytes indicano la lunghezza del path file, i restanti file sono dedicati al nome del percorso e del file esaminato in Unicode.
Il file $R… non contiene metadati, ma i dati raw effettivi del file, infatti calcolando l’hash del file $R e confrontandolo con l’hash prima della cancellazione noterete che sono assolutamente identici:

Ho aperto il file $R con l’editor giusto per accertarmi che fosse vuoto come lo avevo creato:

Alcuni processi durante l’analisi possono essere migliorati, facilitati con l’utilizzo di tools specifici, come RBCmd e Rifiuti2.
RBCmd sostanzialmente funziona da parser da riga di comando, vediamolo in azione:
RBCmd.exe -f C:\$Recycle.Bin\S-1-5-21-1773766208-2466091084-634072934-1001\$I48NVBE.txt
Abbiamo specificato con il -f il file oggetto di analisi, nel nostro caso $I48NVBE.txt.

Dall’output possiamo estrarre la data di cancellazione, la dimensione, il percorso del file e il suo nome.
Il tool permette anche l’export in un formato CSV, utile nel caso invece di analizzare un file unico si analizzano tutti i file di una directory utente, in tal caso si potrebbe importare il file csv in un tool per l’analisi della timeline.
L’altro tool accenato prima invece, Rifiuti2 è eseguito anch’esso da riga di comando e la sua particolarità è che è molto adatto per l’analisi sui vecchi sistemi XP.
Scarichiamolo ed eseguiamolo..

Entrambi i tools sono intercambiabili, in caso si debba ivestigare una macchina XP è più adatto utilizzare Rifiuti.
Con i file ripristinati? in questo caso è molto curiosa la cosa, non dimenticate che il file $I è quello che contiene le informazioni principali sul percorso, il nome, il timestamp di cancellazione… quando un file viene recuperato, $I.. è molto importante perchè permette di ripristinare correttamente il file con gli attributi corretti e nella posizione corretta.
Il file $I… resterà all’interno della directory dell ‘utente in recycle.bin, anche dopo il ripristino effettivo del file, mentre il file $R… corrispondente verrà spostato.
In un prossimo post vi mostrerò come recuperare file cancellati utilizzando FTK Imager, navigando tra il file system, ci torneranno utili queste nozioni! Alla prossima!
Share this content:
Lascia un commento