Windows Forensics: Prova d’esecuzione di un programma con PECmd

Windows Forensics: Prova d’esecuzione di un programma con PECmd

Oggi giorno, l’elemento digitale è diventato un fattore cruciale nelle indagini forensi. Ogni attività compiuta sui dispositivi digitali può lasciare tracce preziose, fornendo un’ampia gamma di informazioni agli investigatori.

Per estrarre queste informazioni è necessario utilizzare strumenti forensi affidabili. Tra le diverse suite di tool disponibili, quella sviluppata da Eric Zimmerman offre una serie di strumenti potenti e versatili. In questo articolo, ci concentreremo su un tool in particolare: PECmd che consente di analizzare i file di precaricamento di Windows per avere informazioni utili sui programmi eseguiti.

Cosa sono i file di prefetch di Windows?

A partire da Windows XP, Microsoft ha introdotto il prefetch, una funzionalità progettata per ottimizzare le prestazioni del sistema riducendo i tempi di attesa durante l’avvio delle applicazioni. Il prefetch funziona anticipando e memorizzando in modo intelligente i dati necessari per l’avvio delle applicazioni più frequentemente utilizzate, consentendoci un accesso più rapido.

Perché l’analisi del prefetch è importante per le indagini forensi?

Nei processi investigativi, l’analisi dei file di prefetch può rivelarsi fondamentale per:

  • Tracciare le attività degli utenti: I file di prefetch contengono una cronologia dettagliata delle applicazioni eseguite, consentendo di ricostruire le azioni degli utenti.
  • Identificare attacchi informatici: Gli aggressori spesso sfruttano file dannosi per compiere azioni malevole volte a raccogliere dati sensibili o compromettere l’integrità del sistema. In tali scenari, le applicazioni utilizzate lasciano tracce nei file di prefetch, che possono essere analizzate per identificare le azioni degli aggressori e mappare le attività criminose.
  • Stabilire una sequenza temporale: L’analisi del prefetch fornisce dettagli temporali cruciali, inclusi l’ora di creazione e l’ultimo accesso, che consentono di correlare le attività sospette sul sistema della vittima, contribuendo così a un’investigazione forense completa.

PECmd: Estrazione di informazioni dai file di prefetch

PECmd è uno strumento CLI, open source utilizzato per estrarre informazioni dai file di prefetch di Windows (richiede l’installazione di .NET Framework 4.5 o successivo). Questi file contengono metadati cruciali sulle applicazioni recentemente eseguite, come percorsi dei file, conteggi di esecuzione e timestamp. Tali dati come si è detto in precedenza sono fondamentali per comprendere l’attività dell’utente su un sistema e sono preziosi nelle indagini forensi.

Esempio di utilizzo di PECmd

In questo esempio, analizzeremo il file Prefetch della nostra app Calcolatrice per scoprire quando è stato l’ultimo utilizzo e quante volte abbiamo utilizzato l’applicazione.

  1. Scarichiamo PECmd da qui
  1. Estraiamo il contenuto del file scaricato in una nuova cartella sul desktop, creiamo una nuova cartella chiamata “PECmd”.
  1. Apririamo il prompt dei comandi con privilegi di amministratore:
  1. All’interno del prompt dei comandi, spostiamoci nella directory contenente il file eseguibile (.EXE), utilizziamo il seguente comando:
cd C:\Users\%username%\Desktop\PECmd

Sostituiamo “%username%” con il nostro nome utente.

  1. Una volta raggiunta la directory, possiamo lanciare il nostro eseguibile digitando il nome del file (PECmd.exe) e premendo Invio.
PECmd.exe

Se tutto è andato a buon fine ci troveremo davanti a questa schermata:

user@machine$ PECmd.exe

PECmd version 1.5.0.0

Author: Eric Zimmerman ([email protected])
https://github.com/EricZimmerman/PECmd

        d               Directory to recursively process. Either this or -f is required
        f               File to process. Either this or -d is required
        k               Comma separated list of keywords to highlight in output. By default, 'temp' and 'tmp' are highlighted. Any additional keywords will be added to these.
        o               When specified, save prefetch file bytes to the given path. Useful to look at decompressed Win10 files
        q               Do not dump full details about each file processed. Speeds up processing when using --json or --csv. Default is FALSE

        json            Directory to save json representation to.
        jsonf           File name to save JSON formatted results to. When present, overrides default name
        csv             Directory to save CSV results to. Be sure to include the full path in double quotes
        csvf            File name to save CSV formatted results to. When present, overrides default name
        html            Directory to save xhtml formatted results to. Be sure to include the full path in double quotes
        dt              The custom date/time format to use when displaying timestamps. See https://goo.gl/CNVq0k for options. Default is: yyyy-MM-dd HH:mm:ss
        mp              When true, display higher precision for timestamps. Default is FALSE

        vss             Process all Volume Shadow Copies that exist on drive specified by -f or -d . Default is FALSE
        dedupe          Deduplicate -f or -d & VSCs based on SHA-1. First file found wins. Default is TRUE

        debug           Show debug information during processing
        trace           Show trace information during processing

Examples: PECmd.exe -f "C:\Temp\CALC.EXE-3FBEF7FD.pf"
          PECmd.exe -f "C:\Temp\CALC.EXE-3FBEF7FD.pf" --json "D:\jsonOutput" --jsonpretty
          PECmd.exe -d "C:\Temp" -k "system32, fonts"
          PECmd.exe -d "C:\Temp" --csv "c:\temp" --csvf foo.csv --json c:\temp\json
          PECmd.exe -d "C:\Windows\Prefetch"

          Short options (single letter) are prefixed with a single dash. Long commands are prefixed with two dashes

Either -f or -d is required. Exiting


Importante: Prima di iniziare l’analisi, è importante sapere che i file Prefetch sono archiviati nella cartella predefinita: C:\Windows\prefetch.

I file Prefetch hanno un estensione .pf

Inoltre, è possibile notare che il nome del file è seguito da un numero casuale, che rappresenta l’hash generato dal prefetch e utilizzato per determinare il percorso da cui è stato eseguito il file. A seconda della versione di Windows, viene impiegata una diversa funzione di hashing.

NOTA: la prelettura è abilitata per impostazione predefinita sulle workstation Windows e non sui server Windows

Inoltre, il numero massimo di file di precaricamento che possono essere archiviati da Windows XP a Windows 7 =128 e da Windows 8 a Windows 10=1024.

Fatta questo ulteriore chiarimento , proseguiamo con la nostra guida

  1. Lanciamo il comando per l’analisi del nostro file prefetch, per farlo possiamo utilizzare il seguente comando:
PECmd.exe -f <path-to-Prefetch-files> --csv <path-to-save-csv>

Come osservato sopra, otteniamo numerosi dettagli sul file specifico, incluso un conteggio di 7 esecuzioni e informazioni su l’ultima esecuzione dalla nostra app

Allo stesso modo, per analizzare un’intera directory, possiamo usare il seguente comando:

<code>PECmd.exe -d &lt;path-to-Prefetch-directory> --csv &lt;path-to-save-csv></code>