Mitglieder einer Windows-Gruppe

Ein Registry-Betrachter und ein Hexeditor genügen, um die Mitglieder einer Benutzergruppe in Microsoft Windows auch post-mortem aufzulisten.

Zur Analyse einer Windows-Installation gehört natürlich eine Auflistung aller Benutzer und ihre Zuordnung zu den Benutzergruppen. Von besonderem Interesse ist dabei die lokale Gruppe der Administratoren.

Microsoft Windows speichert die lokalen Benutzerkonten und Gruppen in der Datenbank des Security Account Managers, kurz SAM. Die Datenbank ist ein Bestandteil der Registry, zu finden unter HKEY_LOCAL_MACHINE\SAM.

Im laufenden System ist mit dem Regedit an dieser Stelle nicht viel zu sehen, für den Zugriff auf die SAM sind SYSTEM-Rechte erforderlich. Als Administrator kann man diese Rechte aber leicht mit Hilfe des Zeitplandienstes (Scheduler) erhalten.

Für eine forensische Analyse wird man in der Regel offline auf die Registry zugreifen. Die benötigten Daten finden Sie in der Datei %SystemRoot%\system32\config\SAM. Öffnen Sie diese mit EnCase oder einem Registry-Viewer.

Die lokalen Gruppen finden Sie unter SAM\SAM\Domains\Builtin\Aliases und der (hexadezimalen) Nummer der Gruppe. Für die lokale Gruppe der Administratoren ist dies zum Beispiel die Nummer 220. Der Wert "C" enthält einige Informationen über die Gruppe. An seinem Ende können Sie bereits im Registry-Viewer einige Security IDs (SIDs) erkennen - sie identifizieren die MItglieder der Gruppe.

Am Ende der Gruppeninformation führt Windows die Security IDs der Mitglieder auf.

Eine genauere Untersuchung ist mit einem Hexedior möglich. Speichern Sie hierfür zunächst den kompletten Wert "C" als Binärdatei. Bereits auf den ersten Blick erkennen Sie UNICODE-Strings, mit dem Namen der Gruppe (hier: Administratoren) und der aus dem Applet zur Benutzerverwaltung bekannten Beschreibung.

Auf den ersten Blick sind der Gruppenname und die Beschreibung zu erkennen.

Die Struktur beginnt mit der Nummer der Gruppe. Es folgen jeweils Offset und Länge für einen Security Descriptor, den Namen der Gruppe und ihre Beschreibung. Den Abschluß bilden Offset, Länge eines Speicherbereichs mit den SIDs der Gruppenmitglieder sowie deren Anzahl:

uint32		GroupID;
uint32		OfsSD;
uint32		LenSD;
FSkip(4);			// unused, always 0
uint32		OfsName;
uint32		LenName;
FSkip(4);			// unused, always 0
uint32		OfsDesc;
uint32		LenDesc;
FSkip(4);			// unused, always 0
uint32		OfsMember;
uint32		LenMember;
uint32		CntMember;

Hieraus lässt sich nun mit relativ wenig Aufwand ein Template für den 010 Editor programmieren; für Hex Workshop und WinHex sollte dies ebenfalls leicht möglich sein. Dieses Template stellt dann auch die Gruppenmitglieder und den Security Descriptor übersichtlich dar.

Übersichtlicher als der Hexdump ist die Darstellung im 010 Editor mit einem Template.

17.02.2006: Harlan Carvey hat in seinem Blog auch gerade einen Artikel zu diesem Thema geschrieben.

Archiv

Impressum

Dieses Blog ist ein Projekt von:
Andreas Schuster
Im Äuelchen 45
D-53177 Bonn
impressum@forensikblog.de

Copyright © 2005-2012 by
Andreas Schuster
Alle Rechte vorbehalten.
Powered by Movable Type 5.12