与 Windows 服务关联的帐户的密码存储在哪里以及如何存储?

与 Windows 服务关联的帐户的密码存储在哪里以及如何存储?

在 HKLM\SYSTEM\CurrentControlSet\Services\MY-SERVICE-NAME 中有一个Object Name包含用户名的键,但我找不到密码。

我试图了解 DP API 如何与 Windows 服务管理以及服务进程本身交互。

谢谢!

答案1

Windows 服务的密码存储在注册表中的以下位置:

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

当您将 Windows 服务配置为以不同的帐户运行时,服务控制管理器将使用该LsaStorePrivateData功能来存储密码,并使用相应的LsaRetrievePrivateData功能来检索密码。

所以它是某种可逆加密,但抱歉,确切的加密算法和技术尚未公开记录。帮助你进一步对其进行逆向工程会很有趣,但对我来说不是一个好主意。

答案2

虽然实际的加密方法可能不清楚,但访问数据并请求操作系统代表你解密是一个定义明确的过程 - 使用电源外壳或者NirSoft LSASecretsView工具。

答案3

在寻找ADSyncAzure AD Connect 服务的密码时偶然发现了此页面。

对于其他人来说,要更改NT SERVICE\ADSync密码,请按照本指南操作,因为它并不简单:

https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sync-change-serviceacct-pass

相关内容