Skip to content

ShellBags vs fichiers LNK, Jump Lists et RecentDocs

Quatre artefacts d'activité comparés : ce qu'enregistrent ShellBags, fichiers LNK, Jump Lists et RecentDocs, ce qu'ils prouvent et leurs angles morts.

Publié le 6 min de lecture

TL;DR. Les ShellBags répondent à « quels dossiers cet utilisateur a-t-il parcourus ? ». Les fichiers LNK et les Jump Lists répondent à « quels fichiers (et dossiers) a-t-il ouverts, avec quelle application, et quand ? ». RecentDocs répond à « qu'a-t-il ouvert récemment, par extension ? » sous une forme compacte dans le registre. Les quatre sont propres à chaque utilisateur et utilisent le même format de shell item. Ce sont des témoins complémentaires : les ShellBags donnent l'étendue côté dossiers, les autres la profondeur côté fichiers.

Quand je relis une chronologie d'activité utilisateur, l'erreur structurelle la plus fréquente consiste à utiliser l'un de ces artefacts à la place d'un autre : « pas de fichier LNK, donc l'utilisateur n'y est jamais allé », ou « les ShellBags montrent le dossier, donc l'utilisateur a ouvert le tableur ». Cet article pose ce que chacun peut contenir.

Vue d'ensemble

ShellBagsFichiers LNKJump ListsRecentDocs
StockageUsrClass.dat + NTUSER.DAT, Shell\BagMRU%APPDATA%\Microsoft\Windows\Recent\*.lnk...\Recent\AutomaticDestinations\*.automaticDestinations-ms, CustomDestinations\*.customDestinations-msNTUSER.DAT Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
Unité enregistréeDossierFichier ou dossier cibleÉlément par application (AppID)Nom de fichier ou de dossier, par extension
Créé parLa navigation/sélection de dossiers dans l'Explorateur et les boîtes de dialogueL'ouverture d'un fichier via le shellL'ouverture d'éléments avec une application qui utilise les jump listsLe suivi des « documents récents » du shell (SHAddToRecentDocs)
Dates clésLastWrite de clé, dernière interaction dérivée du MRU, dates MAC du dossierCréation/modification du LNK, dates MAC de la cibleDernier accès par entrée dans DestListLastWrite de clé + ordre MRUListEx
Contexte supplémentaireRéférence MFT du dossier, chemin UNC, chemin d'archiveNuméro de série du volume, type de lecteur, nom NetBIOS, adresse MAC de la machine (bloc tracker)Identité de l'application, nombre d'accès sur les versions récentes, données LNK embarquéesOrdre d'utilisation par extension
Prouve l'accès à un fichierNonOuiOuiOui
Survit à la suppression de la cibleOuiOuiOuiOui

Références de structure : MS-SHLLINK pour les LNK, le format Jump lists de libyal, et le format des shell items de libfwsi, commun aux quatre. Le poster SANS Windows Forensic Analysis les classe sous « ouverture de fichiers/dossiers ».

Quand les ShellBags l'emportent

  • Parcourir sans ouvrir. Un utilisateur qui explore un partage pour voir ce qu'il contient, ou vérifie qu'une copie vers une clé USB est terminée, n'ouvre souvent rien. Seuls les ShellBags s'en souviennent.
  • L'étendue au niveau des dossiers. Chaque parent de chaque chemin parcouru est enregistré. Vous voyez la structure d'un lecteur amovible exploré par l'utilisateur, pas seulement le fichier ouvert.
  • La longévité. Les fichiers LNK de Recent sont purgés et les entrées de Jump Lists vieillissent par application. Les ShellBags persistent bien plus longtemps sur un profil ordinaire (sous réserve des limites décrites dans limites des ShellBags).
  • Les dossiers supprimés. La référence MFT du shell item permet de tester si l'enregistrement du dossier a été réutilisé. Voir dossiers supprimés.

Quand les fichiers LNK et les Jump Lists l'emportent

  • La preuve au niveau du fichier. Ils nomment le fichier ouvert. Les ShellBags en sont incapables.
  • L'identité du périphérique. Les fichiers LNK contiennent le numéro de série du volume et le type de lecteur de la cible, ce qui relie un fichier ouvert à un volume USB précis. Un ShellBag ne donne qu'une lettre de lecteur.
  • Le contexte applicatif. Une Jump List est propre à un AppID : vous savez que le fichier a été ouvert, par exemple, dans le gestionnaire ZIP par défaut ou dans un client Bureau à distance.
  • De meilleures dates pour le fichier. La date de création du LNK approche la première ouverture, sa date de modification la dernière ouverture (via ce raccourci).

Quand RecentDocs aide

RecentDocs est un index compact, par utilisateur, des éléments ouverts récemment, avec une sous-clé par extension et une sous-clé Folder, chacune avec son propre MRUListEx. Il sert à trier « ce qui a été ouvert le plus récemment » par type et à repérer des extensions inhabituelles pour l'utilisateur (.ps1, .7z, .kdbx). Il stocke des noms, pas des chemins complets : associez-le aux fichiers LNK pour le chemin. Des listes voisines sous ComDlg32 (OpenSavePidlMRU, LastVisitedPidlMRU) enregistrent les fichiers et dossiers utilisés dans les boîtes de dialogue Ouvrir/Enregistrer, par extension et par application.

Les utiliser ensemble : un schéma type

Une séquence hypothétique, qui prolonge l'échantillon fictif du site (le nom de fichier et les détails LNK sont inventés pour l'illustration) :

  1. Les ShellBags placent l'utilisateur dans \\FILESRV01\Finance\Board à 10:36 (dérivé du MRU).
  2. Les LNK/Jump Lists montrent Q3_board_pack.pdf ouvert depuis ce partage à 10:37.
  3. La sous-clé .pdf de RecentDocs contient le même nom en position 0.
  4. Les ShellBags montrent ensuite E:\exfil\finance_2026 parcouru à 10:45 ; un fichier LNK pointant vers un fichier de ce dossier porte le numéro de série du volume E:, que vous rapprochez de l'historique des périphériques USB de la ruche SYSTEM et des journaux d'événements (parseur EVTX).

Chaque artefact couvre les angles morts des autres. L'absence de l'un ne rend pas le récit faux ; elle vous indique où chercher ensuite.

Interpréter l'absence

  • ShellBag présent, pas de LNK. Le dossier a été parcouru ; soit aucun fichier n'a été ouvert via le shell, soit le LNK a été purgé ou supprimé. Ce n'est pas une preuve d'accès à un fichier.
  • LNK présent, pas de ShellBag pour son dossier. Le fichier a pu être ouvert depuis un chemin jamais parcouru (un lien dans un e-mail, une ligne de commande, la liste récente d'une application), ou les ShellBags ont été nettoyés.
  • Aucun des deux. Envisagez une activité en console ou scriptée, un autre compte, ou de l'anti-forensique. Les artefacts d'exécution comme Prefetch, Amcache et la base SRUM peuvent montrer quels outils ont tourné.

FAQ

Quel artefact prouve qu'un fichier a été ouvert, les ShellBags ou les fichiers LNK ?

Les fichiers LNK, les Jump Lists et RecentDocs enregistrent les fichiers ouverts. Les ShellBags n'enregistrent que les dossiers parcourus ou sélectionnés.

Pourquoi extraire les ShellBags si j'ai déjà les fichiers LNK ?

Parce que les utilisateurs parcourent de nombreux dossiers sans y ouvrir de fichier, et que les ShellBags conservent ces dossiers, y compris sur des supports amovibles et des partages, bien après la rotation ou la suppression des fichiers LNK.

Articles liés

Articles liés