Accès aux fichiers
ShellBags
Fiche ShellBags : clés BagMRU et Bags dans UsrClass.dat et NTUSER.DAT, shell items, horodatages des dossiers, dossiers supprimés et USB, analyse avec SBECmd.
- Emplacement
- UsrClass.dat\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
- Prouve
- Un utilisateur a parcouru un dossier (local, USB, réseau, ZIP), même disparu depuis
- Horodatages
- LastWrite des clés BagMRU en FILETIME, UTC (enfant le plus récent) ; les shell items portent les dates DOS du dossier, résolution 2 secondes
- Rétention
- S'accumulent pendant toute la vie du profil ; entrées Bags recyclables ; clés supprimées en slack de ruche, fichiers .LOG et VSS
- Accès
- UsrClass.dat et NTUSER.DAT verrouillés tant que l'utilisateur est connecté : collecte brute avec .LOG1/.LOG2 (KAPE) ou depuis les VSS
- Type
- Registre
- Windows
- XPVista / 78 / 8.11011
- Cible KAPE
- RegistryHivesUser
- Velociraptor
- Windows.Triage.Targets:RegistryHivesUser
Outils
Comparer tous les outilsPrésentation
Les ShellBags sont les entrées de registre qu'utilise l'Explorateur Windows pour mémoriser l'affichage de chaque dossier (mode d'affichage, taille des icônes, tri, position de la fenêtre). Pour cela, l'Explorateur enregistre chaque dossier ouvert par l'utilisateur sous forme d'arbre de shell items. Effet de bord : un historique de navigation par utilisateur qui couvre disques locaux, supports amovibles, partages réseau, archives ZIP, appareils mobiles et même pages du Panneau de configuration, et qui survit à la suppression du dossier ou au retrait du périphérique.
Emplacement
| Version de Windows | Ruche | Clés |
|---|---|---|
| XP | NTUSER.DAT | Software\Microsoft\Windows\ShellNoRoam\BagMRU + \Bags, et Software\Microsoft\Windows\Shell\BagMRU + \Bags (emplacements réseau et amovibles) |
| Vista / 7 / 8 / 10 / 11 | UsrClass.dat | Local Settings\Software\Microsoft\Windows\Shell\BagMRU + \Bags (la plupart des entrées) |
| Vista / 7 / 8 / 10 / 11 | NTUSER.DAT | Software\Microsoft\Windows\Shell\BagMRU + \Bags (moins d'entrées, souvent liées au Bureau) |
UsrClass.dat se trouve dans C:\Users\<user>\AppData\Local\Microsoft\Windows\UsrClass.dat.
Ce que l'artefact prouve
- L'utilisateur a ouvert ou parcouru un dossier dans l'Explorateur ou dans une boîte de dialogue Ouvrir/Enregistrer, avec son chemin complet reconstitué.
- Des dossiers qui n'existent plus : répertoires supprimés, clés USB débranchées, partages déconnectés et archives extraites puis supprimées restent dans l'arbre.
- Le contexte du périphérique : les entrées des supports amovibles portent la lettre de lecteur et les noms de dossiers ; les appareils MTP (téléphones, appareils photo) apparaissent sous leur nom.
- Il ne prouve pas qu'un fichier précis du dossier a été ouvert (voir fichiers LNK et Jump Lists).
Champs clés
| Élément | Signification |
|---|---|
Sous-clés 0, 1, 2… de BagMRU | Arbre qui reproduit la hiérarchie des dossiers ; chaque niveau est un composant du chemin |
| Valeurs numérotées | Shell item binaire décrivant ce composant (nom, type, parfois référence MFT et horodatages) |
MRUListEx | Ordre d'accès récent aux sous-dossiers (le premier = le plus récent) |
NodeSlot | Index de la clé Bags\<n> correspondante, qui contient les réglages d'affichage |
Bags\<n>\Shell | Réglages d'affichage ; leur présence confirme que la fenêtre du dossier a bien été affichée |
Horodatages
| Horodatage | Positionné quand | Format | Pièges |
|---|---|---|---|
| Création / modification / accès dans un shell item de type fichier | Copiés depuis les horodatages du dossier lors de la construction du shell item | Date/heure DOS, résolution de 2 secondes | Décrivent le dossier tel qu'il était à ce moment, pas l'accès de l'utilisateur |
LastWrite d'une clé BagMRU | Ajout d'un enfant ou modification de MRUListEx | FILETIME, UTC | Concerne l'enfant consulté le plus récemment (premier de MRUListEx) ; les parseurs l'affichent comme « dernière interaction » pour cet enfant seulement |
| Première valeur écrite | Ajout d'un nouveau dossier | — | Des outils comme SBECmd déduisent une « première interaction » quand une clé n'a qu'un enfant ; ne l'étendez pas aux dossiers voisins |
Rétention et effacement
- Les ShellBags s'accumulent pendant toute la vie du profil ; Windows limite le nombre d'entrées
Bags, si bien que des réglages d'affichage très anciens peuvent être recyclés alors que les entréesBagMRUrestent. - Les supprimer impose de modifier la ruche de l'utilisateur (ce que font les outils de nettoyage) ; des traces subsistent souvent dans l'espace libre de la ruche et dans les clichés instantanés.
- Les changements récents peuvent ne figurer que dans
UsrClass.dat.LOG1/.LOG2: analysez toujours avec les journaux de transactions.
Collecte
- Cible KAPE :
RegistryHivesUser(NTUSER.DAT, UsrClass.dat et leurs journaux pour chaque profil) - Velociraptor (
Windows.Triage.Targets) :RegistryHivesUser;Windows.Forensics.Shellbagsles analyse en direct. - Commandes natives : les ruches des utilisateurs connectés sont verrouillées ; pour l'utilisateur courant :
reg save "HKCU\Software\Classes" E:\case\UsrClass.hiv
reg save HKCU E:\case\NTUSER.hiv
reg save de HKCU\Software\Classes exporte la vue fusionnée active ; préférez les copies brutes des fichiers de ruche avec leurs journaux.
Outils d'analyse
- ShellBags Explorer et SBECmd (Eric Zimmerman) :
SBECmd.exe -d E:\case\Users --csv E:\outtraite toutes les ruches d'une arborescence, y compris les clés supprimées récupérées dans l'espace libre de la ruche. - RegRipper : plugin
shellbags. - Velociraptor :
Windows.Forensics.Shellbags.
Conseils d'investigation
- Filtrez sur les lettres de lecteurs amovibles, les chemins
\\serveur\partageet les noms d'archives (dossiers.zip) pour montrer ce qu'un utilisateur a exploré sur des clés USB et des partages ; corrélez avec l'historique des périphériques USB. - Un dossier portant le nom d'un projet sensible sur un disque externe, plus des entrées LNK ou Jump List pour des fichiers qu'il contient, forme un récit solide d'accès aux données.
- Cherchez les dossiers d'outils (
mimikatz,PSTools,rclone) supprimés du disque mais toujours présents dans les ShellBags. - Gardez les sémantiques d'horodatage en tête : les heures des shell items datent le dossier, le LastWrite d'une clé date la dernière interaction de l'utilisateur avec un seul enfant.
- Comparez avec TypedPaths et OpenSave/LastVisited MRU pour voir comment l'utilisateur a atteint un emplacement.
Artefacts liés
- Fichiers de raccourci LNKFiche LNK : raccourcis du dossier Recent, première et dernière ouverture, horodatages de la cible, numéro de série, partage réseau et adresse MAC.
- Jump ListsFiche Jump Lists : AutomaticDestinations et CustomDestinations, AppID, entrées DestList avec dernier accès, nombre d'accès, épinglage, et JLECmd.
- Historique des périphériques USBFiche forensique USB : clés USBSTOR et USB, numéros de série, première et dernière connexion, lettres de lecteur, setupapi.dev.log et événements.
- OpenSaveMRU et LastVisitedMRUFiche OpenSavePidlMRU et LastVisitedPidlMRU : clés ComDlg32 par version, ce qu'enregistre la boîte Ouvrir/Enregistrer, horodatages, pistes d'exfiltration.
- TypedPaths et WordWheelQueryFiche TypedPaths et WordWheelQuery : chemins saisis dans la barre d'adresse et recherches de l'Explorateur dans NTUSER.DAT, ordre, horodatages, conseils.
Termes du glossaire
- Élément shell (ShellItem / PIDL)Structure binaire identifiant un élément de l'espace de noms du Shell Windows, chaînée en listes dans les ShellBags, LNK et Jump Lists.
- UsrClass.datLa seconde ruche du Registre par utilisateur, mappée sur HKCU\Software\Classes, qui contient les ShellBags, le MUICache et des objets COM.
- LastWrite d'une clé de RegistreL'unique FILETIME stocké dans chaque clé de Registre, qui indique en UTC la dernière modification de la clé ou de l'une de ses valeurs.
- NTUSER.DATLa ruche du Registre propre à chaque utilisateur, stockée dans son profil et chargée comme HKEY_CURRENT_USER, riche en traces d'activité.