密码攻击实践:获取并破解 Net-NTLMv2 哈希
安全声明:本文涉及的安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。
在渗透测试的横向移动阶段,密码攻击往往是突破防线的关键。本节重点讲解第三种核心场景:获取并破解 Net-NTLMv2 哈希。相比直接提取 NTLM 哈希,Net-NTLMv2 通常通过中间人攻击或欺骗手段捕获挑战 - 响应包,安全性更高但也更具隐蔽性。
攻击场景概览
| 攻击类型 | 目标哈希 | 手法简介 |
|---|---|---|
| 获取并破解 NTLM 哈希 | NTLM 哈希 | 从内存或 SAM 数据库中提取哈希,并用工具(如 Hashcat)破解 |
| 传递 NTLM 哈希 | NTLM 哈希 | 直接使用哈希进行身份验证,绕过密码需求 |
| 获取并破解 Net-NTLMv2 哈希 | Net-NTLMv2 哈希 | 通过中间人或欺骗获取挑战 - 响应包,离线破解 |
捕获与破解流程
1. Kali 环境准备
在开始之前,确保 Kali Linux 环境中已安装必要的工具。我们需要用到 Responder 来监听 SMB 认证请求,以及 Hashcat 进行后续的暴力破解。网络层面需配置好 ARP 欺骗或监听接口,以便拦截目标主机的流量。
2. 诱导目标触发认证
这是最关键的一步。我们需要让目标主机主动发起 SMB 连接请求。常见做法是构造一个诱饵文件、共享目录或利用 DNS 重绑定。当目标尝试访问该资源时,会携带其凭证进行认证,此时 Responder 即可捕获到包含 Net-NTLMv2 哈希的握手包。
3. 捕获结果分析
运行 Responder 后,终端会实时输出捕获到的信息。重点关注 NTLMv2 字段,格式通常为 用户名::域名:挑战值:响应值。将这部分哈希值保存下来,后续步骤将不再需要原始流量包。
# 示例:保存哈希到文件
hashcat -m 5600 hash.txt wordlist.txt
4. 执行破解命令
拿到哈希后,选择合适的模式进行破解。对于 Net-NTLMv2,Hashcat 提供了专门的模式 ID(通常是 5600)。如果密码强度较弱,配合常用字典(如 rockyou.txt),破解速度会非常快。
在实际操作中,要注意字典的选择和规则的使用。有时候简单的单词无法覆盖,需要结合规则生成变体。如果遇到复杂密码,可能需要调整算力分配或使用 GPU 加速。
5. 明文登录验证
一旦获得明文密码,就可以立即验证有效性。使用 RDP 或其他远程管理协议连接到目标计算机,输入用户名和密码。这一步不仅确认了破解成功,也为后续的权限提升或横向移动提供了入口。
总结
整个流程的核心在于'诱导'与'捕获'。只要目标开启了 SMB 服务且未禁用 NTLM 认证,风险就始终存在。防御侧应尽可能禁用不必要的服务,启用强密码策略,并监控异常的认证请求。


