Forensique des Jump Lists : un parcours pratique DFIR
Les Jump Lists fournissent à un analyste DFIR un enregistrement de l'accès aux fichiers par application et par utilisateur : le chemin cible complet de chaque élément ouvert, le FILETIME du dernier accès et un compteur d'accès monotone, le nom d'hôte NetBIOS de la machine qui hébergeait initialement le fichier, l'état épinglé, l'identité de l'application via son AppID, et un identifiant de volume qui peut rattacher une entrée à un lecteur amovible spécifique. Ce qui suit est le workflow pour extraire ces données et les intégrer à un rapport.
Quelles preuves les Jump Lists fournissent
- Chemin cible de l'élément ouvert (local, UNC ou amovible).
- Horodatage du dernier accès (FILETIME, UTC) et compteur d'accès par entrée.
- Nom d'hôte NetBIOS d'origine enregistré au moment de l'accès.
- État épinglé — cet élément a-t-il été épinglé par l'utilisateur à la Jump List.
- AppID, qui identifie de manière déterministe l'application lanceuse.
- Identifiant et libellé de volume issus du LNK embarqué, utiles pour la corrélation avec des supports amovibles.
- Horodatages MAC et taille du fichier cible tels qu'observés lors de l'écriture du LNK.
Un workflow DFIR en 5 étapes
- Acquérir. Récupérer
%AppData%\Microsoft\Windows\Recent\AutomaticDestinationset le dossier voisinCustomDestinationspour chaque profil utilisateur. Travailler à partir d'une image forensique ou d'une copie VSS — les fichiers en cours d'utilisation sont généralement verrouillés par Explorer. KAPE dispose d'une cible pour cela ; sinonrobocopy /bdepuis une shadow copy montée fonctionne. - Trier. Lister les AppIDs (noms de fichiers sans l'extension) et les
associer aux applications. Utiliser la liste d'AppIDs fournie avec
JLECmdd'Eric Zimmerman comme référence ; tout ce qui n'est pas répertorié mérite un examen plus approfondi, car les applications personnalisées et portables génèrent leurs propres AppIDs. - Analyser. Extraire chaque flux LNK numéroté et les lignes
DestList.JLECmdproduit du CSV ; Plaso/log2timelineémet des événements de timeline ; Autopsy les expose dans ses résultats d'ingestion. Pour une revue ponctuelle sans déplacer l'artefact hors du poste d'analyste, déposez le fichier sur le parseur en navigateur — il s'exécute côté client et ne téléverse jamais rien. - Corréler. Aligner les horodatages d'accès DestList avec la timeline
de la session interactive de l'utilisateur : Security log
4624/4634pour le logon et le logoff, la clé de registreUserAssistpour les lancements GUI, et Prefetch pour l'exécution de processus. Les artefacts mémoire via Volatility peuvent confirmer que l'application était effectivement résidente à ce moment-là. - Rapporter. Citer chaque constat par fichier source, numéro de flux et
identifiant d'entrée DestList — par exemple,
1b4dd67f29cb1962.automaticDestinations-ms, flux7, entrée DestList0x12. La reproductibilité est ce qui fait tenir le constat.
Preuves inter-hôtes : le champ nom d'hôte
Chaque ligne DestList porte le nom d'hôte NetBIOS de la machine depuis laquelle le fichier cible a été ouvert. Sur un poste qui monte des partages provenant de plusieurs serveurs, ce champ révèle quel serveur hébergeait chaque document ouvert — sans avoir besoin des journaux du serveur lui-même. Dans les enquêtes sur le mouvement latéral, une Jump List sur un hôte compromis contient fréquemment le nom du serveur de staging de l'attaquant longtemps après que le partage a été démonté.
Pièges courants
- FILETIME représente des intervalles de 100 nanosecondes depuis le
1601-01-01 UTC. La conversion vers l'epoch Unix nécessite de soustraire
11644473600secondes après division par10^7; les erreurs d'un jour ici sont la source la plus fréquente de timelines erronées. - Les versions de DestList diffèrent entre Windows 7 (version
1) et Windows 10+ (versions3et4). Les tailles de ligne et les offsets de champ changent — les anciens parseurs se désaligneront silencieusement sur des hôtes plus récents. - Certaines applications (Office, Explorer) épinglent des éléments de manière agressive et incrémentent les compteurs d'accès lors de l'indexation en arrière-plan, donc un compteur élevé n'est pas à lui seul la preuve d'une interaction utilisateur répétée.
- Les Paramètres de la barre des tâches comportent une bascule « Afficher les éléments récemment ouverts ». La désactiver tronque les fichiers par AppID. Les fichiers sont recréés à la prochaine utilisation, donc des DestLists anormalement courtes sont un indicateur à signaler.
Déposez un fichier Jump List sur la page d'accueil du parseur pour voir tout cela sans envoyer de données où que ce soit.