Jump List Parser
Retour au blog

Jump Lists vs ShellBags vs Prefetch : quel artefact répond à quoi

2026-06-155 min de lecture

L'erreur, c'est de demander "que contient cet artefact" au lieu de "à quelle question cet artefact répond". Les conteneurs se recoupent. Les questions, non. Quand un dossier atterrit sur votre bureau, il arrive sous forme de question, en général l'une de trois : cet utilisateur a-t-il ouvert ce fichier, cet utilisateur a-t-il exécuté ce programme, cet utilisateur est-il allé fouiller ces dossiers. Des artefacts différents, et attraper le mauvais fait perdre des heures.

C'est la carte que je garde en tête. Elle est tranchée sur ce à quoi chaque source sert réellement, ce n'est pas une liste de fonctionnalités.

"L'utilisateur a-t-il ouvert ce fichier ?"

Commencez par les Jump Lists. Elles enregistrent les fichiers ouverts via une application participante, et de façon unique parmi les artefacts courants, elles portent le nom d'hôte NetBIOS de la machine qui détenait le fichier au moment de l'accès, ce qui leur vaut leur place dans le travail sur le mouvement latéral. Les limites sont réelles cependant : une entrée DestList ne stocke que le dernier accès à cette cible, pas tout l'historique, et une Jump List n'existe que pour les applications qui dialoguent avec le mécanisme d'éléments récents du shell. Beaucoup de logiciels ouvrent des fichiers sans jamais en générer une. Le guide DFIR couvre le jeu de champs en détail.

Le dossier LNK Récent (%AppData%\Microsoft\Windows\Recent) se recoupe largement : des fichiers raccourcis individuels pour les éléments récemment touchés, analysables jusqu'au chemin cible intégré et aux dates de l'en-tête LNK. Une couverture d'applications plus large que les Jump Lists dans certains cas, mais pas de regroupement par application et pas de compteur d'accès.

Puis le recoupement. UserAssist dans NTUSER.DAT (lisez-le avec le parseur de registre) confirme qu'un lancement GUI a eu lieu et suit le temps de focus. Le journal USN est l'enregistrement propre au système de fichiers que la cible existait et a été créée, modifiée ou supprimée à un moment donné. Aucune de ces sources seule ne signifie "l'utilisateur a ouvert ce fichier". Empilées, elles sont difficiles à contester.

"L'utilisateur a-t-il exécuté ce programme ?"

C'est le territoire du Prefetch, pas des Jump Lists. Le Prefetch enregistre l'exécution : qu'un binaire s'est exécuté, le compteur d'exécutions, les premières et dernières huit dates d'exécution sur Windows moderne, et les fichiers et dossiers que le processus a touchés au démarrage. Si la question est l'exécution, Prefetch est la source principale et les Jump Lists sont au mieux un corroborant faible.

Les gens confondent les deux parce qu'une Jump List implique que son application propriétaire s'est exécutée. Vrai, mais indirectement, et vous n'en tirez pas un compteur d'exécutions ni une chronologie d'exécution propre. Pour l'histoire de l'exécution, vous voulez Prefetch plus UserAssist plus AmCache et ShimCache, ces deux derniers prouvant qu'un binaire était présent et connu du système même s'il n'a jamais été exécuté, ce qui est un fait différent et parfois plus important.

Une subtilité pratique : le Prefetch peut être désactivé, et l'est fréquemment sur les images de l'ère SSD et sur les serveurs. Quand il est désactivé, la question de l'exécution s'appuie davantage sur AmCache, la base de données SRUM pour l'usage des ressources applicatives, et les preuves de lancement dans les Jump Lists et UserAssist. Donc les Jump Lists remontent dans la liste des priorités précisément quand le Prefetch manque.

"L'utilisateur a-t-il parcouru ces dossiers ?"

Les ShellBags, et rien d'autre ne fait bien ce travail. Les ShellBags persistent l'état d'affichage par dossier de l'Explorateur, ce qui signifie qu'ils enregistrent qu'un dossier a été parcouru dans l'Explorateur, y compris son nom et sa position, et ils survivent à la suppression du dossier ou au démontage du volume. Une entrée ShellBag pour un dossier qui n'existe plus est l'une des preuves les plus nettes que quelque chose était là et que quelqu'un l'a regardé. Ils résident dans UsrClass.dat et NTUSER.DAT, donc le parseur de registre est votre outil.

Ce que les ShellBags ne donnent pas, c'est l'accès au niveau du fichier. Ils concernent les dossiers et la navigation, pas le document à l'intérieur du dossier qui a été ouvert. C'est le passage de relais vers les Jump Lists et le LNK Récent.

Où ils se recoupent, et où ils vous mentent

Le recoupement est réel et utile : un disque amovible branché, des fichiers ouverts dessus, et des dossiers parcourus dessus laisseront des traces dans les Jump Lists (chemin cible plus étiquette de volume), les ShellBags (les dossiers), et le Prefetch (tout ce qui a été exécuté depuis). Trois artefacts indépendants convergeant vers le même GUID de volume et la même fenêtre temporelle est une corrélation forte, et la corrélation entre sources indépendantes est tout le jeu.

Les angles morts sont là où les dossiers déraillent :

  • Les Jump Lists ne gardent que le dernier accès par cible, donc "ouvert une fois" est une limite de l'artefact, pas un fait sur l'utilisateur.
  • Les compteurs Prefetch peuvent être réinitialisés et l'artefact désactivé, donc l'absence ne prouve rien.
  • Les ShellBags peuvent être créés par un accès aux dossiers automatisé ou programmatique, pas seulement par un humain cliquant dans l'Explorateur, donc "l'utilisateur a parcouru ici" surinterprète parfois.
  • Tous sont effaçables par l'utilisateur à divers degrés, et un artefact effacé a son propre indice. Pour les Jump Lists en particulier, voyez l'article sur la chronologie et l'anti-forensique.

La version courte

Si la question porte sur les fichiers, commencez par les Jump Lists et le LNK Récent, corroborez avec UserAssist et le journal USN. Si la question porte sur l'exécution, commencez par le Prefetch, corroborez avec AmCache, ShimCache et SRUM. Si la question porte sur la navigation, les ShellBags, et acceptez qu'ils ne vous diront pas ce qui a été ouvert. La plupart des vrais dossiers sont les trois questions à la fois, c'est pourquoi ces artefacts valent la peine d'être connus comme un ensemble plutôt qu'isolément.

Déposez une Jump List sur la page d'accueil pour l'analyser côté client, et le reste des outils de parsing forensique couvre les autres artefacts de cet article.