TL;DR. Ordre de priorité que j'utilise vraiment en triage : Prefetch (le plus fort quand activé), BAM/DAM (dernière exécution par utilisateur sur Win10+, criminellement sous-utilisé), AmCache (identification SHA-1), ShimCache (ancre d'existence), UserAssist (lancements initiés depuis Explorer uniquement). Aucun artefact ne ferme un dossier à lui seul. Triangule ou arrête de revendiquer une exécution.
Il n'y a pas un artefact Windows unique qui réponde parfaitement à "ce programme a-t-il tourné, quand, et par qui ?" Quiconque te dit le contraire n'a pas traité assez de dossiers, ou il te vend quelque chose. Ce qui marche, c'est une courte liste d'artefacts qui couvrent chacun un morceau de la question et l'habitude de croiser.
La courte liste
| Artefact | Emplacement | Enregistre | Fiabilité pour l'exécution |
|---|---|---|---|
| Prefetch | C:\Windows\Prefetch\*.pf | Chemin, compteur d'exécutions, 8 dernières heures d'exécution, fichiers chargés | Très élevée. Écrit uniquement au démarrage de processus. |
| AmCache | C:\Windows\AppCompat\Programs\Amcache.hve | Chemin, SHA-1, taille, éditeur, install + première exécution | Élevée. Horodatages d'exécution explicites. |
| ShimCache | Hive SYSTEM …\Session Manager\AppCompatCache | Chemin, mtime fichier | Moyenne. Prouve l'existence ; implique souvent (pas toujours) l'exécution. |
| UserAssist | NTUSER.DAT …\UserAssist (registry) | Lancements GUI par utilisateur via Explorer | Élevée, mais uniquement initiés par l'utilisateur, noms encodés en ROT13. |
| BAM / DAM | Hive SYSTEM …\bam\State et …\dam\State | Heure de dernière exécution par utilisateur de chaque binaire | Très élevée. Win10+, facile à parser, souvent oublié. |
Les lire dans l'ordre de priorité
1. Prefetch d'abord. Un fichier .pf est ce qui se rapproche le plus d'un "ticket de caisse" d'exécution sous Windows. Jusqu'à huit temps d'exécution, compteur total, liste des modules chargés. Les SKUs poste de travail laissent Prefetch activé par défaut. PECmd d'Eric Zimmerman est le parser canonique. Le parser Prefetch couvre le format si tu veux faire le tien.
2. BAM / DAM ensuite. Background et Desktop Activity Moderator étranglent les applis en arrière-plan et gardent des horodatages "dernière exécution" par utilisateur et par binaire dans le hive SYSTEM sous …\Services\bam\State et …\Services\dam\State. Présents sur Windows 10 et 11, peu bruyants, faciles à lire. J'ai bouclé des dossiers sur des lignes BAM que personne dans l'équipe IR d'origine n'avait pris la peine de récupérer.
3. AmCache en troisième. Soutient Prefetch sur les serveurs (où Prefetch est souvent désactivé) et sur les hôtes où l'attaquant a vidé le dossier Prefetch. Les hashs SHA-1 sont la killer feature : quand le fichier est supprimé, le hash est ta seule prise pour VirusTotal et le threat intel. Voir ShimCache vs AmCache.
4. ShimCache en quatrième. Ancre d'existence, pas revendication d'exécution. Le billet sur la preuve d'exécution couvre le raisonnement.
5. UserAssist en dernier. Preuve forte d'un lancement interactif via Explorer. Aveugle à tout ce qui est lancé depuis un shell, une tâche planifiée ou un service. Utile quand la question est "l'utilisateur a-t-il cliqué là-dessus ?". Lis-le avec n'importe quel outil registre qui gère ROT13 ; le registry parser le décode inline.
Ce qui mord
- Prefetch peut être désactivé. Les SSD, les SKUs serveur et les GPO le désactivent tous. Un Prefetch vide n'est pas une preuve d'absence.
- AmCache tourne. Les vieilles entrées finissent par disparaître. Récupère le hive tôt en triage.
- Les horodatages ShimCache sont la mtime du fichier. Pas l'heure d'exécution. Pas l'heure de flush. La mtime du fichier. Relis ça jusqu'à ce que ça reste.
- UserAssist est en ROT13. Trivial à décoder mais piège les lecteurs occasionnels.
- BAM est sous-utilisé. Peut-être le signal "ce binaire a-t-il tourné pour cet utilisateur ?" le plus propre sur Windows moderne.
Autres artefacts à connaître selon le dossier : RecentFileCache (legacy Win7), SRUM pour l'usage réseau et processus sur 30 jours, jump lists et fichiers LNK pour l'activité shell, la MFT et le journal USN pour les chronologies au niveau système de fichiers.
Tooling
Pour du parsing hors ligne à pleine fidélité, la suite d'outils d'Eric Zimmerman est le standard de facto. AppCompatCacheParser, AmcacheParser, PECmd, RBCmd, tous fiables. Velociraptor gère le triage live à l'échelle de la flotte. Spécifiquement pour le ShimCache, le Shimcache Parser lit un hive directement dans le navigateur sans rien installer.
Lectures complémentaires
- AppCompatCacheParser d'Eric Zimmerman. parser ShimCache de référence.
- Artefact ShimCache de Velociraptor. logique de collecte live.
- ShimCache & AmCache forensic analysis de Mehrnoush. analyse étendue basée sur des cas.