谷歌旗下的Mandiant安全部门采用了一种不寻常的策略来说服企业停止使用老旧且极不安全的NTLMv1身份验证协议:发布一个数据查找表,让攻击者破解NTLMv1凭据变得轻而易举。
Mandiant解释说,其目的是引起人们对以下事实的关注:尽管几十年来有大量证据表明NTLMv1(NT局域网管理器版本1)不安全,但企业仍在继续使用它。任何人都可以使用Mandiant的Net-NTLMv1预计算彩虹表查找工具,该工具可从谷歌云研究数据集门户下载,用于将给定的服务器响应映射以重构真实的NT哈希值。
当然,哈希值是真实密码的数学表示,但对于使用传递哈希等技术进行攻击的犯罪分子来说同样有用。其好处是节省时间和金钱:Mandiant估计,其彩虹表允许使用一台价值600美元的计算机在12小时内恢复NTLMv1密钥,而不是依赖第三方服务或昂贵的硬件来暴力破解密钥。
这一切都不会让NTLMv1变得比现在更不安全或更容易被攻击。Mandiant希望该表的发布能够提醒人们问题的存在,促使企业最终从其网络中移除NTLMv1。
该公司在其公告中表示:"这个遗留协议让企业容易遭受简单的凭据盗窃,但由于惰性和缺乏明显的即时风险演示,它仍然普遍存在。通过发布这些表,Mandiant旨在降低安全专业人员演示Net-NTLMv1不安全性的门槛。"
NTLMv1的技术背景
NTLMv1是1990年代的挑战-响应协议,用于向Active Directory(AD)验证Windows NT用户身份。它基于1980年代的数据加密标准(DES)加密,1996年更新为更安全的NTLMv2,之后完全被Kerberos取代。不幸的是,像NTLMv1这样的遗留协议不会简单消失,而是作为后备方案保留,以防旧应用程序需要它们。这种后备方案已经持续了几十年。
Mandiant有什么证据表明企业仍在使用NTLMv1?首先是轶事证据:该公司在上周的公告中指出:"Mandiant顾问继续在活跃环境中发现其使用。"
其次,网络攻击者经常以其为目标。例如,2024年TA577威胁组织的一次攻击活动通过使用带有陷阱的电子邮件向内部SMB资源(如遗留打印机)发送挑战-响应身份验证请求来针对NTLM哈希值。
最近的一次事件涉及针对特定NTLM漏洞CVE-2025-54918的身份验证中继攻击,这发生在微软宣布最终从Windows Server 2025和Windows 11中移除NTLMv1支持后仅几周。
隐藏的安全风险
供应链安全公司Chainguard国际副总裁Rob Finn表示,即使是有安全意识的企业也可能被NTLMv1所困扰。
他说:"像NTLMv1这样的遗留协议深埋在第三方固件中。安全团队可能在操作系统层面弃用NTLMv1,但遗留打印机驱动程序或工业传感器可能通过未修补的、几十年前的库重新引入它。对于大多数公司来说,主要障碍不仅仅是知道NTLMv1不安全,而是知道它仍然存在。"
由于打印机等资源不对外暴露,人们容易假设它们超出了攻击者的攻击范围。尽管如此,NTLMv1仍然可以通过中继或强制技术从网络外部进行攻击,例如通过钓鱼攻击触发身份验证。
Finn表示:"攻击者不需要知道你在使用它。他们只需要探测系统就能发现。从根本上说,企业保持遗留协议活跃不是因为他们想要,而是因为他们害怕破坏关键的遗留应用程序。"
尽管微软二十多年来一直建议企业升级到NTLMv2和Kerberos,但似乎并非所有人都收到了这个信息。Reliance Cyber反应式咨询服务主管Rob Anderson表示:"从加密角度来说,NTLMv1不仅仅是老旧,它简直是考古级别的。NTLMv1仍然启用,不是因为今天需要它,而是因为曾经需要它,没有人足够勇敢地关闭它并看看会发生什么。"
尽管存在这些担忧,企业仍需要采取行动。Anderson建议:"扫描其使用情况,找出使用原因,将其注册为高风险,并着手移除它,设定可实现的截止日期。"
Q&A
Q1:Mandiant为什么要发布NTLMv1破解工具?
A:Mandiant发布这个工具的目的是引起企业对NTLMv1协议不安全性的关注。尽管该协议已被证明极不安全几十年,但许多企业仍在使用它。通过发布预计算彩虹表查找工具,Mandiant希望降低安全专业人员演示NTLMv1不安全性的门槛,促使企业最终从网络中移除这个遗留协议。
Q2:NTLMv1协议有什么安全问题?
A:NTLMv1是1990年代基于1980年代数据加密标准的挑战-响应协议,在加密技术上已经过时。攻击者可以轻易破解NTLMv1凭据,利用哈希值进行传递哈希攻击。Mandiant的工具显示,使用价值600美元的计算机就能在12小时内破解NTLMv1密钥,这让企业面临简单的凭据盗窃风险。
Q3:为什么企业仍在使用NTLMv1协议?
A:企业继续使用NTLMv1主要是由于惰性和对破坏遗留应用程序的担忧。许多NTLMv1协议深埋在第三方固件中,如遗留打印机驱动程序或工业传感器的未修补库中。企业保持这些遗留协议活跃不是因为需要,而是因为害怕关闭后会破坏关键的遗留应用程序。