为什么这样做有效:Windows 相同的本地管理员用户名和密码,能够访问其他计算机?

为什么这样做有效:Windows 相同的本地管理员用户名和密码,能够访问其他计算机?

我有两台机器 MachineA 和 MachineB。两台机器都有两个具有相同用户名的本地帐户。两个帐户都是这些机器上的本地管理员。

如果他们有相同的密码,我就可以\\MachineA\C$从访问MachineB

但如果我更改上面的任何一个密码,它都不起作用。它会提示输入用户名和密码。现在,如果我提供 MachineA\username 和密码,它就会连接。

为什么密码相同时没有提示输入密码?我期望密码使用随机盐进行哈希处理,Windows 如何知道密码相同并授权访问?

这些机器运行的是 Windows Server 2008 R2。

PS. 我创建了以下注册表项以启用 HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy对 1 的驱动器访问

答案1

登录后,Windows 会获取您输入的密码并将其 LM 和 NT 哈希存储在内核内存中,以便在工作组和 NT4 域上提供此单点登录功能。(在 Active Directory 域上,登录期间获得的 Kerberos TGT 也会被存储。)

用户空间程序无法直接访问这些哈希值1,但它们可以要求内核使用存储的密码/票证连接到 SMB 服务器,或者执行NTLM 质询-响应或者凯尔伯罗斯代表程序进行身份验证(对于其他协议,如 IMAP 或 HTTP)。

此外,Windows NT 使用无盐本地身份验证和 NTLM 的 MD4 哈希值,但这并不重要——如果有必要,它也可以将纯文本密码保存在内存中。


1有一个工具西太平洋海岸带如果有足够的权限,它可以检查内核内存并显示存储的凭据。

相关内容