如何在Windows域中禁用NTLM身份验证?

时间:2020-01-09 10:46:20  来源:igfitidea点击:

NTLM(NT LAN Manager)作为微软的基本认证协议已经有相当长的时间了:从Windows NT开始。虽然微软在Windows 2000中引入了一种更安全的Kerberos身份验证协议,但NTLM(通常是NTLMv2)仍然广泛用于Windows域网络上的身份验证。在本文中,我们将考虑如何禁用NTLMv1和NTLMv2协议,并开始在Active Directory域中使用Kerberos。

主要 NTLMv1问题:

加密弱;

将密码哈希存储在LSA服务的存储器中,该服务可以使用不同的工具(如mimikatz)提取,然后可以将散列用于进一步的攻击;

服务器与客户端之间没有相互认证,导致数据拦截攻击和未经授权访问网络资源(一些工具,如响应程序可以捕获通过网络发送的NTLM数据并使用它们访问网络资源);

以及其他漏洞。

其中一些是在下一个版本 NTLMv2中修复的,该版本使用了更安全的加密算法,并允许防止流行的NTLM攻击。默认情况下,从Windows 7/Windows Server 2008 R2开始,禁用NTLMv1和LM身份验证协议。

配置GPO强制NTLMv2

如果我们考虑过在域中停止使用NTLM,首先,我们必须确保我们没有使用其更易受攻击的版本- NTLMv1。网络可能有许多旧设备或者服务仍在使用NTLMv1身份验证而不是NTLMv2(或者Kerberos)。因此,在完全禁用它之前,请阅读本文中的NTLM身份验证事件审计部分。

小型开源产品、不同网络扫描仪的旧型号(将扫描保存到共享网络文件夹中)、一些NAS设备和其他旧硬件、软件和操作系统在禁用NTLMv1时可能存在身份验证问题。

首先,域管理员需要确保禁止将NTLM和LM协议用于域中的身份验证,因为在某些情况下,攻击者可以使用特殊请求来接收对NTLM/LM请求的响应。

我们可以使用域(或者本地)策略设置首选身份验证类型。打开组策略管理编辑器(gpmc.msc公司)并编辑默认域策略。转到GPO部分 计算机配置->策略->Windows设置->安全设置->本地策略->安全选项,找到策略 网络安全:LAN Manager身份验证级别

策略设置中有6个选项:

发送LM&NTLM响应; (Send LM & NTLM responses;)

发送LM&NTLM响应-如果协商,使用NTLMv2会话安全性; (Send LM & NTLM responses – use NTLMv2 session security if negotiated;)

仅发送NTLM响应; (Send NTLM response only;)

仅发送NTLMv2响应; (Send NTLMv2 response only;)

仅发送NTLMv2响应。拒绝LM; (Send NTLMv2 response only. Refuse LM;)

仅发送NTLMv2响应。拒绝LM&NTLM。 (Send NTLMv2 response only. Refuse LM& NTLM.)

按照安全性提高的顺序,给出了使用NTLM认证的策略。默认情况下,Windows7及更新版本的操作系统使用 仅发送NTLMv2响应选项。如果启用此选项,则客户端计算机使用NTLMv2身份验证,但AD域控制器接受LM、NTLM和NTLMv2请求。

如果Kerberos协议不起作用,NTLMv2可以用于某些操作(例如,在加入域的计算机上管理本地组和帐户时)或者在工作组中使用。

我们可以将策略值更改为最安全的6选项:“ 仅发送NTLMv2响应。拒绝LM&NTLM。如果在域控制器上配置此设置,它们将拒绝所有LM和NTLMv1请求。

也可以通过注册表禁用NTLMv1. 为此,在注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lsa中创建一个名为 LmCompatibilityLevel且值为0-5的DWORD参数。值5对应于策略选项“仅发送NTLMv2响应”。拒绝LM NTLM”。

确保在同一GPO部分中启用了 网络安全:下次更改密码时不存储LAN Manager哈希值策略。默认情况下,它从Windows Vista/Windows Server 2008开始启用,并阻止创建LM哈希。

别忘了将此策略应用于域控制器。

如果我们确定没有使用NTLMv1,可以进一步尝试禁用NTLMv2. NTLMv2是一个更安全的身份验证协议,但在安全性方面远远落后于Kerberos(虽然NTLMv2中的漏洞比NTLMv1少,但是仍然有机会捕获和重用数据,而且它不支持相互身份验证)。

禁用NTLM的主要风险是可能会使用仍然可以使用NTLM身份验证的旧版或者配置不正确的应用程序。在这种情况下,我们必须以一种特殊的方式更新或者配置它们才能切换到Kerberos。

如何启用NTLM认证审核日志?

在完全禁用域中的NTLM并切换到Kerberos之前,请确保域中没有需要和使用NTLM身份验证的应用程序。

要跟踪使用NTLM身份验证的帐户或者应用程序,可以在所有使用GPO的计算机上启用审核日志记录策略。在计算机配置->Windows设置->安全设置->本地策略->安全选项部分,找到并启用 网络安全:限制NTLM:审核此域中的NTLM身份验证策略,并将其值设置为 全部启用

同样,启用策略 网络安全:限制NTLM:审核传入NTLM流量并将其值设置为 启用域帐户审核

启用这些策略后,使用NTLM身份验证的事件出现在 事件查看器应用程序和服务日志->Microsoft->Windows->NTLM部分

我们可以分析每台服务器上的事件,也可以将它们收集到中央Windows事件日志收集器中。

我们需要从源Microsoft Windows安全审核中搜索事件,事件ID为 4624—“帐户已成功登录”。请注意“ 详细认证信息部分的信息。如果 认证包值中有 NTLM,则使用NTLM协议对该用户进行认证。

查看 Package Name(仅限NTLM)的值。这一行显示了哪个协议(LM、NTLMv1或者NTLMv2)用于身份验证。因此,我们必须检测使用旧协议的所有服务器/应用程序。