ADCS ESC6: Editf_attributesubjectaltname2

blackhat

版主

blackhat Rep
0
0
0
Rep
0
blackhat Vouches
Vouches
0
8 MONTHS
8 8 MONTHS OF SERVICE
blackhat 获得
0
0
0
获得
0
blackhat 凭证
0
0
0
凭证
0
主题
15
点赞
0
HakB
8
在社区成长 8 月
LEVEL 90 100 XP
 
ESC6 攻击是一种复杂的权限升级技术,针对Active Directory 证书服务(ADCS)。通过利用错误配置的证书模板和过于宽松的CA 设置,攻击者可以秘密获取合法证书来冒充高权限帐户(例如域管理员),而无需诉诸漏洞利用或暴力破解。
这种攻击利用可信基础设施,并且经常逃避检测。此外,它是由不安全的默认设置、过时的配置和PKI 监督不足造成的。

目录​

ESC6 攻击概述EDITF_ATTRIBUTESUBJECTALTNAME2 flag先决条件实验室设置使用Certipy-ad 进行枚举利用
使用impacket-psexec 进行利用后横向移动权限升级
缓解措施

ESC6 攻击概述​

ESC6 是一种权限升级攻击,利用错误配置的证书模板和CA 设置。因此,它允许攻击者使用合法证书冒充特权用户,绕过暴力或零日方法。
要了解ESC6 攻击,重要的是要检查启用该攻击的关键组件。
SAN Injection: ESC6 利用SAN 请求属性(+EDITF_ATTRIBUTESUBJECTALTNAME2 标志)来添加其他主机名,通常用于Web 服务器证书。
CA范围内的漏洞: 该标志全局适用,使得任何向用户注册开放的证书模板都可被利用。
冒充特权用户: 攻击者可以将域管理员或企业管理员作为附加UPN 颁发证书,从而冒充高特权用户。
非特权用户注册: 攻击者可以通过开放模板(例如标准用户模板)进行注册,以域管理员或其他特权实体的身份进行身份验证。

EDITF_ATTRIBUTESUBJECTALTNAME2 标志​

EDITF_ATTRIBUTESUBJECTALTNAME2 注册表标志修改CA 行为,以允许证书请求者在注册期间手动指定使用者备用名称(SAN) 字段。这包括UPN(例如,[email protected])、DNS 名称、IP 和电子邮件地址等身份。启用后,它允许用户注入自定义SAN,例如特权UPN,使其成为ESC6 攻击的关键推动者。
在ESC6 攻击中,该标志至关重要。启用后,攻击者可以使用特权用户的UPN 请求证书。如果与配置错误的模板结合使用,CA 会颁发有效的证书,允许攻击者模拟该用户并进行身份验证。
默认情况下,Active Directory 根据请求者的身份自动填充SAN 字段。然而,启用该标志后,请求者可以获得对SAN 的控制,从而创建了滥用路径。
Note: 如果任何域用户可以提供UPN,他们就可以使用配置错误的证书模板来模拟任何帐户,这就是ESC6 漏洞利用的核心思想。

先决条件​

Windows Server 2019 作为支持PKINIT 的Active Directory
域必须配置Active Directory 证书服务和证书颁发机构。
Kali Linux 包含各种工具
Tools: Impacket-psexec、certipy-ad

实验室设置​

在本指南中,我们跳过前面介绍的ADCS 设置和基础细节,直接进入ESC6 攻击。我们将演示配置错误的证书模板如何与不安全的CA 设置(特别是EDITF_ATTRIBUTESUBJECTALTNAME2 注册表标志)相结合,低权限用户可以利用该标志将特权UPN 注入到证书请求中。
这个端到端的演练演示了这些弱点如何最终导致整个域的妥协。此外,攻击者可以通过使用合法证书来实现这一点。
让我们看一下一个实际场景,其中攻击者破坏了低权限用户帐户([email protected])。然后,攻击者识别出配置错误的证书模板(用户)。
结果,他们升级了权限来模拟域管理员,而无需访问其密码。
从启用SAN 注入标志,到制作恶意证书请求,最后以域管理员身份进行身份验证,我们将使用Certipy 和Impacket-psexec 分解每个步骤,并展示此攻击如何在受信任的基础设施中悄然展开。

