BAM und DAM analysieren: Anleitung Schritt für Schritt
Praxisnaher Ablauf, um BAM/DAM aus dem SYSTEM-Hive auszuwerten: sichern, im Browser parsen, nach Konto und Control Set filtern, sichten, belegen, exportieren.
TL;DR. Sichern Sie SYSTEM + seine zwei .LOG-Dateien + SOFTWARE. Spielen Sie die Protokolle ein, falls der Hive dirty ist. Ziehen Sie alles auf den BAM/DAM Parser. Lassen Sie „Nur aktives Control Set“ aktiviert, wählen Sie ein Konto, sortieren Sie nach Zeit. Nutzen Sie die Markierungen, um zu entscheiden, was Sie zuerst öffnen, prüfen Sie den Detailbereich, bestätigen Sie mit Prefetch/Amcache/Ereignisprotokollen und exportieren Sie die gefilterten Zeilen. Etwa zwanzig Minuten für einen Host.
So gehen wir bei einem einzelnen Windows-10/11-Host vor. Vorausgesetzt ist, dass Sie wissen, was BAM ist – falls nicht, lesen Sie zuerst den kompletten BAM/DAM-Leitfaden. Die Beispiele nutzen die im Tool eingebauten Daten hinter „Beispiel testen“: synthetische Hives, die einen fiktiven Einbruch auf einem Host namens FIN-WKS-07 beschreiben. Es sind keine echten Daten beteiligt.
Schritt 1 – Hives sichern
Sie benötigen aus C:\Windows\System32\config\:
| Datei | Wozu |
|---|---|
SYSTEM | Hier liegen BAM und DAM |
SYSTEM.LOG1, SYSTEM.LOG2 | Ausstehende Schreibvorgänge – oft die jüngsten Ausführungen |
SOFTWARE | Die ProfileList macht aus SIDs Kontonamen |
Auf einem laufenden System sind die Dateien gesperrt. Verwenden Sie KAPE (Target RegistryHivesSystem oder !SANS_Triage), Velociraptor, FTK Imager, oder kopieren Sie sie aus einem eingebundenen Datenträgerabbild. reg save HKLM\SYSTEM funktioniert ebenfalls und erzeugt einen bereits konsolidierten Hive. Befehle und Fallstricke stehen unter wo der BAM-Schlüssel liegt und wie man ihn sichert.
Wenn Sie Aktivität brauchen, die älter als die letzte Woche ist, holen Sie auch SYSTEM aus jeder Volumeschattenkopie.
Schritt 2 – Auf Dirty Hive prüfen und Protokolle einspielen
Hatte Windows beim Kopieren noch nicht geschriebene Änderungen, weichen die beiden Sequenznummern im Header voneinander ab: Der Hive ist dirty. Der BAM/DAM Parser zeigt dann einen Hinweis („Dirty Hive: die neuesten BAM-Schreibvorgänge können noch in SYSTEM.LOG1/LOG2 liegen und werden nicht eingespielt.“).
Der Parser spielt Protokolle nicht selbst ein. Führen Sie Eric Zimmermans rla.exe aus (oder öffnen Sie den Hive im Registry Explorer und speichern Sie die bereinigte Kopie) – beide finden Sie auf der Seite der EZ-Tools – und parsen Sie das Ergebnis. Für einen ersten Blick können Sie die dirty Datei ruhig direkt parsen; schließen Sie nur nicht daraus, dass ein Eintrag fehlt.
Schritt 3 – Hives laden
Öffnen Sie das Tool und
- ziehen Sie die Dateien auf die Seite,
- verwenden Sie Dateien wählen oder Ordner wählen, oder
- ziehen Sie eine komplette KAPE- oder Velociraptor-ZIP-Datei darauf.
Der Parser läuft als WebAssembly in einem Web Worker in Ihrem Browser; nichts wird hochgeladen. Er findet die SYSTEM- und SOFTWARE-Hives in einer Sammlung und listet jede übersprungene Datei mit Grund auf (ein Transaktionsprotokoll, ein anderer Hive, eine nur aus Nullen bestehende Datei aus einer gesperrten Kopie usw.).
Lesen Sie dann die Kopfzeile:
- Host – aus
ControlSet00X\Control\ComputerName(FIN-WKS-07im Beispiel). - Zeitzone – der konfigurierte
TimeZoneKeyName(Romance Standard Timeim Beispiel, also Paris). - Aktives Control Set – aus
Select\Current. - Einträge / Konten / Markiert – Zählwerte der aktuellen Ansicht.
Schritt 4 – Ansicht eingrenzen
Control Set. Lassen Sie Nur aktives Control Set aktiviert. Das ControlSet002 im Beispiel enthält einen älteren Stand der Einträge von alice aus der Zeit vor dem Vorfall; schaltet man den Filter ab, sieht man beide – nützlich zum Vergleich, störend für eine Timeline. Mehr dazu im Artikel zum Speicherort.
Konto. Die Kontenliste zeigt jede SID mit ihrem Namen aus der ProfileList, die aktivsten zuerst. Bekannte SIDs werden beschriftet (SYSTEM für S-1-5-18, DWM-1, UMFD-0 …). Wie man diese Konten einordnet, erklärt die BAM-Benutzerzuordnung.
Quelle. Standardmäßig „BAM + DAM“; bei Bedarf auf eines von beiden beschränken (DAM erklärt).
Sortierung. Klicken Sie auf Letzte Ausführung, um die Aktivität eines Benutzers der Reihe nach zu lesen. Die Zeitspalte ist UTC mit 100-ns-Genauigkeit; der Schalter Lokal rechnet in die Zeitzone Ihres Browsers um und zeigt den Versatz an – das ist nicht unbedingt die Zone des untersuchten Hosts.
Suche. Das Filterfeld durchsucht Pfad, Benutzer, SID oder Datumszeichenkette – 2026-09-14 grenzt das Beispiel auf den Tag des Vorfalls ein, \Users\Public\ auf einen Ordner.
Schritt 5 – Markierte Zeilen sichten
Das Tool markiert vier Muster. Es sind einfache, nachvollziehbare Heuristiken, die zeigen, wo Sie zuerst hinsehen sollten – keine Urteile:
| Markierung | Regel | Treffer im Beispiel |
|---|---|---|
| Vom Benutzer beschreibbarer Ordner | Pfad unter AppData, Downloads, Desktop … eines Profils, Users\Public, ProgramData, Windows\Temp, $Recycle.Bin, PerfLogs | \Users\Public\rclone.exe |
| Doppelte Dateiendung | Dokument-/Archivendung gefolgt von einer ausführbaren Endung | Invoice_2026-0914.pdf.exe |
| Systemdatei am falschen Ort | Name einer zentralen Windows-Datei außerhalb ihres erwarteten Ordners | \Windows\Temp\svchost.exe |
| Dual-Use- / Angriffswerkzeug | Name steht auf einer Liste von Fernwartungs-, Exfiltrations- und Credential-Tools | PsExec64.exe, Advanced_IP_Scanner.exe |
Aktivieren Sie Nur markierte für eine kurze Liste und schalten Sie es danach wieder ab: Unauffällig wirkende Einträge (cmd.exe, mstsc.exe, 7z.exe) liefern oft den Kontext, der die markierten erst verständlich macht.
Ein Klick auf eine Zeile öffnet den Detailbereich:
- Registrierungsschlüssel – vollständiger Pfad inklusive Control Set und Format.
- Rohdaten des Werts – der vollständige
REG_BINARYin Hex (Format erklärt). - FILETIME – der rohe 64-Bit-Wert.
- Letzter Schreibzugriff des SID-Schlüssels – wann sich der Schlüssel dieses Benutzers zuletzt geändert hat; eine nützliche Manipulationsprüfung (Anti-Forensik).
- Quell-Hive – aus welcher Datei die Zeile stammt, wichtig, wenn Sie mehrere SYSTEM-Hives laden.
Schritt 6 – Belegen
BAM liefert wer, welcher Pfad und wann (zuletzt). Keinen Hash, keinen Zähler, keine Befehlszeile, keinen Elternprozess. Für jede wichtige Zeile:
- Prefetch – Ausführungszähler und bis zu acht Ausführungszeiten, geladene Dateien (Prefetch Parser).
- Amcache – SHA-1 und Metadaten der Datei (Amcache Parser).
- Ereignisprotokolle – 4688 Prozesserstellung (sofern überwacht), Sysmon-Ereignis 1, Anmeldungen 4624/4648, Dienstinstallationen 7045 (EVTX Parser).
- ShimCache – Vorhandensein des Pfads auf dem Datenträger (ShimCache Parser).
Die Vergleichsmatrix fasst zusammen, welches Artefakt welche Frage beantwortet.
Schritt 7 – Exportieren
CSV und JSON exportieren die aktuell angezeigten Zeilen – setzen Sie also zuerst Ihre Filter (oder entfernen Sie sie für einen vollständigen Export). Die Dateien tragen den Hostnamen (FIN-WKS-07_bamdam.csv).
- CSV-Spalten:
LastExecutionUtc,Program,Path,User,SID,Service,ControlSet,ActiveControlSet,LegacyLayout,Volume,Flags,SidKeyLastWriteUtc,FileTime,DataHex,SourceFile. Zellen, die mit=,+,-oder@beginnen, erhalten ein Präfix, damit ein bösartiger Pfad nicht als Tabellenformel ausgeführt wird. - JSON ergänzt Metadaten pro Quelle: Hive-Name, Dirty-Kennzeichen, Parser-Version, Host, Zeitzone, Control Sets und Warnungen.
Übernehmen Sie eines davon in Ihr Timeline-Werkzeug (etwa Plaso oder eine Super-Timeline in einer Tabellenkalkulation), zusammen mit den bestätigenden Artefakten.
Häufige Fehler
SYSTEMohne Protokolle parsen und ein Fehlen behaupten.- Zeilen aus
ControlSet002in die aktuelle Timeline mischen. - Die Spalte in Ortszeit als Ortszeit des untersuchten Hosts ausgeben.
- Eine Markierung für einen Befund halten – oder das Fehlen einer Markierung für Entwarnung.
- Vergessen, dass BAM Ausführungen von Wechseldatenträgern, Netzwerkfreigaben und viele Kommandozeilenstarts nicht erfasst.
Einen vollständigen Fall zeigt die fiktive Untersuchung eines Lateral-Movement-Falls mit BAM.