Skip to content

Alternatives à ShellBags Explorer : SBECmd, RegRipper…

Comparatif honnête des outils ShellBags : ShellBags Explorer, SBECmd, RegRipper, Velociraptor, shellbags.py, Volatility et un parseur navigateur.

Publié le 7 min de lecture

TL;DR. ShellBags Explorer (interface graphique) et SBECmd (ligne de commande) d'Eric Zimmerman restent la référence : large couverture des shell items, rejeu des journaux de transactions, colonnes first/last interacted, traitement par lots. RegRipper fournit une sortie texte rapide dans le cadre d'un balayage plus large du registre. Velociraptor collecte et analyse à l'échelle d'un parc. shellbags.py et le plugin shellbags de Volatility couvrent les chaînes Python et la mémoire. Le ShellBags Parser est le moyen le plus rapide d'examiner une ruche sur n'importe quel OS sans rien installer, avec des signaux de tri et l'export CSV/JSON, mais il ne rejoue pas encore les journaux, ne récupère pas les clés supprimées et ne décode pas tous les types d'items. Pour les constatations destinées à un rapport, recoupez avec un second outil.

Transparence : je développe le ShellBags Parser. J'utilise aussi SBECmd, et j'essaie ci-dessous d'être précis sur les points forts de chaque outil.

Le comparatif

OutilPlateformeInterfaceRejeu des journauxPoints fortsLacunes à connaître
ShellBags Explorer / SBECmdWindows (.NET)GUI / CLIOui par défaut (--nl le désactive)Large couverture des items ; first/last interacted ; « has explored » ; modes -d (répertoire) et -l (registre en direct) ; --dedupe ; CSVWindows uniquement ; GUI non scriptable
RegRipper 3.0 shellbags.pl, shellbags_tln.plWindows (Perl, fonctionne aussi ailleurs)CLI / GUINon, analysez une ruche propreS'intègre à un balayage complet du registre ; sortie chronologique TLN ; vérifie le MRUListEx avant de rapporter des dates (selon 4n6k)Rapport texte ; couverture des items selon la version du plugin
Velociraptor Windows.Forensics.ShellbagsAgent multiplateformeVQL / GUIParseur de registre brutChasses à l'échelle du parc ; sortie ruche, chemin de clé, slot, chemin complet, date de modification, descriptionMoins de champs dérivés ; propose aussi Windows.Applications.SBECmd pour exécuter SBECmd à distance
shellbags.py (Willi Ballenthin)Python 2.7CLINonSortie bodyfile pour des chronologies de type mactime ; scriptableDépendance à Python 2 ; couverture des items plus ancienne
Volatility 2 shellbagsPythonCLIn/a (mémoire)Lit les ShellBags dans le registre en mémoire d'une image RAMVolatility 2 uniquement ; image mémoire nécessaire (parseur RAM)
ShellBags ParserTout navigateur récentWeb (WASM)Non (avertit sur les ruches sales)Aucune installation, aucun envoi ; dépôt de ruches, dossiers ou ZIP de triage ; regroupement par compte ; arborescence + chronologie ; signaux de tri ; export CSV/JSONPas de rejeu des journaux, pas de récupération des clés supprimées ; items MTP, contenu ZIP et recherche seulement en mode approximatif ; validation sur ruches réelles face à SBECmd encore en cours

Sources des options et fonctions : options de SBECmd (page outil SANS), les références d'artefacts Velociraptor citées ci-dessus, les dépôts des outils et le README de ce site.

ShellBags Explorer et SBECmd

La norme de fait, pour de bonnes raisons. En pratique :

  • Couverture. Des années de cas limites issus d'affaires réelles : items délégués, périphériques MTP, contenu de dossiers compressés, éléments du Panneau de configuration, et de nombreuses extensions shell tierces.
  • Colonnes d'interprétation. « First interacted » et « Last interacted » dérivés de la logique MRU, plus un indicateur « has explored » tiré des réglages Bags.
  • Traitement par lots. SBECmd.exe -d <dir> --csv <out> parcourt une collecte de triage et écrit un CSV par ruche ; --dedupe élimine les ruches en double (issues de clichés instantanés, par exemple).
  • Ruches sales. Les journaux de transactions sont rejoués sauf si vous passez --nl.

