Per il post di oggi, mi prenderò qualche momento per discutere di Windows Prefetch. Ma prima, un rapido suggerimento per alcuni prossimi corsi di formazione:
Mi sto preparando per una prossima lezione FOR508 con Chad Tillbury al SANS Security East 2017. Mentre si sta avvicinando molto, non vediamo l’ora di una classe fantastica e di trovare la prossima squadra di forensi letali! Se partecipi, per favore mandami una riga prima del tempo. Se volete partecipare, credo che la registrazione sia ancora aperta! Inoltre durante l’evento, mercoledì 11 gennaio, terrò un discorso SANS@Night chiamato Zero In on the Artifacts That Matter. La preparazione di quel discorso è stata l’ispirazione per il post di oggi, dato che il prefetch sarà certamente menzionato.
L’ho detto prima e lo dirò ancora – molti artefatti che amiamo nel mondo DFIR sono in realtà sottoprodotti del sistema operativo che cerca di rendere la vita più facile e/o più efficiente per l’utente o gli sviluppatori. A mio parere, anche il prefetch rientra in questa categoria.
Prefetch è stato in giro fin da Windows XP. È stato originariamente progettato per aiutare a velocizzare l’avvio del sistema e il lancio delle applicazioni. L’obiettivo del prefetch è quello di analizzare e registrare il comportamento di avvio delle applicazioni al momento dell’esecuzione per rendere più efficienti gli avvii futuri. Questi dati sono registrati per un massimo di 10 secondi dopo l’avvio dell’applicazione. Il comportamento registrato dell’applicazione viene salvato in un file di traccia – quello che noi chiamiamo file di prefetch – nel percorso C:\Windows\Prefetch.
File di prefetch
Come detto sopra, i file di prefetch si trovano nella directory statica C:\Windows\Prefetch. I file di prefetch hanno un’estensione .pf e seguono una convenzione di denominazione standard:
<APPLICATION NAME IN ALL CAPS>-<EIGHT CHARACTER HASH OF APPLICATION LOCATION>.pf
I file di prefetch contengono i seguenti metadati:
Il nome dell’eseguibile corrispondente
Il numero di volte che l’eseguibile è stato eseguito
La dimensione del file di prefetch
I file e le directory a cui si è fatto riferimento durante l’avvio dell’applicazione (questo è ciò che Windows vuole tracciare)
Informazioni relative al volume su cui si trova l’eseguibile, incluso il percorso del volume e il numero di serie.
Ecco un esempio di alcuni file prefetch dal mio host di prova: