Prefetch

Il prefetch #

Il prefetch è un sistema pensato per aumentare la velocità con cui un programma si avvia, e tutto questo è possibile perché ad ogni avvio di un eseguibile, un file prefetch .pf viene salvato nella cartella C:\Windows\Prefetch con il nome composto dal nome dell’eseguibile, seguito da una serie di 8 cifre esadecimali. Questi due blocchi sono separati da un “-”. All’interno di questo file, vengono immagazzinate le seguenti informazioni:

  • Il nome dell’eseguibile;
  • La hash del programma (che sarebbero le 8 cifre esadecimali);
  • Le dimensioni del programma originale;
  • La versione/i di Windows supportata dal programma;
  • Il numero di volte che è stato eseguito (in generale, non nella sessione del pc);
  • L’ultima esecuzione (formato yyyy-mm-dd hh:mm:ss);
  • Fino a 7 altre ultime date di esecuzione (formato yyyy-mm-dd hh:mm:ss);
  • Il nome del volume dove il programma era localizzato durante l’ultimo avvio;
  • Il numero seriale del volume;
  • La data di creazione del volume;
  • La lista di cartelle aperte dal programma;
  • La lista di file (risorse) caricate dal programma.

Queste informazioni aiutano i membri dello staff ad avere una sequenza temporale abbastanza accurata dei programmi che sono stati avviati. Tramite strumenti come WinPrefetchView, possiamo analizzare in modo accurato i file presenti nella cartella prefetch, selezionarli e vedere ulteriori caratteristiche. Se invece dobbiamo analizzare in modo ancora più avanzato il prefetch, possiamo usare tool come PECmd, che ci permette di vedere ogni informazione di un file prefetch o di un insieme. A volte si possono riscontrare errori nell’analisi di questi artifatti.

Nel caso l’utente abbia disabilitato il prefetch, bisogna controllare la seguente chiave di registro, che è responsabile per lo stato di attività del prefetch:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

Il servizio che si occupa della gestione del prefetch è il sysmain. La persona sotto controllo potrebbe aver arrestato il servizio. Per controllare lo stato del servizio:

sc query sysmain

Situazioni particolari #

  • La persona controllata potrebbe giocare uno scherzo con i permessi. Bisogna controllare sempre i permessi della cartella, e che permettano la scrittura di file al suo interno. In caso contrario la persona potrebbe usare un noto metodo bypass, il “cacls” (più informazioni nella parte pratica);

  • Il giocatore potrebbe modificare la visibilità di un singolo file prefetch, per non dare nell’occhio. In questo caso bisogna controllare che non ci siano file nascosti, con il comando dir /ah, mostrando ogni file indipendentemente dalle impostazioni di visualizzazione.