Rilevare il movimento laterale con lo ShimCache

3 min di lettura

TL;DR. Gli strumenti di movimento laterale — PsExec, wmic, at/schtasks, PowerShell remoto — lasciano voci ShimCache sull'host destinazione (il binario di servizio rilasciato) e spesso sulla sorgente. Confrontare l'AppCompatCache tra molti host fa emergere il percorso seguito dall'attaccante.

Lo ShimCache è di solito inquadrato come artefatto mono-host. Ma la sua vera potenza nella IR è inter-host: lo stesso strumento, esaminato per compatibilità su ogni macchina che tocca, lascia una traccia correlabile. Questo articolo riguarda la lettura di quella traccia.

Come appare il movimento laterale nello ShimCache

Le tecniche di esecuzione remota rilasciano o invocano un eseguibile sulla destinazione. Ognuna lascia un percorso caratteristico:

TecnicaIndizio ShimCache sulla destinazione
PsExec / exec. servizio SMBC:\Windows\PSEXESVC.exe o un binario di servizio a 8 caratteri casuali in C:\Windows\
sc \\host createBinario di servizio nominato dall'attaccante, spesso in C:\Windows\ o \PerfLogs\
WMI (wmic process call create)Percorso del payload sotto C:\Windows\Temp\ o una cartella scrivibile
Attività pianificata (schtasks /s)Binario di azione dell'attività, spesso C:\Users\Public\
PowerShell remotopowershell.exe più qualsiasi .exe rilasciato che ha predisposto

Un binario di servizio con nome casuale in C:\Windows\ è uno dei riscontri ShimCache a più alto segnale che esistano — trattato come regola di triage in caccia al malware con lo ShimCache.

Il lato host sorgente

L'host di origine mostra spesso voci ShimCache per lo strumento d'attacco stesso: PsExec.exe, wmic.exe usato in modo interattivo, un mover su misura o framework di post-exploitation. Accoppiare «strumento sull'host A» con «binario di servizio sull'host B» entro una finestra plausibile è l'inferenza centrale del movimento laterale.

Il flusso di confronto inter-host

  1. Raccogli le hive SYSTEM di ogni host in scope (vedi acquisire una hive SYSTEM).
  2. Analizza ciascuna ed esporta in CSV.
  3. Normalizza i percorsi e confronta i binari condivisi e insoliti — lo stesso nome di servizio casuale o lo stesso percorso di staging che appare su più host è il percorso di movimento.
  4. Ordina gli host per l'ordine di inserimento dello ShimCache (non la marca temporale — è il mtime del file, non un'ora di evento).
  5. Conferma ogni salto con Security 4624/4648, eventi 7045 di installazione servizio e AmCache.

Questo si fonde naturalmente in una linea temporale completa di esecuzione dei programmi. Mappa le tecniche su ATT&CK T1021 (Remote Services) e T1570 (Lateral Tool Transfer) per il report.

Avvertenze

Lo ShimCache flusha solo allo spegnimento pulito; un host ancora acceso potrebbe non aver ancora scritto la voce decisiva — controlla la memoria (estrazione da un dump di memoria). E la marca temporale non sequenzia mai i salti da sola; affidati all'ordine di inserimento più i log eventi. Gli attaccanti che cancellano il valore lasciano un loro indizio — vedi anti-forense dello ShimCache.

Per confrontare rapidamente le hive, analizza ciascuna con lo Shimcache Parser, esporta CSV e confronta — tutto lato client.

Approfondimenti

Articoli correlati