ADCS-ESC4枚举和利用

admin 2026-06-23 05:29:55 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档详细分析ADCS-ESC4漏洞利用技术,核心是通过修改证书模板权限和属性(如启用自定义SAN、添加认证EKU)将安全模板转化为ESC1漏洞模板,实现域内身份伪造。关键步骤包括授予注册权限、禁用审批机制、废除签名要求等,并配合Certipy工具进行枚举和攻击演示,最终获取高权限证书接管域控。 综合评分: 88 文章分类: 渗透测试,漏洞分析,内网渗透,红队,WEB安全


cover_image

ADCS-ESC4枚举和利用

原创

jzhoucdc jzhoucdc

攻防之路JZhoucdc

2026年6月22日 13:14 上海

在小说阅读器读本章

去阅读

一.概述

ESC4攻击的核心在于:通过修改证书模板的特定属性值,将一个初始安全的模板重构为具备ESC1漏洞特征的模板,随后利用该模板进行身份伪造。

二.利用要求

1.授予目标主体注册权限(Grant Enrollment Rights)

  • 操作:修改模板的DACL(自由访问控制列表),为攻击者所属的安全组(如Domain UsersAuthenticated Users)显式添加AllowEnroll(注册)和Read(读取)权限。
  • 技术目的:确保攻击者具备向CA(证书颁发机构)提交申请并获取该模板所颁发证书的合法授权。若无此权限,后续所有属性修改均无实际利用价值。

2. 禁用管理员批准标志(PEND_ALL_REQUESTS)

  • 操作:将msPKI-Enrollment-Flag属性中的CT_FLAG_PEND_ALL_REQUESTS标志位清除(设置为0)。
  • 技术目的:绕过CA级别的“手动颁发审批”机制。启用该标志时,所有申请处于挂起状态,需CA管理员手动批准。将其置0确保证书颁发流程全自动,即时签发,避免触发人工审计或干预。

3. 废除授权签名要求(msPKI-RA-Signature = 0)

  • 操作:将msPKI-RA-Signature属性值设置为0
  • 技术目的:解除模板对“注册代理(Enrollment Agent)”签名证书的依赖。在高级安全模板中,该属性强制要求申请者必须持有特定签名的CA证书作为授权凭证。置0意味着任何持有有效域凭据的主体均可直接发起申请,无需额外担保。

4. 启用申请者自定义主体名称(ENROLLEE_SUPPLIES_SUBJECT)

  • 操作:在msPKI-Certificate-Name-Flag属性中启用CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT标志。
  • 技术目的:将证书请求的Subject(使用者)和SAN(使用者备用名称)字段的填充控制权,从AD(Active Directory)自动映射切换至客户端请求输入。此操作是身份冒充的前提,允许攻击者在证书请求中任意指定高权限账户的UPN(用户主体名称)。

5. 设定身份验证用途的扩展密钥用法(EKU)

  • 操作:修改msPKI-Certificate-Application-Policy属性,添加或设定以下OID(对象标识符)之一:

  • 客户端身份验证(1.3.6.1.5.5.7.3.2

  • 智能卡登录(1.3.6.1.4.1.311.20.2.2

  • PKINIT客户端身份验证(1.3.6.1.5.2.3.4

  • 任意用途(2.5.29.37.0

  • 完全无EKU限制(不设置任何OID)

  • 技术目的:确保最终颁发的证书在KDC(密钥分发中心)进行PKINIT Kerberos身份验证时,其EKU声明符合域控的认证策略。特别注意后两种配置(任意用途或无EKU)会绕过CA对证书用途的专项约束,使得该证书可被系统隐式接受为合法身份凭证。

三.案例

枚举

certipy-ad find -u '[email protected]' -p 'Password123!' -dc-ip 10.129.228.236 -vulnerable -stdout

输出中Object Control Permissions字段明确指出了ESC4漏洞的存在依据:

  • 主体LAB.LOCAL\Black Wasp拥有以下权限

  • Full Control:对该模板对象具备完全控制权,隐含了所有下级权限。

  • Write Owner:可以修改模板的所有者(Owner),进而可能获得进一步控制权。

  • Write Dacl:可以修改模板的DACL(自由访问控制列表),能够向任意主体(包括自身)授予或撤销权限。

  • Write Property:可以修改模板的所有可写属性,包括msPKI-Certificate-Name-FlagmsPKI-Certificate-Application-PolicymsPKI-Enrollment-Flag等。

  • 权限判定的技术标准:在AD DS权限模型中,Write Property覆盖模板对象的所有属性集,Write DaclWrite Owner则赋予该主体对安全描述符的完全编辑能力。certipy将任何具备上述任一或组合写入权限的非特权主体标记为ESC4

攻击链结论

该枚举结果表明:

  1. Black Wasp用户对该模板对象拥有完整的写入权限,构成ESC4漏洞。
  2. 攻击者只需利用Write Property权限,执行两项属性修改(启用自定义SAN + 添加认证EKU),即可将该模板立即转换为ESC1。
  3. 由于审批与签名要求已处于禁用状态,修改完成后,攻击者无需等待管理员介入,可即时提交包含[email protected](或其他高权限账户UPN)的证书请求,并获得有效身份验证证书。
  4. 最终,通过Kerberos PKINIT协议,该证书可用于获取目标高权限账户的TGT,实现域控制权接管。

利用

首先导出目前配置,以便后续恢复;

certipy-ad template -u '[email protected]' -p 'Password123!' -template ESC4 -dc-ip 10.129.54.212 -save-configuration backup_ESC4.json -force

修改模板利用,类似ESC1:

certipy-ad req -u '[email protected]' -p 'Password123!' -ca lab-LAB-DC-CA -template ESC4 -upn Administrator -dc-ip 10.129.54.212 -target 10.129.54.212  -debug

得到administrator.pfx


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:攻防之路JZhoucdc jzhoucdc jzhoucdc《ADCS-ESC4枚举和利用》

ADCS-ESC4枚举和利用 网络安全文章

ADCS-ESC4枚举和利用

文章总结: 文档详细分析ADCS-ESC4漏洞利用技术,核心是通过修改证书模板权限和属性(如启用自定义SAN、添加认证EKU)将安全模板转化为ESC1漏洞模板,
评论:0   参与:  0