![与 Windows 服务关联的帐户的密码存储在哪里以及如何存储?](https://linux22.com/image/682942/%E4%B8%8E%20Windows%20%E6%9C%8D%E5%8A%A1%E5%85%B3%E8%81%94%E7%9A%84%E5%B8%90%E6%88%B7%E7%9A%84%E5%AF%86%E7%A0%81%E5%AD%98%E5%82%A8%E5%9C%A8%E5%93%AA%E9%87%8C%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E5%AD%98%E5%82%A8%EF%BC%9F.png)
在 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
密码,请按照本指南操作,因为它并不简单: