Wo und wie wird das Kennwort für das einem Windows-Dienst zugeordnete Konto gespeichert?

10

In HKLM \ SYSTEM \ CurrentControlSet \ Services \ MY-SERVICE-NAME befindet sich der Object NameSchlüssel, der den Namen des Benutzers enthält, aber ich kann das Kennwort nicht finden.

Ich versuche zu verstehen, wie die DP-API mit der Windows-Dienstverwaltung und dem Dienstprozess selbst interagiert.

Vielen Dank!

Adi Roiban
quelle

Antworten:

12

Kennwörter für Windows-Dienste werden in der Registrierung unter folgender Adresse gespeichert:

HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets\_SC_<ServiceName>

Wenn Sie einen Windows-Dienst so konfigurieren, dass er als anderes Konto ausgeführt wird, verwendet der Service Control Manager die LsaStorePrivateDataFunktion zum Speichern des Kennworts und die entsprechende LsaRetrievePrivateDataFunktion zum Abrufen.

Es handelt sich also um eine reversible Verschlüsselung, aber leider sind der genaue Verschlüsselungsalgorithmus und die genaue Verschlüsselungstechnik nicht öffentlich dokumentiert. Und Ihnen beim weiteren Reverse Engineering zu helfen, würde Spaß machen, ist aber keine gute Idee für mich.

Ryan Ries
quelle
2
Vielen Dank! Nur ein Hinweis: Mit der Standardregistrierungsberechtigung können Sie den Inhalt von nicht auflisten HKEY_LOCAL_MACHINE\SECURITYund er sieht leer aus. Zu Bildungszwecken können Sie die Berechtigung aktualisieren und den Administratoren das volle Recht einräumen. Basierend auf Ihren Informationen fand ich auch diese Seite passcape.com/index.php?section=docsys&cmd=details&id=23
Adi Roiban
2
Ich fand auch diesen Beitrag moyix.blogspot.ro/2008/02/decrypting-lsa-secrets.html
Adi Roiban
ps. Wenn noch jemand Windows 2000 verwendet (wir haben noch ein Legacy-System!) und einen Prozess unter dem Systemkonto ausführen möchte, scheint die aktuelle Version von psexec nicht zu funktionieren. Der Windows-Scheduler ( atBefehl) kann jedoch verwendet werden: verbalprocessor.com/2007/12/05/…
JohnLBevan
2

Obwohl die tatsächliche Verschlüsselungsmethode möglicherweise nicht klar ist, ist der Zugriff auf die Daten und die Anforderung, dass das Betriebssystem sie in Ihrem Namen entschlüsselt, ein genau definierter Prozess - mit PowerShell oder dem NirSoft LSASecretsView- Tool.

Royce Williams
quelle