LM 与 NTLM 降级风险
LmCompatibilityLevel 决定 Windows 在认证时允许使用的 LM 与 NTLM 版本。为了兼容老设备,系统可能仍在发送较弱的响应,攻击者一旦抓到弱哈希就能离线破解,进而做横向移动。把级别设为 5(仅发送 NTLMv2 响应,拒绝 LM 与 NTLM)能直接堵住这条路径;稳妥的做法是先用级别 4 过渡观察。
基本信息
| 注册表项 | HKLM\SYSTEM\CurrentControlSet\Control\Lsa 下的 LmCompatibilityLevel |
|---|---|
| 基线值 | 5;兼容性过渡可先设 4 |
| 适用平台 | Windows Server 与 Windows 10 及以上 |
| 风险等级 | 高 |
| 生效条件 | 需要重启 |
典型使用场景
- 域内认证安全基线核查
- 抓到 NTLM 哈希后的加固整改
- 旧设备兼容性过渡,先用较低级别观察
- 新建环境直接按最高级别配置
- 评估认证流量被抓包后能否被离线破解
核查与设置
核查与设置
$k='HKLM:\SYSTEM\CurrentControlSet\Control\Lsa'
Get-ItemProperty $k -Name LmCompatibilityLevel # 查看当前级别
Set-ItemProperty $k -Name LmCompatibilityLevel -Value 5 # 仅 NTLMv2,拒绝 LM 与 NTLM
Get-ItemProperty $k -Name LmCompatibilityLevel # 复核取值
Restart-Computer # 需要重启才生效取值含义
| 取值 | 含义 | 适用场景 |
|---|---|---|
| 0 与 1 | 发送 LM 与 NTLM 响应 | 最弱,不应使用 |
| 2 | 仅发送 NTLM 响应 | 仍属弱级别 |
| 3 | 仅发送 NTLMv2 响应 | 中等强度 |
| 4 | 发送 NTLMv2 并拒绝 LM | 兼容性过渡可选 |
| 5 | 仅 NTLMv2,拒绝 LM 与 NTLM | 推荐基线取值 |
旧 NAS、网络打印机与较老系统可能只支持 NTLMv1:先设成 4 并观察认证失败事件,再升级到 5,避免认证出现大面积中断。
域环境下域控上的该项设置影响范围最大,成员机上的修改主要作用于本机的登录链路,整改时要选对对象。
这个设置不等于禁用 NTLM:NTLMv2 仍然可以协商使用,彻底去 NTLM 是另一个需要完整评估与排期的项目。
级别 4 与 5 的差别在于是否拒绝 NTLM 响应:4 仍允许 NTLM,只是不再发送 LM。如果设成 4 之后认证失败量保持平稳,再升到 5 的风险就小得多。
收敛之后要留一份变更记录:把原来的取值、观察期内的认证失败统计和最终取值一起记下来,出问题时能快速判断是哪一次调整引起的。