ESC15 (EKUwu)/CVE-2024–49019:AD CS EKU证书模板中的权限提升漏洞解析

4 阅读4分钟

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漏洞特点:

  1. 与其他ESCx漏洞(ESC1–ESC14)相比,ESC15更实用且更易于利用,尤其是在配置内部HTTPS证书时,经常出现配置错误。大量案例表明,默认证书模板如何无意中满足ESC15的利用条件。

  2. CSR中的Supply EKU是微软未记录的字段,在证书模板配置时常常被忽略,从而触发ESC15。

AD CS与EKU简介

与Internet Information Services(IIS)类似,AD CS是微软的公钥基础设施(PKI)服务,可选择性安装。

顾名思义,AD CS除了PKI功能外,还与AD高度集成。一个常见场景是将AD认证绑定到证书,使域用户或设备能够通过证书请求进行身份验证。在此框架内,EKU指定了证书的用途,例如代码签名或客户端身份验证。

技术分析

此攻击的根本原因相当独特。当证书模板的架构版本设置为1,并且模板包含“在请求中提供”设置时,系统允许用户在证书签名请求(CSR)阶段为msPKI-Certificate-Application-Policy字段定义任意值。实际上,这意味着只要攻击者能够从一个存在漏洞的模板注册证书,就无需其他错误配置。攻击者可以直接将权限提升到域管理员。

哪些EKU在证书模板上有效?

一个证书模板有两个与EKU相关的属性:pKIExtendedKeyUsagemsPKI-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攻击路径分析

更多详情,请参考CyCraft的研究博客:go.cycraft.ai/research-bl… CSD0tFqvECLokhw9aBeRqqYDb8W65/N30kE1Z2AHfIeFb6flcvA69VaPk14lZJZ/KtWCJqKcLTYTi1rXMkexcQpVi+h+ZPpGMVg0P+rZoVgQelbSzePniIBqiW07BFitjpCnwi2TFVM/voGK35MGuLh20rOL3aO0cYQWxWWzcmE=