ESC15 (EKUwu)/CVE-2024–49019: AD CS EKU 证书模板中的漏洞
2024 年 9 月底,TrustedSec 的研究员 Justin Bollinger 在 AD CS 的扩展/增强型密钥用法 (EKU) 证书模板中发现了一个漏洞,并将此攻击命名为 ESC15 (EKUwu)。10 月 8 日,网上发布了一个公开可用的 PoC。ESC15 漏洞允许攻击者通过滥用默认证书模板将权限提升到域管理员,或以任意用户(包括特权帐户)的身份请求证书。随后在 11 月 12 日,微软将此漏洞指定为 CVE-2024–49019。
ESC15 漏洞的特点:
- 与其他 ESCx 漏洞(ESC1–ESC14)相比,ESC15 更实用且更易于利用,尤其是在配置内部 HTTPS 证书时,该处经常发生错误配置。众多案例表明,默认证书模板是如何无意中满足 ESC15 利用条件的。
- CSR 中的 Supply EKU 是微软未记录的,在证书模板配置期间经常被忽略,从而触发 ESC15。
AD CS 和 EKU 介绍
与 Internet 信息服务(IIS)类似,AD CS 是微软的公钥基础设施 (PKI) 服务,可以选择安装。
顾名思义,AD CS 除了其 PKI 功能外,还与 AD 高度集成。一个常见的场景是将 AD 身份验证绑定到证书,使域用户或设备能够通过证书请求进行身份验证。在此框架内,EKU 指定了证书的用途,例如代码签名或客户端身份验证。
技术分析
此攻击的根本原因相当独特。当证书模板的架构版本设置为 1 并且该模板包含“在请求中提供”设置时,系统允许用户在证书签名请求 (CSR) 阶段为 msPKI-Certificate-Application-Policy 字段定义任意值。实际上,这意味着只要攻击者能够从易受攻击的模板注册证书,就不需要进一步的错误配置。攻击者可以直接将权限提升到域管理员。
哪些 EKU 在证书模板上有效?
一个证书模板有两个与 EKU 相关的属性:
pKIExtendedKeyUsage 和 msPKI-Certificate-Application-Policy。
有效的 EKU 是根据这两个属性的值来确定的。
决定有效 EKU 的规则如图 1 所示。
图 1. 有效 EKU 规则。
对于架构版本 1/2/3/4,当不考虑身份验证 EKU 时,有效 EKU 由 msPKI-Certificate-Application-Policy 决定。身份验证 EKU 仅在复杂条件下影响架构版本 1,此处不详述。
通常情况下,当证书模板架构版本设置为 1 时,此属性通常为空。那么,在什么情况下架构版本为 1 的证书模板会在此属性中包含值呢?
答案在于一个未记录的功能。最初,当一个证书模板包含“在请求中提供”设置时,它只允许在证书请求 (CSR) 阶段替换 SAN 字段(图 2)。然而,当架构版本为 1 时,出现了一个额外的未记录功能:CSR 还可以为 msPKI-Certificate-Application-Policy 提供一个值(图 3)。
以默认的 WebServer 证书模板(图 3)为例,其 pKIExtendedKeyUsage(该证书模板的预期用途)是服务器身份验证。由于此模板满足未记录功能的条件,因此可以在 CSR 阶段在 msPKI-Certificate-Application-Policy 中包含额外用途,例如客户端身份验证或注册代理。根据有效 EKU 规则,这导致原本用于服务器身份验证的证书能够执行非预期的操作,例如客户端身份验证或注册代理。
图 2. “在请求中提供”的预期行为
图 3. 架构版本 1 下“在请求中提供”的行为
影响
披露此漏洞后,TrustedSec 研究员 Justin Bollinger 进一步发现,无法随意修改架构版本为 1 的证书模板,除非使用 ADSI Edit 等工具进行编辑。这意味着,如果管理员错误地允许低权限用户注册满足可利用条件的证书,这些用户就可能滥用它们来执行代码签名、域身份验证 (ESC1)、注册代理 (ESC3) 等操作。
因此,我们认为 ESC15 (EKUwu) 是环境中一个潜在的类似 ESC2 的威胁。如果易受攻击的证书模板被错误地分配给低权限用户,可能会导致严重的域被破坏。
缓解措施
以下证书模板存在于默认环境中且包含“在请求中提供”。我们建议确认仅允许高权限用户注册它们:
- ExchangeUserSignature
- exchangeUserCEPEncryption
- OfflineRouter
- IPSECIntermediateOffline
- SubCA
- CAWebServer
- EnrollmentAgentOffline
此外,我们建议暂停使用架构版本为 1 的证书模板。如果无法避免使用此类模板,请复制它们并确保新模板版本不为 1。
对于使用 CyCraft XCockpit Identity 的客户,自 10 月 9 日起,该平台已更新为可检测 ESC15 配置并分析潜在的攻击路径(图 4)。
图 4. XCockpit Identity 上的 ESC15 攻击路径分析
参考资料
- bandrel. (2024) “ESC15.ps1.” Github. (Oct 30, 2024).
- Bollinger, J. (2024) “EKUwu: Not just another AD CS ESC.” Trustedsec. (Oct 9, 2024).
- Knudsen, J. B. (2024) “ADCS Attack Paths in BloodHound — Part 1.” Medium. (Oct 30, 2024).
- ly4k. (2024) “Certipy.” Github. (Oct 8, 2024).
更多详情,请参阅 CyCraft 的研究博客:go.cycraft.ai/research-bl… CSD0tFqvECLokhw9aBeRqqYDb8W65/N30kE1Z2AHfIeFb6flcvA69VaPk14lZJZ/KtWCJqKcLTYTi1rXMkexcQpVi+h+ZPpGMVg0P+rZoVgQelbSzePniIBqiW07BFitjpCnwi2TFVM/voGK35MGuLh20rOL3aO0cYQWxWWzcmE=