Cacciare malware con lo ShimCache: un workflow passo passo

4 min di lettura

TL;DR. Parsa l'hive SYSTEM. Filtra per percorsi in posizioni scrivibili dall'utente (\AppData\, \Temp\) e percorsi di sistema inaspettati. Conferma i hit con hash di AmCache e Prefetch. Pivota sull'SHA-1 quando il file è sparito. Lo ShimCache mette nomi nella tua lista di caccia. Non chiude i casi da solo.

Il motivo per cui lo ShimCache si guadagna il posto in un workflow di hunting è che sopravvive. Un attaccante rilascia uno strumento, lo esegue, lo cancella, e il percorso resta nella cache. Questo lo rende un pivot ad alto segnale quando AmCache e Prefetch sono stati ripuliti o non erano mai attivi. Ecco come lo uso davvero.

Workflow di caccia al malware con lo ShimCache in cinque passi

Il workflow in cinque passi

  1. Raccogli l'hive SYSTEM. Tira C:\Windows\System32\config\SYSTEM e i suoi fratelli .LOG1 e .LOG2, oppure usa Velociraptor per la raccolta live. La guida all'acquisizione copre i metodi sicuri. Ricorda che la cache vive in memoria fino allo shutdown pulito, quindi controlla il timing di memorizzazione prima di assumere che l'hive su disco sia aggiornato.
  2. Parsa a una lista piatta. Decodifica il blob binario in righe (path, mtime, format). Lo Shimcache Parser lo fa nel tuo browser; l'AppCompatCacheParser di Eric Zimmerman o il Mandiant Shim Cache Parser lo fanno offline.
  3. Filtra per percorsi sospetti. Qui è dove la caccia succede davvero.
  4. Conferma l'esecuzione. Una riga ShimCache da sola dimostra esistenza, non esecuzione. Accoppia ogni riga interessante con Prefetch, AmCache, o EVTX / Sysmon. La matrice completa è nella referenza degli artefatti di esecuzione programmi.
  5. Pivota sull'hash. Quando il file su disco è sparito, l'SHA-1 di AmCache è il tuo appiglio per i lookup su VirusTotal e threat intel. Il confronto ShimCache vs AmCache copre perché tirale sempre entrambi.

Pattern che vale la pena filtrare

Questi sono i pattern di percorso che scoreano consistentemente più in alto nelle cacce reali:

  • Directory scrivibili dall'utente. \AppData\Local\Temp\, \AppData\Roaming\, \Users\Public\, \ProgramData\. Utenti e servizi possono rilasciare binari qui senza diritti admin, e lo fanno.
  • Scrivibili dal sistema ma non dovrebbero esserlo. C:\Windows\Temp\, C:\PerfLogs\, qualunque cosa sotto C:\Windows\ che non sia un percorso Windows noto. Binari di servizio PsExec e tooling named-pipe atterrano qui continuamente.
  • Doppia estensione e lookalike. svchost.exe fuori da \System32\, lsass.exe in posizione insolita, *.pdf.exe, *.docx.exe. L'OriginalFileName da AmCache di solito rompe il travestimento.
  • Share di rete e media rimovibili. \\?\UNC\, lettere di drive diverse da C:, \Device\HarddiskVolumeShadowCopy*. Mostrano il percorso di staging. Incrocia con i file LNK per la cronologia shell.
  • Tooling usa-e-getta. psexec.exe, winrm.cmd, wmiexec.exe, mimikatz*.exe, artefatti Cobalt Strike. Gli strumenti admin legittimi vengono abusati; trattali come finding da chiarire, non come rumore da ignorare.

Non fare il furbo con le regex al primo passaggio. Ordina per mtime e passa le voci recenti a occhio. Cattura le cose che i filtri euristici si perdono, inclusi i binari che l'attaccante ha rinominato per evadere la tua lista di filtri.

Regole pratiche di triage

Qualche controllo rapido separa il segnale dal rumore:

  • Ha un fratello in Prefetch? Quasi prova di esecuzione.
  • AmCache porta un SHA-1? Cercalo. Hash di vendor firmato pulito significa deprioritizzare. Hash sconosciuto su un percorso scrivibile dall'utente significa escalare.
  • La mtime è sospettosamente vicina a un orario di incidente noto? Modificata entro minuti da un alert merita uno sguardo più approfondito. Ricorda che la mtime è una proprietà del file, non il momento in cui Windows l'ha visto.
  • La directory padre è il profilo dell'utente ma l'utente non è admin? Ragionevole per gli installer; cerca indicatori di elevation in Sysmon Event ID 1 e Security 4688 con token elevati.
  • Il journal USN o la MFT conferma la creazione nella finestra di interesse? Forte conferma quando il file è ancora su disco.

Cosa questo workflow non ti dice

Lo ShimCache da solo non ti dirà chi ha lanciato il binario, con quali argomenti, o quando. Per questo ti servono Sysmon, log eventi Security o una timeline di esecuzione programmi completa. Il compito della cache è mettere nomi nella lista di caccia, non chiudere l'indagine.

Letture aggiuntive

Articoli correlati