Contreparties : Windows et un runtime .NET sont nécessaires. Aucun problème sur une station forensique, davantage sur un Mac, une SIFT Linux ou un portable d'entreprise verrouillé.

RegRipper

Le RegRipper d'Harlan Carvey dispose de plugins ShellBags pour les ruches de l'ère Windows 7 depuis plus de dix ans. Il excelle quand les ShellBags sont une chose parmi quarante que vous voulez extraire d'une ruche en une passe, et shellbags_tln.pl alimente directement une chronologie TLN. Comme tout outil à rapport texte, vous perdez l'arborescence interactive, et la couverture des types d'items récents dépend de la version du plugin. Rejouez les journaux avant de lui donner une ruche sale.

Velociraptor

À l'échelle d'un parc, Velociraptor est la réponse pratique. Windows.Forensics.Shellbags utilise le parseur de registre brut de Velociraptor sur NTUSER.DAT et UsrClass.dat dans C:\Users\* : vous pouvez chercher un chemin UNC ou une lettre de lecteur sur des milliers de postes. Pour une analyse approfondie d'un poste, collectez aussi les ruches brutes et analysez-les avec un outil dédié.

Options Python et mémoire

  • shellbags.py est léger et scriptable, avec une sortie bodyfile qui s'intègre directement à une chronologie mactime. Il cible Python 2.7 et nécessite donc un environnement ancien.
  • Le plugin shellbags de Volatility 2 analyse le registre tel qu'il se trouve en mémoire. Utile quand la ruche sur disque a disparu, est chiffrée ou sale et que vous disposez d'une image RAM. Volatility 3 dispose de plugins registre mais, à ma connaissance, pas d'équivalent direct ; vérifiez la liste actuelle des plugins avant de vous y fier.

ShellBags Parser (ce site)

Ses points forts :

  • Aucune installation, confidentiel. Rust compilé en WebAssembly dans un Web Worker ; il n'existe aucun point d'envoi.
  • Vitesse de triage. Déposez un ZIP KAPE ou Velociraptor ; les comptes sont séparés (SID depuis UsrClass, nom d'utilisateur depuis NTUSER, ou chemin Users\<nom>\) ; les signaux font ressortir les autres lecteurs, emplacements réseau, chemins d'archives et dossiers modifiables par l'utilisateur.
  • Transparence. Chaque entrée affiche sa clé BagMRU, sa position MRU, son NodeSlot, sa version d'extension et son hexadécimal brut ; la chronologie indique si une date est dérivée du MRU ou une dernière écriture de clé.
  • Robustesse. Analyse avec contrôle des bornes de données contrôlables par un attaquant, avec des avertissements plutôt que des plantages sur des ruches endommagées.

Ce qu'il ne fait pas encore (d'après son propre README) : rejouer les .LOG1/.LOG2, récupérer les entrées BagMRU supprimées dans les cellules non allouées, décoder entièrement les items MTP, de contenu ZIP (0x52) et de résultats de recherche. La validation sur un corpus de ruches réelles Windows 7/10/11, avec comparaison aux sorties de SBECmd, est prévue. Le guide pas à pas montre le déroulé.

Lequel, et quand

SituationOutil
Premier examen d'une ruche sur Mac/Linux ou un portable verrouilléShellBags Parser
Analyse complète d'un poste pour un rapportSBECmd / ShellBags Explorer, recoupé avec un second outil
Balayage du registre en une passe avec de nombreux pluginsRegRipper
Recherche d'un chemin sur tout le parcVelociraptor
Chaîne Python, chronologie bodyfileshellbags.py
Seulement une image RAMVolatility 2 shellbags
Suspicion de nettoyage, clés suppriméesRegistry Explorer plus les vérifications de limites et anti-forensique

Quel que soit votre choix, les désaccords entre outils sont une information. Quand deux parseurs affichent un chemin différent pour la même clé, examinez les octets bruts (format des shell items) avant de faire confiance à l'un ou l'autre.

Articles liés

Articles liés