Où et comment le mot de passe est-il stocké pour le compte associé à un service Windows?


10

Dans HKLM \ SYSTEM \ CurrentControlSet \ Services \ MY-SERVICE-NAME, il y a la Object Nameclé qui contient le nom de l'utilisateur, mais je ne trouve pas le mot de passe.

J'essaie de comprendre comment l'API DP interagit avec la gestion des services Windows et avec le processus de service lui-même.

Merci!

Réponses:


12

Les mots de passe des services Windows sont stockés dans le registre sous:

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

Lorsque vous configurez un service Windows pour qu'il s'exécute sous un autre compte, le Gestionnaire de contrôle des services utilise la LsaStorePrivateDatafonction pour stocker le mot de passe et la LsaRetrievePrivateDatafonction correspondante pour le récupérer.

Il s'agit donc d'un cryptage réversible, mais désolé, l'algorithme et la technique de cryptage exacts ne sont pas publiquement documentés. Et vous aider à faire de l'ingénierie inverse serait amusant, mais ce n'est pas une bonne idée pour moi.


2
Merci! Juste une note: l'autorisation de registre par défaut ne vous permettra pas de lister le contenu de HKEY_LOCAL_MACHINE\SECURITYet il semblera vide. À des fins éducatives, vous pouvez mettre à jour l'autorisation et accorder un droit complet aux administrateurs. Sur la base de vos informations, j'ai également trouvé cette page passcape.com/index.php?section=docsys&cmd=details&id=23
Adi Roiban


ps. si quelqu'un utilise toujours Windows 2000 (nous avons un système hérité qui le fait toujours!) et veut exécuter un processus sous le compte système, la version actuelle de psexec ne semble pas fonctionner. Cependant, le planificateur Windows ( atcommande) peut être utilisé: verbalprocessor.com/2007/12/05/…
JohnLBevan

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.