Skip to content

BAM: von der SID zum Benutzernamen – Ausführung zuordnen

Wie BAM Programme Konten zuordnet: SID lesen, über ProfileList, SAM oder die Domäne auflösen, bekannte SIDs wie SYSTEM und DWM erkennen und Fallstricke meiden.

Veröffentlicht am 6 Min. Lesezeit

TL;DR. Die BAM-Schlüsselnamen sind die Zuordnung: ein Unterschlüssel pro SID unter UserSettings. Lösen Sie SIDs über die ProfileList des SOFTWARE-Hives (Ordnername), den SAM-Hive (Namen lokaler Konten) oder die Domäne (Domänenkonten) auf. Erkennen Sie bekannte SIDs – S-1-5-18 ist LocalSystem, S-1-5-90-0-N sind DWM-Konten, S-1-5-96-0-N Konten des Schriftarttreibers. Und formulieren Sie vorsichtig: BAM ordnet die Ausführung einem Konto zu, nicht einer Person an der Tastatur.

Die Benutzerzuordnung ist der größte Vorteil von BAM gegenüber Prefetch, ShimCache und Amcache, die systemweit gelten. Dieser Artikel zeigt, wie Sie von einer SID zu einem berichtsfähigen Namen kommen und wie weit dieser Name trägt. Die Grundlagen stehen im kompletten BAM/DAM-Leitfaden.

Eine SID lesen

Eine Sicherheitskennung wie S-1-5-21-3623811015-3361044348-30300820-1119 zerfällt so (Microsoft Learn):

TeilWertBedeutung
Revision1Immer 1
Bezeichnerautorität5NT Authority
Domänenbezeichner21-3623811015-3361044348-30300820Der Rechner (lokale Konten) oder die Domäne
Relative ID (RID)1119Das Konto innerhalb dieser Domäne

Zwei Faustregeln aus derselben Dokumentation: RID 500 ist der integrierte Administrator, und SIDs werden innerhalb ihres Geltungsbereichs nie wiederverwendet. Zwei BAM-Schlüssel mit demselben Domänenteil gehören zum selben Rechner oder zur selben Domäne; vergleichen Sie dieses Präfix mit der Rechner-SID, um lokale von Domänenkonten zu unterscheiden.

Namen auflösen

ProfileList (SOFTWARE-Hive)

SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID> hat einen Wert ProfileImagePath, etwa C:\Users\svc_backup. Der letzte Ordner ist meist der Kontoname, und genau den zeigt unser BAM/DAM Parser, sobald Sie den SOFTWARE-Hive hinzufügen: Jede Zeile erhält ein Konto neben ihrer SID (Spalte User in Exporten), und der Kontenfilter zeigt „Name (SID)“.

Der Haken: Microsoft dokumentiert, dass das Umbenennen eines Benutzerkontos den Profilpfad nicht ändert (Microsoft Learn). Der „Profilordnername“ ist also ein starkes Indiz, nicht der maßgebliche Kontoname. In unseren Berichten kennzeichnen wir ihn so.

SAM-Hive (lokale Konten)

Bei lokalen Konten ordnet der Schlüssel SAM\Domains\Account\Users im SAM-Hive jeder RID ihren aktuellen Benutzernamen zu. Stimmt der Domänenteil der BAM-SID mit der Rechner-SID überein, lässt sich die RID dort auflösen. Unser Tool parst SAM nicht; Registry Parser oder die SAM-Plugins von RegRipper tun das.

Die Domäne

Bei Domänenkonten fragen Sie den Domänencontroller (Get-ADUser -Identity <SID>) oder nutzen die Anmeldeereignisse auf dem Host, die SID und Kontonamen enthalten (EVTX Parser für Anmeldungen 4624/4648).

Bekannte SIDs, denen Sie begegnen werden

SIDKontoBezeichnung in unserem ToolBedeutung für BAM
S-1-5-18LocalSystemSYSTEMDem Systemkonto zugeordnete Prozesse
S-1-5-19LocalServiceLOCAL SERVICEDienstkontext
S-1-5-20NetworkServiceNETWORK SERVICEDienstkontext
S-1-5-90-0-NWindow Manager\DWM-NDWM-NVirtuelles Konto des Desktop Window Manager für Sitzung N
S-1-5-96-0-NFont Driver Host\UMFD-NUMFD-NVon fontdrvhost.exe verwendetes Konto

Die ersten drei stehen in Microsofts Liste der bekannten SIDs; die Formate für DWM und Schriftarttreiber sind in der Referenz Security Identifier und in Boutnarus Notizen zu dwm.exe dokumentiert.

Ein SYSTEM-Schlüssel mit Einträgen außerhalb von System32 verdient Aufmerksamkeit. Im fiktiven Beispiel dieser Website zeigt S-1-5-18 \Windows\Temp\svchost.exe neben dem echten \Windows\System32\svchost.exe – genau die Art Zeile, für die es die Markierung „Systemdatei am falschen Ort“ gibt. Etwas lief als LocalSystem aus einem Temp-Ordner; in einem echten Fall suchten Sie den Dienst oder die geplante Aufgabe, die es gestartet hat (Dienstinstallationen 7045, Schlüssel Services, Aufgaben-XML).

