背景信息
12 月 7 日消息,0patch 团队于 12 月 5 日发布公告,发现了 Windows 系统的高危零日漏洞,并发布了非官方修复补丁。
NTLM 是 NT LAN Manager 的缩写,是基于挑战 / 应答的身份验证协议,是 Windows NT 早期版本中的标准安全协议。
0patch 团队在博文中表示,该漏洞尚未分配 CVE ID,只是表示攻击者只需诱骗用户在 Windows 文件管理器中查看恶意文件,甚至不需要打开文件,即可窃取用户的 NTLM 凭据。
例如,用户打开包含恶意文件的共享文件夹、USB 磁盘或“下载”文件夹,都可能触发攻击。
攻击会强制建立与远程共享的出站 NTLM 连接,导致 Windows 自动发送已登录用户的 NTLM 哈希值,攻击者可窃取并破解这些哈希值,获取用户的登录名和明文密码。
该漏洞影响从 Windows 7、Windows Server 2008 R2 到最新的 Windows 11 24H2 和 Windows Server 2022 在内所有 Windows 版本。
0patch 平台为所有注册用户免费提供针对该漏洞的微补丁,用户也可以考虑通过组策略或修改注册表禁用 NTLM 身份验证,具体方法是在“安全设置”>“本地策略”>“安全选项”中配置“网络安全: 限制 NTLM”策略。
操作方法
然而我自己研究以后发现,首先WIN11家庭版是目前比较主流的大家使用的系统,家庭版里已经隐藏了组策略等功能,所以直接搜索是找不到设置的。需要用这个方法先安装组件:
新建一个txt文档,复制如下命令至txt中。
@echo off
pushd "%~dp0"
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"C:\Windows\servicing\Packages\%%i"
pause
修改这个文档的后缀名(如果不知道啥是后缀名,搜索一下并且开启win的后缀名显示就可以修改了),从txt修改为bat。例如我改成这样:
右键选择以管理员身份运行,然后等它自动安装完。
如果是老手,直接cmd+r启动运行,如果不懂,那就在win自身的搜索功能里搜索“运行”。
打开运行然后输入gpedit.msc回车运行,进入策略管理界面。
按照下图指示寻找相关的配置,根据自身情况进行阻止策略配置。
说明
微软2024年已经宣布停止开发包括LANMAN、NTLMv1和NTLMv2在内的所有NTLM版本,并已经完全废弃该身份认证协议。根据微软安全官方博客的最新消息,在下一个年度更新和Windows Server更新中,用户可以继续使用NTLM协议,但后续调用NTLM将替代调用Negotiate,并优先使用Kerberos进行身份验证。
微软为实现这一目标主要进行了两项重要工作:首先是在Windows 11系统中引入了IAKerb和本地KDC,以扩展Kerberos的应用场景。其次是对现有Windows组件中内置的NTLM硬编码组件进行了修复,转而使用Negotiate协议,并通过迁移到Negotiate协议来支持本地和域账户使用IAKerb和LocalKDC验证。
NTLM是一种基于挑战/响应模型认证用户和计算机的身份认证协议,使用挑战/响应模型来证实客户端的身份,在Windows NT系列产品中被广泛使用。然而,随着技术的发展以及安全性要求的提高,微软决定不再开发并废弃该身份认证协议。
所以本质上来说,禁用NTLM理论上应该不会影响普通家庭用户的各项功能,但是有可能企业用户,尤其是有旧的一些服务或者情况的,有可能会受影响。