Skip to content

WMI-Repository forensisch sichern: Schritt für Schritt

Wo das WMI-Repository liegt und wie Sie OBJECTS.DATA, INDEX.BTR und die MAPPING-Dateien sicher kopieren: Schattenkopie, KAPE, Velociraptor oder Image.

Veröffentlicht am 3 Min. Lesezeit

Kurz gesagt. Sichern Sie den gesamten Ordner C:\Windows\System32\wbem\Repository — OBJECTS.DATA, INDEX.BTR, MAPPING1.MAP, MAPPING2.MAP, MAPPING3.MAP — vom selben Zeitpunkt. Auf einem laufenden Host sind die Dateien vom WMI-Dienst gesperrt: Lesen Sie sie aus einer Schattenkopie, mit KAPE (Target WBEM) oder mit Velociraptor. Beenden Sie niemals den WMI-Dienst, um sie zu kopieren.

Wo die Dateien liegen

Windows-VersionOrdner
Vista, 7, 8, 10, 11, Server 2008 und neuerC:\Windows\System32\wbem\Repository\
XP, Server 2003C:\WINDOWS\system32\wbem\Repository\FS\
Nach einem In-Place-Upgradezusätzlich C:\Windows.old\Windows\System32\wbem\Repository\

OBJECTS.DATA allein genügt, um Subscriptions zu carven. INDEX.BTR und die MAPPING-Dateien liefern die Namespaces und unterscheiden aktive von gelöschten Objekten — sichern Sie daher alles.

Bevor Sie beginnen

  • Beenden Sie Winmgmt nicht und führen Sie vor der Sicherung weder winmgmt /salvagerepository noch /resetrepository aus: Beide schreiben das Repository neu und können genau die gelöschten Datensätze zerstören, nach denen Sie suchen.
  • Halten Sie die Dateien zusammen. Eine INDEX.BTR oder MAPPING-Datei von einem anderen Zeitpunkt verweist auf die falschen Seiten. Die strukturierte Ansicht funktioniert dann nicht mehr; Carving schon.
  • Sichern Sie früh. Gelöschte Subscriptions bleiben nur erhalten, bis WMI ihre Seiten wiederverwendet; Softwareinstallationen und Updates schreiben in das Repository.

Schritt 1: PowerShell mit erhöhten Rechten öffnen

Starten Sie auf dem Host Windows PowerShell mit Als Administrator ausführen. Ein einfaches copy von OBJECTS.DATA schlägt mit einer Freigabeverletzung fehl, solange der WMI-Dienst läuft.

Schritt 2: Schattenkopie erstellen und verlinken

Erstellen Sie im selben Fenster einen Snapshot von C: und stellen Sie ihn als Ordner bereit. Der Snapshot friert alle Repository-Dateien zum selben Zeitpunkt ein:

New-Item -ItemType Directory -Force -Path C:\triage | Out-Null
$sc = Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName Create -Arguments @{ Volume = 'C:\' }
$vss = Get-CimInstance -ClassName Win32_ShadowCopy -Filter "ID='$($sc.ShadowID)'"
cmd /c mklink /d C:\triage\vss "$($vss.DeviceObject)\"

Schritt 3: Repository-Ordner kopieren

robocopy /B kopiert im Sicherungsmodus, sodass keine Datei übersprungen wird:

robocopy C:\triage\vss\Windows\System32\wbem\Repository C:\triage\Repository /E /B /R:0 /W:0 /NP /NDL
cmd /c rmdir C:\triage\vss
$vss | Remove-CimInstance

Sie haben jetzt C:\triage\Repository. Bilden Sie Hashes und packen Sie den Ordner, wenn Sie ihn anderswo analysieren (tar.exe ist ab Windows 10 1803 enthalten):

tar -a -c -f C:\triage\wmi-repository.zip -C C:\triage Repository

Dieselben vier Schritte finden Sie als einen einzigen Block zum Kopieren und Einfügen unter So erhalten Sie Ihre Daten auf der Startseite von WMI Parser.

Mit einem Triage-Tool

KAPE hat ein Target WBEM, das beide Repository-Ordner (den aktuellen und den unter Windows.old) per Raw-Zugriff auf den Datenträger kopiert. Es ist in den Compound-Targets KapeTriage und !SANS_Triage enthalten, eine vorhandene Triage-Sammlung enthält es also möglicherweise bereits:

kape.exe --tsource C: --tdest C:\triage\kape --target WBEM

Velociraptor: Sammeln Sie Windows.Triage.Targets (Velociraptor-Triage-Projekt) mit dem Target WBEM über die GUI, einen Hunt oder einen Offline-Collector. Über die Befehlszeile kann das integrierte Artefakt Windows.Search.FileFinder den Ordner hochladen:

velociraptor.exe artifacts collect Windows.Search.FileFinder --args SearchFilesGlob=C:\Windows\System32\wbem\Repository\* --args Upload_File=Y --output C:\triage\wmi.zip

Beide Ergebnisse können Sie unverändert in WMI Parser ablegen: Das Tool findet das Repository im Ordner oder in der ZIP-Datei, auch bei prozentkodierten Velociraptor-Pfaden.

Aus einem Datenträger-Image

Binden Sie das Image schreibgeschützt ein (zum Beispiel mit Arsenal Image Mounter als E:) und kopieren Sie den Ordner:

robocopy E:\Windows\System32\wbem\Repository C:\triage\Repository /E /R:0 /W:0 /NP /NDL

Unter Linux oder macOS mit dem Image unter /mnt/win:

mkdir -p ~/triage && cp -a /mnt/win/Windows/System32/wbem/Repository ~/triage/

Navigieren Sie in FTK Imager zu Windows\System32\wbem, klicken Sie mit der rechten Maustaste auf Repository und wählen Sie Export Files. Prüfen Sie auch die Schattenkopien des Images: Ein älteres Repository kann noch eine inzwischen entfernte Subscription enthalten.

Ein schneller Live-Blick (kein Ersatz)

Um zu sehen, was gerade aktiv ist, fragen Sie WMI selbst:

'__EventFilter','__EventConsumer','__FilterToConsumerBinding' | ForEach-Object { Get-CimInstance -Namespace root/subscription -ClassName $_ } | Format-List *

Das zeigt nur aktive Objekte eines einzigen Namespace, niemals gelöschte, und verlässt sich auf den WMI-Dienst eines möglicherweise kompromittierten Hosts. Nutzen Sie es zur Triage und parsen Sie danach die gesicherten Dateien. Die Checkliste für die Untersuchung zeigt, was als Nächstes zu prüfen ist.

Verwandte Artikel

Verwandte Artikel

CCM_RecentlyUsedApps aus dem WMI-Repository lesen: welche Programme jeder Benutzer wann zuletzt und wie oft startete, inklusive älterer Kopien aus OBJECTS.DATA.
Schritt-für-Schritt-Checkliste zu WMI-Persistenz: Live-Abfragen, Repository, Ereignis-IDs 5860 und 5861, Sysmon 19–21, Ausführungsspuren und Bereinigung.
Die zwei WMI-Subscriptions von Windows — SCM Event Log und BVTFilter/BVTConsumer: Inhalt, warum sie harmlos sind und wie Angreifer die Namen missbrauchen.