Skip to content

BAM-Registry-Schlüssel: Speicherort und Sicherung

Die genauen BAM- und DAM-Pfade je Windows-Build, warum es offline kein CurrentControlSet gibt und wie man SYSTEM samt Transaktionsprotokollen sichert.

Veröffentlicht am 5 Min. Lesezeit

TL;DR. BAM liegt im SYSTEM-Hive unter ControlSet00X\Services\bam\State\UserSettings\<SID> (Windows 10 ab 1809 und 11) oder ControlSet00X\Services\bam\UserSettings\<SID> (1709–1803). DAM folgt demselben Muster unter Services\dam. Offline gibt es kein CurrentControlSet: Lesen Sie Select\Current. Sichern Sie SYSTEM zusammen mit SYSTEM.LOG1 und SYSTEM.LOG2, und nehmen Sie SOFTWARE mit, um SIDs in Namen aufzulösen.

Auf einem laufenden Rechner findet man den Schlüssel in regedit sofort. Die Fehler passieren offline: das falsche Control Set lesen, einen ohne Protokolle kopierten Hive parsen oder eine gesperrte Datei kopieren, die nur aus Nullen besteht. Dieser Artikel behandelt die Pfade und die Sicherungsoptionen. Was in jedem Wert steckt, zeigt das BAM-Werteformat; den Gesamtüberblick der komplette BAM/DAM-Leitfaden.

Die Registry-Pfade

Auf einem laufenden System, über die Ansicht HKEY_LOCAL_MACHINE:

HKLM\SYSTEM\CurrentControlSet\Services\bam\State\UserSettings\<SID>    (Windows 10 1809+, Windows 11)
HKLM\SYSTEM\CurrentControlSet\Services\bam\UserSettings\<SID>          (Windows 10 1709–1803)
HKLM\SYSTEM\CurrentControlSet\Services\dam\State\UserSettings\<SID>    (DAM, Modern Standby devices)
Baum des SYSTEM-Hives: Select\Current verweist auf ControlSet001, dessen Schlüssel Services\bam\State\UserSettings pro SID einen Unterschlüssel mit Version, SequenceNumber und einem REG_BINARY-Wert pro ausführbarer Datei enthält, der mit einem 8-Byte-FILETIME beginnt

Der Wechsel zum Unterschlüssel State mit 1809 ist in kacos2000s BAM-Notizen dokumentiert: Der ältere Schlüssel bam\UserSettings wird nicht mehr aktualisiert, doch „alte Einträge können dort noch zu finden sein“. Ein von 1803 aktualisierter Host kann daher beide Schlüssel haben, und der alte ist eine kleine Zeitkapsel aus der Zeit vor dem Upgrade. Der Artikel zu den Windows-Versionen behandelt diesen Fall.

Jeder <SID>-Unterschlüssel enthält einen Wert pro ausführbarer Datei sowie die Verwaltungswerte Version und SequenceNumber. Die SID ist das Konto, dem der Moderator den Prozess zugeordnet hat; siehe BAM-Benutzerzuordnung.

Die Hive-Datei auf dem Datenträger

HKLM\SYSTEM wird durch C:\Windows\System32\config\SYSTEM bereitgestellt, wie Microsofts Referenz zu Registry-Hives auflistet. Daneben liegen die Transaktionsprotokolle SYSTEM.LOG1 und SYSTEM.LOG2 (Registry-Dateien).

Verlassen Sie sich nicht auf C:\Windows\System32\config\RegBack für eine ältere Kopie: Seit Windows 10 1803 sichert Windows die Hives dort standardmäßig nicht mehr (Microsoft Learn). Volumeschattenkopien sind die bessere Quelle für historische SYSTEM-Hives.

Offline gibt es kein CurrentControlSet

CurrentControlSet ist ein Link, den der Kernel beim Start anlegt. In einer Hive-Datei haben Sie nur ControlSet001, oft ControlSet002, und einen Schlüssel Select:

Wert unter SelectBedeutung
CurrentDas verwendete Control Set (meist 1)
LastKnownGoodDas als „letzte als funktionierend bekannte“ Konfiguration gehaltene Set
DefaultDas beim nächsten Start zu verwendende Set

Ein korrekter Offline-Parser liest Select\Current und behandelt dieses Set als „aktuell“. Das andere ist meist eine ältere Kopie: Im fiktiven Beispiel-Hive dieser Website enthält ControlSet002 einen Stand der BAM-Einträge der Benutzerin vor dem Einbruch – nützlich zum Vergleich, irreführend, wenn man ihn mit der aktuellen Timeline vermischt. Der BAM/DAM Parser liest jedes ControlSet00X, markiert die Zeilen aus dem aktiven Set und zeigt standardmäßig nur diese an („Nur aktives Control Set“).

Den SYSTEM-Hive sichern

Der Hive ist gesperrt, solange Windows läuft; Explorer oder copy scheitern. Die Optionen, von leicht bis umfassend:

