Eine Windows-SYSTEM-Hive für die Offline-ShimCache-Analyse sichern

3 Min. Lesezeit

TL;DR. Sie können C:\Windows\System32\config\SYSTEM nicht einfach mit copy sichern, solange Windows läuft — die Datei ist gesperrt. Verwenden Sie FTK Imager, KAPE, robocopy /B, einen VSS-Snapshot oder Velociraptor für eine forensische Kopie auf einem laufenden Host, oder lesen Sie die Datei direkt von einer eingehängten Offline-Disk. Welche Methode auch immer — SYSTEM.LOG1 und SYSTEM.LOG2 müssen mitkommen, sonst fehlen die jüngsten Schreiboperationen.

Warum man sie nicht einfach kopieren kann

Der Windows-Kernel hält die SYSTEM-Hive mit exklusivem Zugriff offen, solange das OS läuft. Ein einfaches copy oder cp liefert Der Vorgang kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. Noch schlimmer: Selbst wenn Sie den Lock umgehen und die Bytes lesen, behält das laufende OS jüngste Registry-Schreiboperationen im Speicher, bis es zum nächsten sauberen Shutdown kommt — einschließlich der nützlichsten ShimCache-Einträge.

Ihr Ziel ist also eines von dreien:

  1. Den Lock auf dem laufenden Host sauber umgehen (Raw-NTFS / VSS / forensische Kopie).
  2. Die Datei direkt von einer eingehängten Offline-Disk oder einer pausierten VM lesen.
  3. Die In-Memory-Kopie aus einem Speicher-Image rekonstruieren (der einzige Weg an Einträge, die es nie auf die Disk geschafft haben).

Methode 1 — Dead Box / eingehängte Offline-Disk

Wenn Sie die Maschine herunterfahren oder ihre Disk schreibgeschützt einhängen können, ist das der einfachste Weg:

<Laufwerksbuchstabe>:\Windows\System32\config\SYSTEM
<Laufwerksbuchstabe>:\Windows\System32\config\SYSTEM.LOG1
<Laufwerksbuchstabe>:\Windows\System32\config\SYSTEM.LOG2

Alle drei kopieren. Die .LOG1 / .LOG2-Dateien sind die Transaktionslogs; ein robuster Parser spielt sie vor dem Lesen der Haupt-Hive ab, sodass keine ausstehenden Schreiboperationen verlorengehen.

Methode 2 — laufendes System: forensische Kopie

Auf einem laufenden Host können mehrere Werkzeuge gesperrte Dateien auf Volume-Ebene lesen:

  • FTK Imager — GUI, kostenlos. „Obtain Protected Files" → „Custom" → SYSTEM, SYSTEM.LOG1, SYSTEM.LOG2 wählen. Ausgabe auf eine externe Platte.
  • KAPE — CLI, scriptbar. Das RegistryHives-Target zieht alle relevanten Hives + Logs:
    kape.exe --tsource C: --target RegistryHives --tdest C:\out
    
  • robocopy mit /B/B öffnet Dateien im Backup-Modus und umgeht den User-Mode-Lock (benötigt weiterhin Admin- und SeBackupPrivilege-Rechte). Quick-and-dirty, wenn kein DFIR-Werkzeug verfügbar ist:
    robocopy C:\Windows\System32\config C:\out SYSTEM SYSTEM.LOG1 SYSTEM.LOG2 /B
    
  • VSS-Snapshotvssadmin create shadow erzeugt einen Zeitpunkt-Snapshot, der sich lesen lässt. Praktisch, wenn ein konsistenter Blick nötig ist und der Host nicht heruntergefahren werden kann.

Methode 3 — Speicher-Image (am besten für junge Einträge)

Die On-Disk-SYSTEM-Hive enthält nur die Einträge, die beim letzten sauberen Shutdown geschrieben wurden. Bei einem Host, der seit dem Vorfall nicht sauber neu gestartet wurde, liegen die jüngsten Einträge nur im Speicher.

Erstellen Sie ein Speicher-Image (WinPmem, Magnet RAM Capture, AVML), extrahieren Sie dann die SYSTEM-Hive — oder lesen Sie den ShimCache direkt — mit Volatility:

# Hive aus dem Speicher ziehen
vol -f memory.raw windows.registry.hivelist
vol -f memory.raw windows.registry.hivedump --offset <addr>

# Oder den ShimCache direkt aus dem Speicher lesen
vol -f memory.raw windows.shimcachemem

ShimCache aus einem Speicher-Dump extrahieren geht ausführlich darauf ein.

Methode 4 — Live-Triage in Größe (Velociraptor)

Für flottenweite Erfassung liest Velociraptor die gesperrte Hive per direktem NTFS-Zugriff und liefert sie für Offline-Analyse zurück. Nutzen Sie die Artefakt-Familie Windows.Forensics.AppCompat oder Windows.Registry.NTUser, oder sammeln Sie einfach die Hive-Datei mit Generic.Forensic.LocalHashes plus der Option accessor: ntfs.

Transaktionslogs nicht weglassen

Das ist der häufigste Fehler: SYSTEM kopieren, aber SYSTEM.LOG1 und SYSTEM.LOG2 weglassen. Ausstehende Schreiboperationen liegen in den Logs bis zum nächsten Checkpoint — und genau dieser Delta-Bereich kann die Einträge enthalten, an denen Sie das größte Interesse haben. Robuste Parser (Eric Zimmermans AppCompatCacheParser, ShimCacheParser, dieses Tool) spielen die Logs vor dem Lesen der Hive ab — aber nur, wenn Sie sie mitliefern.

Anschließend parsen

Ziehen Sie die SYSTEM-Hive in den Shimcache Parser — er läuft komplett im Browser, ohne Upload, und kennt alle Windows-Versionen von XP bis Windows 11. Format-Details: Referenz zum Binärformat von Windows 10 / 11.

Weiterführende Quellen

Verwandte Artikel