Alternativen zu ShellBags Explorer: SBECmd, RegRipper & Co.
Ein fairer Vergleich von ShellBags-Werkzeugen: ShellBags Explorer, SBECmd, RegRipper, Velociraptor, shellbags.py, Volatility und ein Browser-Parser.
TL;DR. Eric Zimmermans ShellBags Explorer (GUI) und SBECmd (CLI) bleiben die Referenz: breite Shell-Item-Abdeckung, Einspielen der Transaktionsprotokolle, Spalten first/last interacted, Stapelverarbeitung. RegRipper liefert schnelle Textausgabe im Rahmen eines breiteren Registry-Durchlaufs. Velociraptor sichert und wertet in der ganzen Umgebung aus. shellbags.py und das shellbags-Plugin von Volatility decken Python-Pipelines und Arbeitsspeicher ab. Der ShellBags Parser ist der schnellste Weg, einen Hive auf jedem Betriebssystem ohne Installation anzusehen, mit Triage-Hinweisen und CSV-/JSON-Export, spielt aber noch keine Protokolle ein, stellt keine gelöschten Schlüssel wieder her und dekodiert nicht jeden Item-Typ. Für Befunde, die in einen Bericht gehen, prüfen Sie mit einem zweiten Werkzeug gegen.
Offenlegung: Ich entwickle den ShellBags Parser. Ich nutze auch SBECmd und versuche im Folgenden genau zu sein, wo welches Werkzeug stärker ist.
Der Vergleich
| Werkzeug | Plattform | Oberfläche | Protokolle einspielen | Stärken | Bekannte Lücken |
|---|---|---|---|---|---|
| ShellBags Explorer / SBECmd | Windows (.NET) | GUI / CLI | Ja, standardmäßig (--nl schaltet ab) | Breite Item-Abdeckung; first/last interacted; „has explored“; Modi -d (Verzeichnis) und -l (Live-Registry); --dedupe; CSV | Nur Windows; GUI nicht skriptbar |
RegRipper 3.0 shellbags.pl, shellbags_tln.pl | Windows (Perl, läuft auch anderswo) | CLI / GUI | Nein, bereinigten Hive auswerten | Teil eines vollständigen Registry-Durchlaufs; TLN-Ausgabe; prüft die MRUListEx, bevor Zeiten ausgegeben werden (laut 4n6k) | Textbericht; Item-Abdeckung je nach Plugin-Version |
Velociraptor Windows.Forensics.Shellbags | Plattformübergreifender Agent | VQL / GUI | Eigener Roh-Registry-Parser | Suche über die gesamte Umgebung; Ausgabe von Hive, Schlüsselpfad, Slot, vollständigem Pfad, Änderungszeit, Beschreibung | Weniger abgeleitete Felder; bietet zusätzlich Windows.Applications.SBECmd, um SBECmd aus der Ferne auszuführen |
| shellbags.py (Willi Ballenthin) | Python 2.7 | CLI | Nein | Bodyfile-Ausgabe für mactime-Zeitachsen; skriptbar | Abhängigkeit von Python 2; ältere Item-Abdeckung |
Volatility 2 shellbags | Python | CLI | n/a (Arbeitsspeicher) | Liest ShellBags aus der Registry im Speicherabbild | Nur Volatility 2; Speicherabbild nötig (RAM-Parser) |
| ShellBags Parser | Jeder moderne Browser | Web (WASM) | Nein (warnt bei dirty Hives) | Keine Installation, nichts wird hochgeladen; Hives, Ordner oder ZIP-Triage-Sammlungen ablegen; Gruppierung nach Konto; Baum + Zeitachse; Triage-Hinweise; CSV-/JSON-Export | Kein Einspielen von Protokollen, keine Wiederherstellung gelöschter Schlüssel; MTP-, ZIP-Inhalts- und Such-Items nur näherungsweise; Validierung mit echten Hives gegen SBECmd läuft noch |
Quellen für Optionen und Funktionen: SBECmd-Optionen (SANS-Werkzeugseite), die oben verlinkten Velociraptor-Artefaktreferenzen, die Repositories der Werkzeuge und die README dieser Website.
ShellBags Explorer und SBECmd
Der De-facto-Standard, aus gutem Grund. In der Praxis:
- Abdeckung. Jahre voller Sonderfälle aus echter Fallarbeit: Delegate-Items, MTP-Geräte, Inhalte komprimierter Ordner, Systemsteuerungselemente und viele Shell-Erweiterungen von Drittanbietern.
- Interpretationsspalten. „First interacted“ und „Last interacted“ aus der MRU-Logik sowie ein Indikator „has explored“, abgeleitet aus den
Bags-Einstellungen. - Stapelbetrieb.
SBECmd.exe -d <dir> --csv <out>durchläuft eine Triage-Sammlung und schreibt pro Hive eine CSV;--dedupeentfernt doppelte Hives (etwa aus Schattenkopien). - Dirty Hives. Transaktionsprotokolle werden eingespielt, sofern Sie nicht
--nlangeben.
Kompromisse: Windows und eine .NET-Laufzeit sind erforderlich. Auf einer Forensik-Workstation kein Problem, auf einem Mac, einer Linux-SIFT oder einem abgeriegelten Firmen-Laptop schon eher.
RegRipper
Harlan Carveys RegRipper hat seit über zehn Jahren ShellBags-Plugins für Hives aus der Windows-7-Zeit. Es glänzt, wenn ShellBags nur eines von vierzig Dingen sind, die Sie in einem Durchgang aus einem Hive holen wollen, und shellbags_tln.pl speist direkt eine TLN-Zeitachse. Wie bei jedem Textbericht-Werkzeug fehlt der interaktive Baum, und die Abdeckung neuerer Item-Typen hängt von der Plugin-Version ab. Spielen Sie die Protokolle ein, bevor Sie ihm einen dirty Hive geben.
Velociraptor
In großen Umgebungen ist Velociraptor die praktische Antwort. Windows.Forensics.Shellbags nutzt Velociraptors eigenen Roh-Registry-Parser für NTUSER.DAT und UsrClass.dat unter C:\Users\*, sodass Sie auf Tausenden Endpunkten nach einem UNC-Pfad oder Laufwerksbuchstaben suchen können. Für eine tiefe Analyse einzelner Rechner sichern Sie zusätzlich die Roh-Hives und werten sie mit einem spezialisierten Werkzeug aus.
Python- und Arbeitsspeicher-Optionen
- shellbags.py ist klein und skriptbar, mit Bodyfile-Ausgabe, die direkt in eine
mactime-Zeitachse passt. Es setzt Python 2.7 voraus und braucht daher eine Legacy-Umgebung. - Das Plugin
shellbagsvon Volatility 2 wertet die Registry so aus, wie sie im Speicher liegt. Nützlich, wenn der Hive auf dem Datenträger fehlt, verschlüsselt oder dirty ist und Sie ein RAM-Abbild haben. Volatility 3 hat Registry-Plugins, meines Wissens aber kein direktes Gegenstück; prüfen Sie die aktuelle Plugin-Liste, bevor Sie sich darauf verlassen.
ShellBags Parser (diese Website)
Wo er gut ist:
- Keine Installation, vertraulich. Rust, kompiliert nach WebAssembly, in einem Web Worker; es gibt keinen Upload-Endpunkt.
- Triage-Tempo. Legen Sie ein KAPE- oder Velociraptor-ZIP ab; Konten werden getrennt (SID aus UsrClass, Benutzername aus NTUSER oder Pfad
Users\<name>\); Hinweise heben andere Laufwerke, Netzwerkorte, Archivpfade und vom Benutzer beschreibbare Ordner hervor. - Transparenz. Jeder Eintrag zeigt BagMRU-Schlüssel, MRU-Position, NodeSlot, Erweiterungsversion und Roh-Hex; die Zeitachse gibt an, ob eine Zeit MRU-abgeleitet oder ein Schlüssel-Schreibzugriff ist.
- Robustheit. Grenzgeprüfte Auswertung angreiferkontrollierbarer Daten, mit Warnungen statt Abstürzen bei beschädigten Hives.
Was er noch nicht kann (laut eigener README): .LOG1/.LOG2 einspielen, gelöschte BagMRU-Einträge aus nicht zugeordneten Zellen wiederherstellen, MTP-, ZIP-Inhalts- (0x52) und Suchergebnis-Items vollständig dekodieren. Die Validierung an einem Korpus echter Windows-7-/10-/11-Hives mit SBECmd-Abgleich steht auf der Roadmap. Die Schritt-für-Schritt-Anleitung zeigt den Ablauf.
Welches Werkzeug wann
| Situation | Werkzeug |
|---|---|
| Erster Blick auf einen Hive am Mac/unter Linux oder auf einem abgeriegelten Laptop | ShellBags Parser |
| Vollständige Analyse eines Rechners für einen Bericht | SBECmd / ShellBags Explorer, mit einem zweiten Werkzeug gegengeprüft |
| Registry-Durchlauf in einem Schritt mit vielen Plugins | RegRipper |
| Suche nach einem Pfad in der ganzen Umgebung | Velociraptor |
| Python-Pipeline, Bodyfile-Zeitachse | shellbags.py |
| Nur ein RAM-Abbild | Volatility 2 shellbags |
| Verdacht auf Bereinigung, gelöschte Schlüssel | Registry Explorer plus die Prüfungen aus Grenzen und Anti-Forensik |
Egal, wofür Sie sich entscheiden: Abweichungen zwischen Werkzeugen sind Information. Zeigen zwei Parser für denselben Schlüssel unterschiedliche Pfade, sehen Sie sich die Rohbytes an (Shell-Item-Format), bevor Sie einem von beiden vertrauen.