Chasser les malwares avec le ShimCache : un workflow pas à pas

4 min de lecture

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.

Workflow en cinq étapes pour chasser les malwares avec ShimCache

Le workflow en cinq étapes

  1. 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.
  2. 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.
  3. Filtrer les chemins suspects. C'est ici que commence la chasse — vous cherchez des motifs, pas des lignes isolées.
  4. 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).
  5. 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 sous C:\Windows\ qui n'est pas un chemin Windows connu.
  • Doubles extensions / imitations de binaires système : svchost.exe hors de \System32\, lsass.exe à un emplacement inhabituel, *.pdf.exe, *.docx.exe.
  • Partages réseau et supports amovibles : \\?\UNC\, lettres de lecteur autres que C:, \Device\HarddiskVolumeShadowCopy*.
  • Outillage one-shot : psexec.exe, winrm.cmd, wmiexec.exe, artefacts cobaltstrike — 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

Articles connexes