MethodeBefehl / TargetMit Protokollen?Hinweise
reg savereg save HKLM\SYSTEM C:\triage\SYSTEM.hivNein (konsolidierter Hive)Integriert; Administratorrechte nötig (Microsoft Learn). Verändert den Host geringfügig.
KAPETarget RegistryHivesSystem oder das Compound-Target !SANS_TriageJaNTFS-Rohkopie; Definitionen in KapeFiles
VelociraptorSammlung Windows.Triage.Targets mit dem Target RegistryHivesSystem (in älteren Versionen Windows.KapeFiles.Targets) oder Windows.Forensics.Bam für eine Live-AuswertungJa (Dateisammlung)Doku des Bam-Artefakts
FTK ImagerAdd evidence → physisches/logisches Laufwerk → config\SYSTEM* exportierenJaOder „Obtain protected files“
DatenträgerabbildImage einbinden, Windows\System32\config\SYSTEM* kopierenJaAm besten für die Beweiskette; siehe Disk Image Parser
Volumeschattenkopievssadmin list shadows, dann vom Schattenkopie-Gerät kopierenJaÄltere SYSTEM-Hives = ältere BAM-Einträge (vssadmin)

Egal welche Methode: Nehmen Sie auch C:\Windows\System32\config\SOFTWARE (samt Protokollen) mit – sein Schlüssel ProfileList ordnet SIDs Profilordnern zu. Das KAPE-Target RegistryHivesSystem enthält ihn bereits.

Die Nullen-Falle

Ein Hive, der auf einem laufenden System per einfacher Dateikopie (oder von manchen Backup-Agenten) kopiert wurde, kann in richtiger Größe, aber voller Nullen ankommen. Unser Parser erkennt das und erklärt, warum er die Datei überspringt („nur Nullen — der Hive war beim Kopieren vermutlich gesperrt“). Sichern Sie erneut mit einem Rohkopie-Werkzeug.

Dirty Hives und Transaktionsprotokolle

Windows schreibt Registry-Änderungen zuerst in SYSTEM.LOG1/SYSTEM.LOG2 und führt sie später in die Hauptdatei zusammen. Ein Hive, dessen beide Sequenznummern im Basisblock voneinander abweichen, ist dirty: Er hat ausstehende Schreibvorgänge, die nur in den Protokollen existieren (libregf-Formatnotizen, Spezifikation msuhanov/regf). Bei BAM, das ständig aktualisiert wird, sind diese ausstehenden Schreibvorgänge oft die jüngsten Ausführungen – genau die, die Sie suchen.

Vorgehen:

  1. Sichern Sie SYSTEM.LOG1 und SYSTEM.LOG2 immer zusammen mit dem Hive.
  2. Prüfen Sie, ob der Hive dirty ist. Der BAM/DAM Parser zeigt einen Warnhinweis, wenn die Sequenznummern abweichen.
  3. Falls ja, spielen Sie die Protokolle mit Eric Zimmermans rla.exe ein oder überlassen Sie das dem Registry Explorer, und parsen Sie den bereinigten Hive.

Unser Tool spielt Protokolle noch nicht selbst ein; es sagt Ihnen, wann es nötig ist. Ein Export mit reg save ist bereits konsolidiert und daher nicht dirty.

Auf einem laufenden System lesen

Für einen schnellen Blick während der Triage, ohne etwas zu sichern:

Get-ChildItem 'HKLM:\SYSTEM\CurrentControlSet\Services\bam\State\UserSettings' |
  ForEach-Object { $_.PSChildName }

Das listet die SIDs. Die Werte selbst sind binäre FILETIMEs und so nicht lesbar: Exportieren und parsen Sie den Hive, oder führen Sie Velociraptors Artefakt Windows.Forensics.Bam aus, das sie dekodiert und Benutzernamen auflöst. Denken Sie daran, dass Programme, die Sie auf dem Host starten, selbst in BAM unter Ihrem Konto landen können – vermerken Sie sie in Ihrem Fallprotokoll.

Checkliste

  • Pfade: bam\State\UserSettings (ab 1809), bam\UserSettings (1709–1803), dam\State\UserSettings (DAM).
  • Offline: Select\Current auflösen; Control Sets nicht vermischen.
  • SYSTEM + SYSTEM.LOG1 + SYSTEM.LOG2 + SOFTWARE sichern.
  • Auf dirty Hive prüfen; vor dem Parsen Protokolle einspielen.
  • In Volumeschattenkopien nach älteren BAM-Ständen suchen.

Ziehen Sie danach alles auf den BAM/DAM Parser oder folgen Sie der Anleitung BAM und DAM analysieren. Andere Artefakte im selben Hive, etwa der ShimCache, werden bei ShimCache Parser und Registry Parser behandelt.

Häufige Fragen

Wo liegt der BAM-Registry-Schlüssel?

Im SYSTEM-Hive: ControlSet00X\Services\bam\State\UserSettings\<SID> unter Windows 10 ab 1809 und Windows 11 sowie ControlSet00X\Services\bam\UserSettings\<SID> unter Windows 10 1709 bis 1803.

Kann ich den SYSTEM-Hive auf einem laufenden System mit dem Explorer kopieren?

Nein. Der Kernel sperrt den Hive, solange Windows läuft. Verwenden Sie reg save, ein NTFS-Rohkopie-Werkzeug wie KAPE oder FTK Imager, Velociraptor oder eine Volumeschattenkopie.

Verwandte Artikel