Bonjour à tous, aujourd’hui on continue la série Forensgeek avec l’usage des Jump Lists pour la forensics.
C’est quoi les Jump Lists ?
Alors vous voyez dans L’explorateur Windows quand vous cliquez avec le bouton droit sur un icône de la barre des tâches ? comme ci dessous ? bah c’est ça les jump lists simplement.
Comme les jumps lists sont gérées automatiquement par le système d’exploitation. leur analyse permet de mettre en avant l’exécution de programme ou l’accès à des fichiers. Un petit peu comme pour les Windows Shortcut Files vu la semaine dernière vous récupérerez au passage un timestamp des accès ainsi qu’un chemin ? Comme pour les Lnk, ca fonctionne également si le fichier ou programme source à été supprimé d’où l’intérêt pour la forensics.
C’est où les jump lists ?
Les Jump lists sont stockées dans le repertoire C:\Users\$Username\AppData\Roaming\Microsoft\Windows\Recent
Comme pour les shortcuts pour ceux qui suivent… en fait pas tout à fait, les Jump Lists sont stockées dans 2 sous dossier cachés : AutomaticDestinations
et CustomDestinations
. Elle se présente sous la forme de fichier au extensions .automaticDestinations-ms
et .customDestinations-ms
.
Le nom du fichier avant l’extension est en fait un identifiant de l’application auxquel correspond la Jump List. Cet identifiant est déterminé par l’OS de manière prédictible par le système, certain de ces identifiants sont donc « well known », par exemple sur forensics wiki :
https://forensicswiki.xyz/wiki/index.php?title=List_of_Jump_List_IDs
Les fichiers Automatic Destinations sont en fait des fichiers « composés » (OLECF) de plusieurs éléments. Les éléments en questions sont simplement des raccourcis. Comme pour un fichier .docx, il s’agit littéralement d’une archive zip contenant d’autres éléments. La preuve en image, les fichiers s’ouvrent directement avec 7-zip.
De l’autre côté les fichiers .customDestinations-ms
sont une concaténation « brute » de fichier LNK au format MS-SHLLINK. La c’est un peu plus compliqué à déconstruire comme structure de fichier mais la lecture des sources des programmes opensource indiqué dans la section suivante vous donneront une bonne idée du format de données.
Comment on collecte les informations des Jump Lists ?
La encore, il existe pas mail d’options pour collecter les informations des jump Lists :
- JumpLister (qui date un peu quand même 🙂 )
- Windows Jump List Parser de TZworks (mais toujours soumis à licence du coup)
- JLECmd en version command line et JumpList Explorer avec un GUI, toujours d’Eric Zimmerman.
Voici un exemple avec avec JumpList Explorer :
En version ligne de commande depuis une image disque comme pour les lnk :
> .\JLECmd.exe -d "C:\Users\$Username\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\" --csv "D:\path\to\output\dir"
Quel intérêt pour la forensics ?
Beaucoup d’intérêt ! les jump lists ont un utilisation assez proche de celle des shortcut en fait. Ils permettent d’identifier les éléments accédés « récemment » (je met des guillemets car j’ai retrouvé des traces de nom de fichiers de plus de 3 ans quand même) par un utilisateur en session interactive sur la machine. Cela peut vous permettre d’identifié : des fichiers accédé, des tentatives des latéralisation, des programmes malveillants (ou leur présence). En bref c’est un bon complément des informations déjà collectées autour des shortcut ou des ShellBags par exemple.
Conclusion
Et voilà, encore un endroit où vos attaquants vont très probablement laisser des traces et qu’il est intéressant de regarder. Bref, ces Jump Lists nous font le 6ème article sur la forensics de cette séries, ça va se finir en roman cette histoire…^^
Encore beaucoup d’élément à regarder pour forensgeek, et d’ici là prochaine fois geekez bien !