Ein Konto, keine Person

Ein BAM-Eintrag unter der SID X bedeutet, dass der Prozess dem Konto X zugeordnet wurde. Er sagt nicht, wer an der Tastatur saß. Nichts im Eintrag unterscheidet zwischen diesen Situationen, die alle Code unter demselben Konto ausführen:

  • Der Benutzer hat das Programm selbst gestartet,
  • jemand anderes hat sein Passwort, Token oder seine Sitzung genutzt (RDP, runas, gestohlene Zugangsdaten),
  • eine geplante Aufgabe oder ein Dienst, der unter diesem Konto läuft, hat es gestartet,
  • ein Fernausführungswerkzeug hat mit diesen Zugangsdaten einen Prozess erzeugt.

Deshalb sollte es im Bericht „unter dem Konto … ausgeführt“ heißen, mit dem Anmeldekontext (interaktiv, RDP, Netzwerk, Dienst) aus den Ereignisprotokollen. Bei Fernanmeldungen helfen SRUM und RDP-Artefakte, die Sitzung einzuordnen.

Dienstkonten und gemeinsam genutzte Konten

Bei Dienstkonten glänzt die BAM-Zuordnung. Ein Backup-Konto, das normalerweise nur einen Agenten ausführt und plötzlich cmd.exe, mstsc.exe und einen Scanner in seinem BAM-Schlüssel zeigt, ist ein klares Zeichen für interaktiven Missbrauch. Die Lateral-Movement-Untersuchung folgt genau diesem Muster mit dem fiktiven Konto svc_backup.

Gemeinsam genutzte Konten (Kiosk, Schulungsraum, generischer Admin) sind das Gegenteil: BAM ordnet alles einer einzigen SID zu. Kombinieren Sie es mit Anmeldeereignissen und Quell-IPs, um Sitzungen zu trennen.

Durchgerechnetes Beispiel mit den Beispieldaten

Die fiktiven Beispiel-Hives hinter der Schaltfläche Beispiel testen enthalten drei BAM-Schlüssel:

SIDName aus der ProfileListEinordnung
S-1-5-21-3623811015-3361044348-30300820-1104aliceNormales Konto
S-1-5-21-3623811015-3361044348-30300820-1119svc_backupDienstkonto, gleicher Domänenteil
S-1-5-18(bekannt)LocalSystem, als SYSTEM beschriftet

Beide S-1-5-21-SIDs teilen den Domänenteil 3623811015-3361044348-30300820 und gehören daher zum selben Rechner oder zur selben Domäne; ihre RIDs 1104 und 1119 unterscheiden die Konten. Ohne SOFTWARE-Hive würde das Tool nur die SIDs zeigen; mit ihm lautet der Kontenfilter alice (S-1-5-21-…-1104) und svc_backup (S-1-5-21-…-1119). Ob es sich um lokale oder Domänenkonten handelt, lässt sich aus diesen beiden Hives allein nicht entscheiden: Vergleichen Sie den Domänenteil mit der Rechner-SID aus dem SAM-Hive oder fragen Sie die Domäne. Die ausführliche Untersuchung nutzt genau diese Zuordnung, um zu zeigen, dass das Dienstkonto und nicht die Benutzerin die Angriffswerkzeuge ausgeführt hat.

Checkliste

  1. SYSTEM und SOFTWARE laden, damit Namen neben den SIDs erscheinen.
  2. Den Domänenteil jeder SID mit der Rechner-SID vergleichen: lokal oder Domäne?
  3. Maßgebliche Namen aus SAM (lokal) oder der Domäne beziehen.
  4. Bekannte SIDs als eigene Kategorie behandeln; ungewöhnliche Pfade unter SYSTEM genau ansehen.
  5. „Unter dem Konto“ formulieren und Anmeldetyp und -quelle aus den Ereignisprotokollen ergänzen.

Alles oben außer SAM- und Domänenabfragen erledigen Sie direkt im BAM/DAM Parser; den vollständigen Ablauf zeigt die Schritt-für-Schritt-Anleitung.

Häufige Fragen

Wie wird aus einer BAM-SID ein Benutzername?

Laden Sie den SOFTWARE-Hive und lesen Sie ProfileList\<SID>\ProfileImagePath: Der letzte Ordner dieses Pfads ist meist der Kontoname. Bei lokalen Konten liefert der SAM-Hive den aktuellen Namen zur RID; bei Domänenkonten fragen Sie die Domäne ab oder sehen in die Anmeldeereignisse.

Beweist ein BAM-Eintrag, dass eine Person das Programm gestartet hat?

Er beweist, dass der Prozess der SID dieses Kontos zugeordnet wurde. Der Eintrag unterscheidet nicht zwischen dem Benutzer, einem Angreifer mit dessen Passwort oder einer Aufgabe bzw. einem Dienst, der unter diesem Konto läuft; den Anmeldekontext liefern die Ereignisprotokolle.

Verwandte Artikel