TL;DR. Analysez la ruche SYSTEM → filtrez les chemins en zones inscriptibles par l'utilisateur (AppData, Temp) et chemins système inattendus → corroborez les hits avec les hashs AmCache et Prefetch → pivotez sur le SHA-1 quand le fichier a disparu. Le ShimCache met des noms sur votre liste de chasse ; il ne ferme pas l'enquête seul.
Le ShimCache est l'un des points de pivot à plus fort signal dans le threat hunting Windows : il enregistre les exécutables que Windows a examinés, y compris ceux qui ont été supprimés depuis. Ce billet est un workflow concret pour transformer un dump ShimCache en une short list d'hôtes et de fichiers à investiguer.
Le workflow en cinq étapes
- Collecter la ruche SYSTEM. Récupérez le fichier hors ligne depuis
C:\Windows\System32\config\SYSTEM(plus ses fichiers.LOG1/.LOG2) ou utilisez un collecteur en direct comme Velociraptor. Pour comprendre quand le cache est réellement écrit, voir Où est stocké le ShimCache. - Parser vers une liste plate. Décodez le blob binaire en lignes
(chemin, mtime, format). Le Shimcache Parser le fait dans votre navigateur ; les parsers de référence le font hors ligne. - Filtrer les chemins suspects. C'est ici que commence la chasse — vous cherchez des motifs, pas des lignes isolées.
- Corroborer l'exécution. Un hit ShimCache prouve l'existence, pas l'exécution. Couplez chaque ligne intéressante à Prefetch, AmCache ou aux journaux d'événements (référence).
- Pivoter sur le hash. Quand le fichier sur disque a disparu, le SHA-1 d'AmCache est votre point d'entrée pour VirusTotal / la threat intel (pourquoi les deux artefacts).
Les motifs à filtrer
Ces motifs de chemin sont ceux que les chasseurs notent le plus haut en pratique :
- Répertoires accessibles en écriture par l'utilisateur :
\AppData\Local\Temp\,\AppData\Roaming\,\Users\Public\,\ProgramData\— endroits où utilisateurs et services peuvent déposer des binaires sans droits admin. - Système accessible en écriture là où il ne devrait pas l'être :
C:\Windows\Temp\,C:\PerfLogs\,C:\Recycler\$Recycle.Bin\— tout sousC:\Windows\qui n'est pas un chemin Windows connu. - Doubles extensions / imitations de binaires système :
svchost.exehors de\System32\,lsass.exeà un emplacement inhabituel,*.pdf.exe,*.docx.exe. - Partages réseau et supports amovibles :
\\?\UNC\, lettres de lecteur autres queC:,\Device\HarddiskVolumeShadowCopy*. - Outillage one-shot :
psexec.exe,winrm.cmd,wmiexec.exe, artefactscobaltstrike— les outils d'admin légitimes sont souvent détournés.
Ne soyez pas trop malin avec les regex au premier passage. Triez par mtime et parcourez visuellement les entrées récentes — vous y trouverez ce que les filtres heuristiques manquent.
Règles de triage
Quand une ligne semble intéressante, quelques vérifications rapides séparent le signal du bruit :
- Y a-t-il un Prefetch correspondant ? C'est quasi une preuve d'exécution.
- AmCache a-t-il un SHA-1 ? Lookup. Un hash signé par un éditeur propre vous fait dé-prioriser vite.
- Le mtime est-il suspicieusement proche d'une heure d'incident connue ? Un binaire modifié à quelques minutes d'une alerte mérite un examen plus poussé.
- Le répertoire parent est-il le profil de l'utilisateur, alors qu'il ne devrait pas être admin ? Possible, mais surveillez les indicateurs d'élévation (Sysmon 4688 avec tokens élevés).
Ce que ce workflow ne dit pas
Le ShimCache ne vous dira pas à lui seul qui a lancé le binaire, avec quels arguments, ni quand. Pour cela, il vous faudra Sysmon, les journaux Security, ou une chronologie complète d'exécution de programmes. Le rôle du ShimCache est de mettre des noms sur votre liste de chasse — pas de clore l'enquête seul.
Pour aller plus loin
- AppCompatCacheParser d'Eric Zimmerman — parser hors ligne de référence.
Windows.Registry.AppCompatCachede Velociraptor — collecte à grande échelle.- ShimCache & AmCache forensic analysis (Mehrnoush) — étude basée sur des cas.