ShimCache-Parser im Vergleich: Mandiant, Zimmerman, Velociraptor und dieses Tool

4 Min. Lesezeit

TL;DR. AppCompatCacheParser von Eric Zimmerman für Fallarbeit — breiteste OS-Abdeckung, CSV-Ausgabe, gut getestet. Velociraptor für Live-Triage in Größe. Mandiants ShimCacheParser, wenn eine schlanke Python-Referenz hilft. Dieses Tool für Null-Installation und Null-Upload — schnelles Browser-Triage. Bei Abweichungen die Tools kreuzweise prüfen; das Format ist heikel genug, dass zwei Parser gelegentlich Unterschiedliches sehen.

Die vier Parser, die zählen

ToolSpracheDistributionAm besten für
Mandiant ShimCacheParserPythonQuellcode auf GitHubFormat lernen, eigene Skripte
Eric Zimmerman AppCompatCacheParserC# / .NETEinzelne BinärdateiFallarbeit — am verlässlichsten für Berichte
Velociraptor Windows.Registry.AppCompatCacheVQLVelociraptor-ServerLive-Sammlung in Flottengröße
Shimcache Parser (dieses Tool)Rust → WebAssemblyNur Browser, keine InstallationSchnelles Triage ohne Setup; Daten verlassen das Gerät nicht

Wann was passt

Eric Zimmermans AppCompatCacheParser (der Standard für Fallarbeit)

EZs C#-Parser ist der De-facto-Standard für Offline-Analysen. Er deckt alle Windows-Versionen von XP bis 11 ab, spielt die SYSTEM-Transaktionslogs automatisch ab und liefert CSV, das nahtlos zu Timeline Explorer passt. Wenn die Ausgabe in einen Abschlussbericht geht, ist das, was Prüfer erwarten.

AppCompatCacheParser.exe -f SYSTEM --csv .

Einschränkungen: nur Windows-Binärdatei; .NET Framework / Core nötig; kein gutes Tool für Ad-hoc-Triage im Browser.

Velociraptor Windows.Registry.AppCompatCache (Sammlung in Größe)

Wenn ShimCache von Dutzenden oder Tausenden Hosts geholt werden muss, gewinnt Velociraptor. Das Artefakt liest den Cache direkt aus dem RAM laufender Endpoints — dieselbe Sicht, die das OS beim Shutdown geschrieben hätte, ohne auf den Shutdown zu warten. Siehe ShimCache aus einem Speicher-Dump extrahieren.

Einschränkungen: Velociraptor-Infrastruktur erforderlich. Für Einzelfälle überdimensioniert.

Mandiants ShimCacheParser (die Format-Referenz)

Der ursprüngliche Python-Proof-of-Concept. Weniger ausgefeilt als EZs Tool, aber nützlich, wenn man den Code lesen möchte, um zu verstehen, wie das Format dekodiert wird, oder wenn man eigene Analysen darauf scripten möchte. Reine Textausgabe; für Python-Pipelines.

python ShimCacheParser.py -t -h /pfad/zu/SYSTEM

Einschränkungen: benötigt Python 2.x (oder einen Kompatibilitäts-Fork); CSV/JSON-Ausgabe weniger poliert als bei EZ.

Dieses Shimcache Parser (keine Installation, kein Upload)

Dieses Tool deckt zwei Fälle ab, die die anderen weniger gut abdecken:

  1. Null-Installation-Triage: Seite öffnen, Hive ablegen, Einträge sehen. Praktisch auf einem Host ohne DFIR-Tools oder bei der Arbeit am Laptop / Leihgerät.
  2. Vertrauenssensible Analyse: Die Hive wird per WebAssembly komplett im Browser geparst. Die Datei verlässt die Seite nie, erreicht keinen Server, taucht in keinen Logs auf. Wichtig, wenn die Hive einem Kunden / Fall gehört, bei dem Upload tabu ist.

Trade-offs: keine CLI, keine CSV-Ausgabe (noch nicht), keine Automatisierungshaken. Für menschengesteuertes Triage, nicht für Pipelines. Für Pipelines ist EZs Tool die richtige Antwort.

Kreuzvalidierung: wenn zwei Parser uneins sind

Das Binärformat ist unerbittlich — die Format-Referenz für Windows 10/11 zeigt, warum ein einzelner Offset-Fehler den Rest kippen kann. In der Praxis stimmen Parser meist überein; reale Hives können aber leicht spec-fern sein, und Parser weichen ab bei:

  • Bitness-Erkennung bei Win7-Hives — der Header sagt nicht eindeutig „x86 vs x64"; Parser raten heuristisch. Zwei Tools mit unterschiedlichen Pfaden auf derselben Hive sind das Signal.
  • Pfad-Normalisierung — Backslash-Escapes, Groß/Kleinschreibung der Laufwerksbuchstaben, \??\-Präfixe. Jeder normalisiert anders.
  • Leere / Platzhalter-Einträge — manche geben Leerzeilen aus, andere überspringen sie.

Wenn es zählt: zwei Parser laufen lassen und diffen. Sinnvolle Kombis:

  • EZ + dieses Tool für einen schnellen Cross-Check
  • EZ + Mandiant für „Python vs. C#"-Sanity-Check
  • EZ + Velociraptor für „Live-Speicher vs. On-Disk-Hive"

Häufige Fallstricke

  • Transaktionslogs nicht vergessen. SYSTEM.LOG1 / SYSTEM.LOG2 enthalten ausstehende Schreibvorgänge; ohne sie lesen Sie eine veraltete Hive. EZs Tool spielt sie automatisch ab, andere nicht. Siehe Eine SYSTEM-Hive sichern.
  • On-Disk- und In-Memory-ShimCache nicht direkt vergleichen. Unterschiedliche Wahrheitsquellen — On-Disk zeigt nur den letzten sauberen Shutdown, In-Memory die aktuelle Session. Komplementär, nicht redundant.
  • Keine Ausführung annehmen. Kein Parser repariert das — der Cache erfasst Untersuchung, keine Ausführung.

Weiterführende Quellen

Verwandte Artikel