在 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
在寻找ADSync
Azure AD Connect 服务的密码时偶然发现了此页面。
对于其他人来说,要更改NT SERVICE\ADSync
密码,请按照本指南操作,因为它并不简单: