Jump List Parser
Retour au blog

Comprendre les Jump Lists de Windows

2026-05-183 min de lecture

Comprendre les Jump Lists de Windows

Les Jump Lists ont été livrées dans Windows 7 pour donner aux utilisateurs un accès rapide aux fichiers récemment et fréquemment utilisés par application. Pour un analyste DFIR, c'est tout autre chose : un enregistrement par utilisateur et par application d'interaction avec les fichiers qui survit à la suppression du fichier cible et survit fréquemment aux tentatives de l'utilisateur de l'effacer. Si vous ne tirez pas déjà les Jump Lists sur chaque engagement "qu'a touché cet utilisateur ?", vous passez à côté de la source la moins chère de cette réponse.

Commencez par l'introduction aux Jump Lists Windows si vous arrivez à froid. Sinon, la version courte est ci-dessous.

Deux fichiers, deux auteurs

  • AutomaticDestinations (*.automaticDestinations-ms), un OLE Compound File écrit par la shell. Chaque flux numéroté est un shell link (LNK) Windows. Un seul flux DestList les ordonne et enregistre les horodatages d'accès, les compteurs d'accès, le nom NetBIOS d'origine et les GUID de volume / objet. C'est ce que Windows vous dit sur l'utilisateur.
  • CustomDestinations (*.customDestinations-ms), un flux d'octets plat écrit par l'application elle-même via ICustomDestinationList. Catégories de structures LNK concaténées dos à dos, terminées par 0xBABFFBAB. C'est ce que l'application a demandé à la shell d'afficher.

Les deux résident sous %AppData%\Microsoft\Windows\Recent\(Automatic|Custom)Destinations\ et utilisent la même dénomination <AppID>.<extension>. L'AppID est un CRC64 tronqué sur le chemin de l'exécutable, le même binaire au même chemin produit la même AppID sur chaque machine, ce qui rend les listes d'AppID publiées utiles pour le triage. Voir où Windows stocke les fichiers Jump List pour les chemins par utilisateur et les notes d'acquisition.

Ce que vous obtenez réellement de l'un d'eux

Après parsing, par entrée : le chemin cible complet (local, UNC ou amovible), trois FILETIMEs de l'en-tête LNK incorporé, un horodatage et un compteur d'accès DestList, le drapeau épinglé, le nom NetBIOS enregistré au moment de l'accès, le numéro de série et l'étiquette du volume, les arguments de ligne de commande et le répertoire de travail s'ils sont présents, et le TrackerDataBlock avec ses GUID droid (qui incluent l'adresse MAC de la machine ayant créé le LNK).

Cet ensemble couvre les questions que le cas pose réellement : qui l'a ouvert, quand, d'où et depuis quel disque physique. Le champ hostname est celui auquel j'ai le plus souvent recours dans le travail de mouvement latéral, la Jump List sur l'endpoint compromis se souvient du nom NetBIOS du serveur de staging longtemps après que le serveur de staging a disparu.

Pourquoi parser dans le navigateur

La chaîne de garde compte en DFIR. Tout comme le fait que les Jump Lists d'environnements régulés contiennent presque toujours des PII d'utilisateurs et des chemins de documents que vous ne voulez pas voir franchir une frontière de fournisseur. Le parser sur ce site compile un crate Rust en WebAssembly et l'exécute entièrement côté client. Pas de téléversement, pas de journalisation côté serveur, pas de télémétrie. Déposez un fichier, obtenez la vue parsée.

Pour un regard côte à côte sur les autres options (JLECmd, JumpListExplorer, Jumplist-Browser de Kacos2000), voir la comparaison d'outils. Pour une enquête étape par étape, le guide DFIR est la prochaine lecture. Vous essayez plutôt de supprimer l'historique Jump List ? Voir comment vider ou supprimer les Jump Lists de Windows, mais lisez la section sur ce qui survit au vidage avant de lui faire confiance.

Pour aller plus loin