Cacciare malware con lo ShimCache: workflow passo dopo passo

3 min di lettura

TL;DR. Parsa la hive SYSTEM → filtra i percorsi in aree scrivibili dall'utente (AppData, Temp) e in percorsi di sistema inattesi → corrobora gli hit con hash AmCache e Prefetch → pivota sull'SHA-1 quando il file è sparito. Lo ShimCache mette nomi sulla tua lista di caccia; non chiude il caso da solo.

Lo ShimCache è uno dei punti di pivot ad alto segnale nel threat hunting Windows: registra gli eseguibili che Windows ha esaminato, compresi quelli da tempo cancellati. Questo post è un workflow concreto per trasformare un dump dello ShimCache in una short list di host e file degni di indagine.

Workflow in cinque passi per cacciare malware con lo ShimCache

Il workflow in cinque passi

  1. Raccogli la hive SYSTEM. Estraila offline da C:\Windows\System32\config\SYSTEM (con i suoi .LOG1 / .LOG2) o usa un collettore live come Velociraptor. Per il quando della scrittura, vedi Dove è memorizzato lo ShimCache.
  2. Parsea in una lista piatta. Decodifica il blob binario in righe (percorso, mtime, formato). Lo Shimcache Parser lo fa nel browser; i parser di riferimento offline.
  3. Filtra percorsi sospetti. Qui inizia la caccia — cerchi pattern, non singole righe.
  4. Corrobora l'esecuzione. Un hit ShimCache prova esistenza, non esecuzione. Combina ogni riga interessante con Prefetch, AmCache o log eventi (riferimento).
  5. Pivota sull'hash. Quando il file su disco è sparito, l'SHA-1 di AmCache è l'aggancio per VirusTotal / TI (perché entrambi gli artefatti).

Pattern da filtrare

Questi sono i pattern di percorso che i cacciatori valutano di più in pratica:

  • Directory scrivibili dall'utente: \AppData\Local\Temp\, \AppData\Roaming\, \Users\Public\, \ProgramData\ — posti dove utenti e servizi possono rilasciare binari senza permessi admin.
  • Sistema scrivibile dove non dovrebbe: C:\Windows\Temp\, C:\PerfLogs\, C:\Recycler\$Recycle.Bin\ — qualsiasi cosa sotto C:\Windows\ che non sia un percorso Windows noto.
  • Doppie estensioni / mimic di binari di sistema: svchost.exe fuori da \System32\, lsass.exe in posti inusuali, *.pdf.exe, *.docx.exe.
  • Condivisioni di rete e media rimovibili: \\?\UNC\, lettere di unità diverse da C:, \Device\HarddiskVolumeShadowCopy*.
  • Strumenti one-shot: psexec.exe, winrm.cmd, wmiexec.exe, artefatti cobaltstrike — gli strumenti amministrativi legittimi sono spesso abusati.

Non essere troppo astuto con le regex al primo passaggio. Ordina per mtime e scorri visivamente le voci recenti — così trovi cose che i filtri euristici perdono.

Regole di triage

Quando una riga sembra interessante, alcuni controlli rapidi separano segnale da rumore:

  • C'è un Prefetch corrispondente? Quasi prova di esecuzione.
  • AmCache ha un SHA-1? Cercalo. Un hash pulito firmato dal vendor fa de-prioritizzare in fretta.
  • L'mtime è sospettosamente vicino a un evento noto? Un binario modificato nei minuti vicini a un allarme merita uno sguardo più attento.
  • La directory padre è il profilo dell'utente, ma l'utente non dovrebbe essere admin? Plausibile, ma sorveglia indicatori di elevazione (Sysmon 4688 con token elevati).

Cosa questo workflow non dice

Lo ShimCache da solo non ti dice chi ha lanciato il binario, con quali argomenti, né quando. Per questo serviranno Sysmon, log Security o una timeline completa di esecuzione. Il compito dello ShimCache è mettere nomi sulla tua lista di caccia — non chiudere l'indagine da solo.

Approfondimenti

Articoli correlati