如何阻止在 Windows VM 环境中接受 NTLM v1 身份验证?

如何阻止在 Windows VM 环境中接受 NTLM v1 身份验证?

我的情况是,我有一个通过 Windows Server 2012 R2 Standard 中的 IIS 使用 Windows 身份验证设置的网站,该网站被检测为容易受到 NTLMv1 攻击,因此我希望禁用此功能并仅允许 NTLMv2。

从我对这个主题的研究中,我发现了很多有用的信息,例如“匿名登录”与“NTLM V1”要禁用哪个?https://markgamache.blogspot.co.nz/2013/01/ntlm-challenge-response-is-100-broken.html

从这些链接和其他类似链接中,通常给出的唯一答案是在 HKLM\SYSTEM\CurrentControlSet\Control\Lsa 下有一个名为 LmCompatibilityLevel 的注册表值并进行调整。我尝试将其设置为值 5,这是客户端仅使用 NTLMv2 身份验证,并且如果服务器支持,则使用 NTLMv2 会话安全。域控制器拒绝 LM 和 NTLM 身份验证响应,但接受 NTLMv2。

但是,当我这样做时,似乎我仍然能够使用我的 Windows 凭据从另一台服务器成功连接到网站,该服务器已设置为将 LmCompatibilityLevel 设置为 0,这应该仅使用/允许 LM/NTLM。

我检测到它正在使用 NTLMv1 身份验证的方式是通过 Windows 安全日志。

Detailed Authentication Information:
    Logon Process:      NtLmSsp 
    Authentication Package: NTLM
    Transited Services: -
    Package Name (NTLM only):   NTLM V1
    Key Length:     128

当我在连接之前在客户端服务器上将注册表值设置为 3 或更高时,包名称值将变为 NTLM V2。

我还更改了本地和组安全策略网络安全: LAN Manager 身份验证级别仅发送 NTLMv2 响应。拒绝 LM 和 NTLM但我从测试中了解到,对于相同的设置,这些本质上是不同的界面。

有谁经历过这种情况或知道我是否遗漏了需要更改的其他设置?

答案1

根据我的经验,我在配置 NTLMv2(在 2008 R2 中配置了身份验证)时因为使用错误的域名设置了 ntlm.auth.domain 而遇到这种情况。

在@Silvio Meier 帖子(2.陷阱)中找到了解决方案,它更好地描述了一个问题:https://web.liferay.com/community/forums/-/message_boards/message/57355858

答案2

3 仅发送 NTLMv2,但它接受LM、NTLMv1 和 NTLMv2。 https://technet.microsoft.com/en-us/library/2006.08.securitywatch.aspx

答案3

如果将来其他人遇到同样的问题,则该设置似乎被级别较低的域控制器设置覆盖。将域控制器设置为级别 5(仅发送 NTLMv2 响应。拒绝 LM 和 NTLM)时,它会拒绝 NTLM v1 连接。

如果我们编辑注册表并重新启动计算机,则该设置也会被重新启动覆盖,因此只有编辑域控制器设置才能达到拒绝 NTLMv1 连接的所需结果。

相关内容