前言
关于最基本的一些知识点、ESC1、ESC8的攻击方式,请看我先前写的文章
https://yangsirrr.github.io/2021/08/16/adcs-esc1-esc8-gong-ji-fang-shi/
这里为技术点的进步补充,主要是ESC2-7
ESC2-配置错误的证书模板
攻击者可以使用带有任何目的的EKU功能证书,进行客户端、服务端的身份验证,也可以使用无EKUs的证书来进行任何目的,或签署新的证书
因此使用从属CA证书,攻击者能够指定新证书中的任意EKUs或字段
配置问题
1、允许低权限用户注册,和ESC1相同
2、管理员审批禁用,和ESC1相同
3、不需要授权的前面,和ESC1相同
4、过于宽松的证书模板授权低权限用户注册
5、证书模板定义了任何的EKUS或无EKU
基本大体都是和ESC1一样的,部分区别如下

检测情况
公开工具能够检测确认漏洞存在如下

同ESC1相同方式申请证书即可

确认获得证书如下,具体如何利用请看ESC1


ESC3-注册代理模板
证书请求代理EKU允许委托人代表其他用户申请证书,对于任何注册此模板的用户,生成的证书可用于代表任何用户共同签署部署请求
配置问题
1、允许低权限用户注册,和ESC1相同
2、管理员审批禁用,和ESC1相同
3、不需要授权的前面,和ESC1相同
4、过于宽松的证书模板授权低权限用户注册
5、证书模板定义了证书请求代理EKU,证书请求代理允许代表其他主题请求其他证书目标
6、没有在CA上实现登记代理限制
基本同ESC1相似,不同点在于证书申请代理处
检测情况
可检测ESC3存在如下

代理注册流程的官方文档:https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-cersod/97f47d4c-2901-41fa-9616-96b94e1b5435
最直接申请administrator证书

ESC4-证书模板访问控制
证书模板是 Active Directory 中的安全对象,这意味着它们具有安全描述符,用于指定哪些 Active Directory 主体对模板具有特定权限。如果允许意外或非特权的委托人编辑安全设置,则模板将被视为访问控制级别上的配置问题,攻击者具备写入、完全控制权限,能够将错误的配置推到模板,比如直接把模板设置为ECS1-3
检测情况
公开工具能够检测并确认漏洞存在如下

概念验证,详情可通过该工具实现 https://github.com/cfalta/PoshADCS,
基于github的这个demo利用来说感觉价值不高....

ECS5-PKI访问控制
证书模板和证书颁发机构本身之外的许多对象可能会对整个ADCS系统产生安全影响,如果控制如下一个将影响整个PKI
包括但不限于:
CA服务器的AD计算机对象(即通过 RBCD 攻陷)
CA服务器的RPC/DCOM服务器
PKI相关的AD对象。容器中的任何后代AD对象或容器CN=Public Key Services,CN=Services,CN=Configuration,DC=,DC= (例如,证书模板容器、证书颁发机构容器、NTAuthCertificates 对象等)
检测情况
这个配置范围非常大,所以检测工具没有检测ECS5的能力,基本CA服务器的RPC/DCOM服务器安全性需要手工分析
获取相关控制编辑权限

domian users能够对相关模板重新编辑,从而影响发布的证书服务应用

ESC6-EDITF_ATTRIBUTESUBJECTALTNAME2
如果在证书颁发机构的配置中启用了EDITF_ATTRIBUTESUBJECTALTNAME2标志,则任何证书请求都可以指定任意主题备用名称 (SAN)。这意味着为域身份验证配置的任何模板也允许非特权用户注册(例如,默认用户模板)可能会被滥用以获取允许我们作为域管理员(或任何其他活动用户/机器)进行身份验证的证书
检测情况
公开工具能够检测并确认漏洞存在如下


修复的话对应关闭EDITF_ATTRIBUTESUBJECTALTNAME2即可
certutil –setreg policy\EditFlags –EDITF_ATTRIBUTESUBJECTALTNAME2
进步利用直接看这个就行了
https://www.keyfactor.com/blog/hidden-dangers-certificate-subject-alternative-names-sans/
其他参考
https://cqureacademy.com/blog/enhanced-key-usage
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn786426(v=ws.11)#controlling-user-added-subject-alternative-names
ESC7-证书颁发机构访问控制
除了证书模板外,证书颁发机构本身剧本一组保护各类CA操作的权限,如下两种权限最为危险
ManageCA:ca admin,允许管理CA操作,包括(远程)配置ESC6-EDITF_ATTRIBUTESUBJECTALTNAME2,将直接导致ESC6
ManageCertificates:cert admin,允许主体批准悬而未决的证书请求,从而否定manager颁发的保护要求
配置问题
证书颁发机构配置相关权限

检测情况

后话
总得来说,想打adcs周边还是得大环境,大域里边容易碰到,小域小环境可能都不会有cs,更不用说打权限了,其次主流使用还是1、8为主,这里个人学习琢磨的2-7可以说是个知识点的补充