
I file di prefetch, o file di prefetching, sono apparsi in Windows fin dai tempi di XP. Da allora, hanno aiutato i professionisti della criminalistica digitale e della risposta agli incidenti informatici a trovare tracce di avvio delle applicazioni, inclusi software dannosi. Il principale esperto di criminalistica informatica di Group-IB Oleg Skulkin spiega cosa si può trovare tramite i file di prefetch e come farlo.
I file di prefetch vengono memorizzati nella cartella %SystemRoot%Prefetch e servono ad accelerare il processo di avvio delle applicazioni. Se guardiamo a uno di questi file, vediamo che il suo nome è composto da due parti: il nome del file eseguibile e un checksum del percorso, costituito da otto caratteri.
I file Prefetch contengono una grande quantità di informazioni utili dal punto di vista forense: il nome del file eseguibile, il numero di volte che è stato avviato, le liste di file e directory con cui il file eseguibile ha interagito e, naturalmente, le timestamp. Di solito, i criminologi usano la data di creazione di un determinato file Prefetch per determinare la data del primo avvio del programma. Inoltre, questi file conservano la data dell'ultimo avvio e, a partire dalla versione 26 (Windows 8.1), le timestamp degli ultimi sette avvii.
Analizziamo uno dei file Prefetch, estraiamo i dati utilizzando PECmd di Eric Zimmermann e osserviamo ogni sua parte. Per dimostrazione, estrarrò i dati dal file CCLEANER64.EXE-DE05DBE1.pf.
Iniziamo dall'alto. Naturalmente, abbiamo le timestamp di creazione, modifica e accesso al file:

Seguono il nome del file eseguibile, il checksum del percorso, le dimensioni del file eseguibile e la versione del file Prefetch:

Poiché stiamo trattando con Windows 10, vedremo poi il numero di avvii, la data e l'ora dell'ultimo avvio e altre sette timestamp che indicano le date di avvio precedenti:

Segue un'informativa sul volume, inclusi il numero di serie e la data di creazione:
![]()
E per ultimo, ma non meno importante, un elenco delle directory e dei file con cui il file eseguibile ha interagito:

Quindi, le directory e i file con cui il file eseguibile ha interagito sono esattamente ciò su cui voglio concentrarmi oggi. Questi dati permettono agli esperti di crimini informatici, di risposta agli incidenti o di ricerca proattiva delle minacce di stabilire non solo l'esecuzione di un determinato file ma, in alcuni casi, di ricostruire specifiche tattiche e tecniche degli aggressori. Oggi, i malintenzionati utilizzano abbastanza frequentemente strumenti per la cancellazione permanente dei dati, come SDelete, quindi la capacità di recuperare almeno tracce dell'uso di tali tattiche e tecniche è assolutamente necessaria per ogni moderno difensore: un criminologo informatico, un esperto di risposta agli incidenti o un esperto in Threat Hunting.
Iniziamo con la tattica Accesso Iniziale (TA0001) e la tecnica più popolare — Attacco Spearphishing con Allegati (T1193). Alcuni gruppi di cybercriminali scelgono tali allegati in modo piuttosto creativo. Ad esempio, il gruppo Silence ha utilizzato file in formato CHM (Microsoft Compiled HTML Help) per questo scopo. Quindi, abbiamo un'altra tecnica — File HTML Compilato (T1223). Questi file vengono eseguiti tramite hh.exe, quindi, se estraiamo i dati dal suo file Prefetch, scopriremo quale file è stato aperto dalla vittima:

Continuiamo a lavorare con esempi di casi reali e passiamo alla successiva tattica Esecuzione (TA0002) e alla tecnica CSMTP (T1191). Microsoft Connection Manager Profile Installer (CMSTP.exe) può essere utilizzato dagli aggressori per eseguire script malevoli. Un buon esempio è il gruppo Cobalt. Se estraiamo i dati dal file Prefetch cmstp.exe, scopriremo ancora una volta che è stato avviato:

Un'altra tecnica popolare è Regsvr32 (T1117). Regsvr32.exe è anche frequentemente utilizzato dagli aggressori per avviare. Ecco un ulteriore esempio dal gruppo Cobalt: se estraiamo i dati dal file Prefetch regsvr32.exe, vedremo nuovamente cosa è stato avviato:

Le seguenti tattiche sono Persistence (TA0003) e Privilege Escalation (TA0004), così come Application Shimming (T1138) come tecnica. Questa tecnica è stata utilizzata da Carbanak/FIN7 per stabilirsi nel sistema. Di solito, per lavorare con i database delle informazioni sulla compatibilità delle applicazioni (.sdb) si utilizza sdbinst.exe. Pertanto, il file di Prefetch di questo file eseguibile può aiutarci a scoprire i nomi di tali database e la loro posizione:

Come si può vedere nell'illustrazione, abbiamo non solo il nome del file utilizzato per l'installazione, ma anche il nome del database installato.
Diamo un'occhiata a uno degli esempi più tipici di propagazione in rete (TA0008) — PsExec, che utilizza risorse condivise amministrative (T1077). Un servizio chiamato PSEXECSVC (naturalmente, può essere utilizzato qualsiasi altro nome, se gli attaccanti hanno utilizzato l'opzione -r) verrà creato sul sistema target, pertanto, se estraiamo i dati dal file di Prefetch, vedremo che è stato avviato:

Concluderò con ciò da cui ho iniziato: l'eliminazione dei file (T1107). Come ho già sottolineato, molti attaccanti utilizzano SDelete per l'eliminazione definitiva dei file in diverse fasi del ciclo di vita dell'attacco. Se diamo un'occhiata ai dati del file Prefetch sdelete.exe, vedremo esattamente cosa è stato eliminato:

Naturalmente, questo non è un elenco esaustivo delle tecniche che possono essere rilevate durante l'analisi dei file Prefetch, ma dovrebbe essere sufficiente per comprendere che tali file possono aiutare non solo a trovare tracce di avvio, ma anche a ricostruire specifiche tattiche e tecniche degli attaccanti.
Fonte: habr.com
