Где и как хранится пароль для учетной записи, связанной со службой Windows?

10

В HKLM \ SYSTEM \ CurrentControlSet \ Services \ MY-SERVICE-NAME есть Object Nameключ, который содержит имя пользователя, но я не могу найти пароль.

Я пытаюсь понять, как DP API взаимодействует с управлением службами Windows и с самим процессом службы.

Спасибо!

Ади Ройбан
источник

Ответы:

12

Пароли для служб Windows хранятся в реестре под:

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

Когда вы настраиваете службу Windows для запуска под другой учетной записью, диспетчер управления службами использует LsaStorePrivateDataфункцию для хранения пароля и соответствующую LsaRetrievePrivateDataфункцию для его получения.

Так что это какое-то обратимое шифрование, но извините, точный алгоритм и метод шифрования не документированы публично. И помогать вам в дальнейшем перепроектировать это было бы весело, но не очень хорошая идея для меня.

Райан Райс
источник
2
Спасибо! Просто примечание: разрешение реестра по умолчанию не позволит вам перечислить содержимое, HKEY_LOCAL_MACHINE\SECURITYи оно будет выглядеть пустым. В образовательных целях вы можете обновить разрешение и предоставить полное право администраторам. На основании вашей информации я также нашел эту страницу passcape.com/index.php?section=docsys&cmd=details&id=23
Ади Ройбан
2
Я также нашел этот пост moyix.blogspot.ro/2008/02/decrypting-lsa-secrets.html
Ади Ройбан
пс. если кто-то все еще использует Windows 2000 (у нас есть одна устаревшая система, которая все еще работает!) и хочет запустить процесс под системной учетной записью, текущая версия psexec не работает. Однако atможет быть использован планировщик Windows ( команда): verbalprocessor.com/2007/12/05/…
JohnLBevan
2

Хотя фактический метод шифрования может быть неясным, доступ к данным и требование, чтобы ОС расшифровывала их от вашего имени, является четко определенным процессом - с использованием PowerShell или инструмента NirSoft LSASecretsView .

Ройс Уильямс
источник