Aller au contenu

Analyse d'Artefact : Jumplists Windows

La philosophie principale derrière les Jumplists est l’amélioration de la productivité. Lorsqu’un utilisateur effectue un clic droit sur l’icône d’une application dans la barre des tâches, la liste des documents ou tâches qui apparaît est générée par les données de la Jumplist.

Contrairement à l’horodatage de “Dernier accès” du système de fichiers, qui peut se révéler peu fiable ou être désactivé par défaut sur les environnements Windows modernes, les Jumplists sont activement maintenues par le système d’exploitation chaque fois qu’une interaction a lieu via les boîtes de dialogue standard d’une application.

Lorsqu’un fichier est ouvert via une application (ex: ouverture d’un document .docx via WINWORD.EXE), le shell Windows enregistre cette interaction. Il génère ou met à jour un fichier binaire spécifique à l’utilisateur et à l’application, stockant de riches métadonnées sur le fichier cible sous la forme d’un fluxfichier LNK (raccourci) embarqué.

Ces artefacts sont stockés dans le profil de l’utilisateur et sont classés en deux catégories distinctes selon leur méthode de génération.

Il s’agit des listes générées automatiquement par le système d’exploitation au fil des interactions de l’utilisateur.

  • Chemin : C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\
  • Convention de nommage : [AppID].automaticDestinations-ms

Ces listes sont générées par l’application elle-même, souvent pour épingler des fichiers spécifiques ou fournir des tâches personnalisées.

  • Chemin : C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations\
  • Convention de nommage : [AppID].customDestinations-ms

Les fichiers de Jumplists ne sont pas de simples journaux textuels ; ce sont des fichiers composés OLE (OLECF) complexes. Leur analyse révèle des métadonnées hautement structurées, chaque entrée contenant des flux LNK embarqués (nommés DestList) :

  • Chemin du fichier cible : le chemin absolu du fichier accédé.
  • Horodatages de la cible : les dates de création, de modification et d’accès du fichier cible au moment exact où l’entrée de la Jumplist a été créée ou mise à jour.
  • Horodatage de l’interaction : la date de modification de l’entrée Jumplist elle-même, indiquant le moment précis de l’interaction de l’utilisateur.
  • Informations sur le volume : des détails sur le support de stockage, incluant les numéros de série de volume et les types de disques (local, réseau, amovible).
  • Adresse MAC : l’adresse MAC de la machine hébergeant le fichier cible, une donnée cruciale lors de l’investigation d’accès à des partages réseau latéraux.

Les Jumplists permettent de répondre à la question critique en investigation : “Qu’est-ce que l’utilisateur ou l’attaquant a fait exactement avec ce programme ?”

Si les fichiers Prefetch (.pf) prouvent qu’un exécutable (comme powershell.exe) a été lancé, ils n’indiquent pas intrinsèquement les arguments ou les fichiers manipulés. En examinant la Jumplist de PowerShell, un investigateur peut identifier le script .ps1 exact qui a été exécuté par l’acteur malveillant.

Durant la phase de préparation (staging) d’une attaque, les adversaires compressent souvent les données avant exfiltration. Si des outils comme 7-Zip, WinRAR, ou des clients FTP comme FileZilla sont utilisés, leurs Jumplists respectives consigneront les répertoires et fichiers spécifiques que l’attaquant a manipulés.

Puisque les Jumplists maintiennent une base de données de métadonnées indépendante, elles préservent l’historique des fichiers et dossiers longtemps après que les données réelles aient été effacées ou supprimées du disque par un attaquant.

En raison de leur nature binaire complexe, l’analyse manuelle des Jumplists est irréaliste. Les analystes DFIR s’appuient sur des utilitaires de parsing spécialisés.

  1. Acquisition : extraire les répertoires AutomaticDestinations et CustomDestinations du profil de l’utilisateur suspect.
  2. Parsing : exécuter un parseur dédié pour extraire les flux OLE et reconstruire les métadonnées LNK embarquées.
  3. Corrélation : croiser les horodatages d’interaction avec les Shellbags pour obtenir le contexte de navigation dans les dossiers, et avec le Prefetch pour la chronologie d’exécution des applications.

JLECmd

Faisant partie de la suite d’Eric Zimmerman, JLECmd.exe est le standard de l’industrie pour le parsing des Jumplists, offrant un traitement ultra-rapide et une sortie CSV détaillée.

JumpLister

Développé par Digital Forensics Corp, cet outil fournit une interface graphique pour les analystes préférant une exploration visuelle du contenu des Jumplists et la résolution automatisée des AppIDs.