安全声明:本文涉及的安全技术仅限合法研究与学习,严禁任何非法利用。因不当使用带来的法律及经济风险,概由使用者自行承担。
在渗透测试里,密码攻击往往是横向移动的突破口。这里记录一下获取并破解 Net-NTLMv2 哈希的过程——这是三种核心场景之一,另外两种分别是直接提取 NTLM 哈希和传递哈希,但它们不是本文的重点。
攻击场景对比
| 攻击类型 | 目标哈希 | 手法简介 |
|---|---|---|
| 获取并破解 NTLM 哈希 | NTLM 哈希 | 从内存或 SAM 数据库提取哈希,用 Hashcat 等工具破解 |
| 传递 NTLM 哈希 | NTLM 哈希 | 直接用哈希做身份验证,绕过密码 |
| 获取并破解 Net-NTLMv2 哈希 | Net-NTLMv2 哈希 | 通过中间人攻击或欺骗捕获挑战-响应包,离线破解 |
完整流程
1. 环境准备
Kali 上需要 Responder 和 Hashcat。网络配置方面,要么做 ARP 欺骗,要么直接把接口设为监听模式,确保能拦截目标主机的流量。
2. 诱导目标发起认证
这一步是整个链条里最吃理解的部分。我们需要让目标主机主动向我们的机器发起 SMB 连接请求。常用手段包括:挂载一个伪造的共享文件夹、利用 Web 端的 UNC 路径重定向,或者在局域网里做 DNS 欺骗。当目标尝试访问时,凭据会随着认证请求一起发过来,Responder 就能抓到 Net-NTLMv2 的握手包。
实战里,最直接的触发方式是让对方访问 \\我们的IP\share 或点开一个包含 UNC 路径的链接。
3. 分析捕获结果
Responder 跑起来后,终端会实时刷出捕获的数据。需要盯着 NTLMv2 字段,格式大概是:用户名::域名:挑战值:响应值。把这部分摘出来保存成文本文件,后面破解会用。
# 这个命令不是保存哈希,而是用 hashcat 做破解,后面会讲到
hashcat -m 5600 hash.txt wordlist.txt
4. 离线破解
Net-NTLMv2 在 Hashcat 里的模式是 5600。扔一个常用字典进去(比如 rockyou.txt),如果密码不强,很快就会弹出来。
速度取决于硬件。GPU 加速明显更快,但就算只有 CPU,跑个小字典也够用。有时候需要加规则生成变体,或者拼接多个字典,这要视情况而定。没有一招通吃的办法。
5. 用明文登陆验证
拿到明文密码后,第一时间试一下 RDP 或者 WinRM。这一步不仅验证破解结果,也为后续提权和横向移动铺路。如果登录成功,基本上可以确定内网这台机器已经拿下了。
小结
整套流程的本质就是'诱导'加'捕获'。只要目标开着 SMB 服务,并且没有禁用 NTLM 认证,风险就一直在。从防御的角度看,关掉不必要的服务、启用强密码策略、监控异常的认证请求,这些都不是新鲜事,但往往容易被忽视。


