Que sont les ShellBags ?
Les ShellBags sont des clés de registre où l'Explorateur Windows mémorise l'affichage de chaque dossier — mode d'affichage, taille des icônes, position de la fenêtre. Pour cela, il enregistre par utilisateur une entrée pour chaque dossier ouvert, dans une arborescence qui reflète celle des dossiers.
Comme Windows conserve ces entrées longtemps après la disparition du dossier, les ShellBags prouvent qu'un utilisateur a parcouru un emplacement : une clé USB débranchée, un partage réseau, l'intérieur d'un fichier ZIP ou un dossier supprimé depuis.
Où sont stockés les ShellBags
- Windows 7 et suivants : UsrClass.dat (C:\Users\<utilisateur>\AppData\Local\Microsoft\Windows\UsrClass.dat) sous Local Settings\Software\Microsoft\Windows\Shell\BagMRU et Bags.
- Aussi NTUSER.DAT (C:\Users\<utilisateur>\NTUSER.DAT) sous Software\Microsoft\Windows\Shell\BagMRU — surtout le bureau et le réseau.
- Windows XP : NTUSER.DAT, Software\Microsoft\Windows\ShellNoRoam\BagMRU.
- Chaque clé BagMRU contient des valeurs numérotées — un élément shell par sous-dossier — ainsi que MRUListEx (ordre d'utilisation récente) et NodeSlot (lien vers les réglages d'affichage de Bags).
Pourquoi c'est utile en investigation
- Montre les dossiers ouverts par un utilisateur précis, même sur des supports amovibles ou des partages distants qui ne sont plus connectés.
- Les éléments shell contiennent l'entrée MFT et le numéro de séquence du dossier, ainsi que ses dates de création, modification et accès au moment de la navigation.
- La navigation dans des fichiers ZIP et vers des partages réseau révèle souvent la préparation et l'exfiltration de données.
Limites
- Les horodatages de clés indiquent seulement leur dernière modification ; la « dernière interaction » ne se déduit que pour l'enfant le plus récemment utilisé de chaque dossier.
- Les dates des éléments shell sont au format FAT : résolution de 2 secondes.
- Un ShellBag prouve que le dossier a été parcouru dans l'Explorateur, pas que ses fichiers ont été ouverts.
- Les entrées supprimées du registre (cellules non allouées) ne sont pas encore récupérées.
Comment récupérer les ruches
- Les deux ruches sont verrouillées tant que l'utilisateur est connecté : collectez-les avec KAPE (cible RegistryHivesUser), Velociraptor, FTK Imager ou depuis une image disque.
- Conservez les fichiers .LOG1 et .LOG2 à côté de chaque ruche : une ruche « dirty » peut manquer les dernières écritures.
- Nommez chaque paire par utilisateur (ou gardez l'arborescence Users\<nom>\) pour que l'outil distingue les comptes.
FAQ
Ma ruche est-elle envoyée quelque part ?
Non. Le parseur est écrit en Rust, compilé en WebAssembly et s'exécute dans un Web Worker de votre navigateur. Il n'existe aucun point d'envoi ; le site fonctionne hors ligne une fois chargé.
UsrClass.dat ou NTUSER.DAT ?
Les deux. Depuis Windows 7, la plupart des ShellBags sont dans UsrClass.dat ; NTUSER.DAT contient un BagMRU plus petit (bureau, certains éléments réseau). Déposez-les ensemble pour tout voir pour un utilisateur.
Que signifie « dernière interaction » ?
Quand l'ordre des sous-dossiers d'un dossier change, Windows réécrit sa clé. Le sous-dossier en tête de MRUListEx est donc celui utilisé lors de la dernière écriture de la clé parente — cette date est affichée comme sa dernière interaction.
Les ShellBags peuvent-ils montrer des dossiers supprimés ?
Oui. Les entrées restent après la suppression du dossier : un dossier absent du disque peut donc encore apparaître ici, avec son entrée MFT et ses horodatages.
Est-ce équivalent à SBECmd / ShellBags Explorer ?
L'outil couvre les mêmes champs essentiels (chemin absolu, type shell, position MRU, NodeSlot, référence MFT, horodatages) et exporte en CSV, mais fonctionne dans le navigateur sans installation.