识别易受攻击的证书模板​

我们的攻击从证书颁发机构(CA) 开始。通过检查已发布的模板,发现“User”模板可以发布:
ESC6 Active Directory attack

Note: 用户模板用于客户端身份验证,通常用于S/MIME 或EFS 等功能。然而,如果配置错误,它就会成为ESC6 漏洞利用的理想目标。

错误配置 CA – 启用主题备用名称注入​

要使“用户”模板容易受到ESC6 的攻击,请修改CA 注册表以允许请求者指定自定义SAN。因此,这为通过精心设计的证书请求来模拟用户打开了大门。
在CA上,运行以下命令:
网络停止certsvc
editF_AttributeSubjectAltName2 exploit, Active Directory certificate abuse

这将停止证书服务(certsvc) 以安全地修改注册表设置。
certutil -setreg policyEditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
ESC6 Active Directory attack

最后,这会启用该标志,授予自定义SAN 注入并将CA 暴露于ESC6 攻击。
Note: ESC6 攻击因配置错误而猖獗,请使用certutil -setreg policyEditFlags -EDITF_ATTRIBUTESUBJECTALTNAME2 禁用EDITF_ATTRIBUTESUBJECTALTNAME2 标志,以阻止自定义SAN 注入并降低风险。
网络启动certsvc
这将重新启动证书服务以应用更改。
editF_AttributeSubjectAltName2 exploit

简而言之,该进程停止服务,修改注册表以启用漏洞,然后重新启动服务以应用更改。
Effect: 用户现在可以通过在证书请求中指定自定义UPN(例如,[email protected])来模拟任何帐户。

枚举利用​

使用 Certipy 广告​

Certipy-AD 是一种用于枚举和利用ADCS 中的错误配置的工具,使其对于涉及伪造证书和权限升级的自动化ESC6 攻击特别有效。

以低权限用户身份请求恶意证书

由于模板存在漏洞,攻击者(用户raj)请求一个声称是域管理员的证书:
certipy-ad req -u [email protected] -p 密码@1 -target 192.168.1.48 -ca ignite-DC-CA- -template User [email protected] -dc-ip 192.168.1.48
ESC6 Active Directory attack

最后,这会生成一个以管理员身份进行身份验证的.pfx 证书文件。

使用证书以域管理员身份进行身份验证

现在我们已经拥有了有效的管理员证书。我们可以使用Certipy 以Domain Admin: 身份进行身份验证并获得访问权限
Certipy-ad auth -pfx 管理员.pfx -dc-ip 192.168.1.48
editF_AttributeSubjectAltName2 exploit

最后,这会转储会话中的NTLM 哈希值,允许我们以目标用户身份进行身份验证。

后利用​

使用 impacket-psexec 横向移动权限升级

使用Impacket 的psexec 通过SMB 在远程计算机上生成SYSTEM shell。
运行命令
impacket-psexec ignite.local/[email protected] -哈希:32196b56ffe6f45e294117b91a83bf38
ESC6 Active Directory attack

缓解措施​

除非绝对必要,否则禁用EDITF_ATTRIBUTESUBJECTALTNAME2。
限制证书模板的注册权限。
监视具有不正常SAN/UPN 值的证书请求。
使用Certipy 等工具来审核ADCS。
了解有关Active Directory 认证攻击的更多信息。请关注此链接。Author:MD Aslam 是一位充满活力的信息安全领导者,致力于推动安全卓越并指导团队加强产品、网络和组织的安全性。联系方式请点击这里
 
顶部