8
月
在社区成长 8 月
LEVEL 30
100 XP
ESC7 是一个严重的安全漏洞,攻击者可利用证书颁发机构(CA) 内的薄弱访问控制。通过针对ManageCA 和管理证书等关键权限,攻击者可以破坏证书管理系统。 ManageCA 权限授予管理控制权,允许攻击者修改EDITF_ATTRIBUTESUBJECTALTNAME2 等设置,并使用PSPKI cmdlet 利用ESC6 等漏洞。同时,ManageCertificates 使攻击者能够绕过证书颁发检查,从而削弱安全性。
使用Evil-Winrm 进行利用后横向移动权限升级
缓解措施
管理CA管理证书这些权限如果被滥用或误解,可能会通过非法证书颁发提供直接的域危害路径。
启用ESC7: 的关键权限
添加或启用证书模板。
修改CA 策略设置。
设置EDITF_ATTRIBUTESUBJECTALTNAME2 标志经常在ESC6 风格滥用中被利用。
可用于提升或伪造任何模板以使其可利用。
Note: 这是ESC7中最危险的权限。
可用于绕过手动审批工作流程。
它不授予模板配置权限,但允许用户完成潜在的恶意请求(例如,针对[email protected])。
启用像SubCA 这样的危险模板。
添加第二个用户([email protected]) 作为证书官员。
颁发模拟[email protected] 的证书。
模板必须支持:
ENROLLEE_SUPPLIES_SUBJECT
客户端身份验证EKU
这些允许用户:
启用/批准模板
发出请求
修改关键CA 策略标志
批准请求
重新配置CA
完全控制证书基础设施
Note: 与针对现有漏洞的ESC6 不同,ESC7 允许攻击者创建或启用这些漏洞,使其成为更广泛、更危险的威胁,尤其是在CA 权限较弱的环境中。
该域必须配置Active Directory 证书服务和证书颁发机构。
Kali Linux 充满了工具
Tools: Evil-Winrm、certipy-ad
在CA 服务器上启动certsrv.msc,右键单击CA 名称(例如ignite-DC-CA),然后选择“属性”。
检查安全设置,转到“安全”选项卡并查看用户/组列表及其分配的权限。在这种情况下,经过身份验证的用户已被授予请求证书的权限。
虽然与弱证书模板结合使用时这已经是一个潜在风险,但以下错误配置会带来更大的威胁。
为什么这很危险:
“管理CA”权限允许用户:
修改证书模板。
配置证书颁发策略。
添加或删除注册代理。
重新启动CA 服务。
这是使用: 完成的
certipy-ad find -u '[email protected]' -p 密码@1 -dc-ip 192.168.1.48 -vulnerable -enabled
该命令查询AD CS 以列出启用的模板、识别漏洞并评估注册权限、主题字段和EKU 设置等配置。
让我们读取以.txt 或.json 文件格式保存的内容。
这证实了非特权用户raj 具有危险权限(ManageCa),从而为ESC7 打开了大门。
certipy-ad ca -ca ignite-DC-CA -add-officer raj -u [email protected] -p 密码@1 -目标192.168.1.48 -dc-ip 192.168.1.48
certipy-ad ca -ca ignite-DC-CA -u [email protected] -p 密码@1 -目标192.168.1.48 -enable-template SubCA -dc-ip 192.168.1.48
这使得SubCA 等模板容易被滥用,特别是如果它们
目录
ESC7 攻击概述比较ESC6 和ESC7 先决条件实验室设置枚举利用利用Certipy 滥用CA 管理权限使用Evil-Winrm 进行利用后横向移动权限升级
缓解措施
ESC7 攻击概述
ESC7 是针对Active Directory 证书服务(ADCS) 的权限升级攻击媒介,该攻击源自证书颁发机构(CA) 上的不安全访问控制。具体来说,它针对的是错误地将强大的CA级别权限授予非特权或低特权帐户的情况,例如:管理CA管理证书这些权限如果被滥用或误解,可能会通过非法证书颁发提供直接的域危害路径。
是什么让 ESC7 成为可能?
ESC7 攻击的基础是通过certsrv.msc 访问的CA 本身的自由访问控制列表(DACL) 配置错误。启用ESC7: 的关键权限
ManageCA
授予对CA 配置的控制权,包括:添加或启用证书模板。
修改CA 策略设置。
设置EDITF_ATTRIBUTESUBJECTALTNAME2 标志经常在ESC6 风格滥用中被利用。
可用于提升或伪造任何模板以使其可利用。
Note: 这是ESC7中最危险的权限。
管理证书
允许批准待处理的证书请求。可用于绕过手动审批工作流程。
它不授予模板配置权限,但允许用户完成潜在的恶意请求(例如,针对[email protected])。
比较 ESC6 和 ESC7
根本原因
ESC6:
当低权限用户可以访问配置错误的模板(如ENROLLEE_SUPPLIES_SUBJECT)时,就会发生这种情况,从而允许在没有CA 访问权限的情况下进行利用。ESC7:
CA 的ACL 配置错误(通过certsrv.msc 设置),为[email protected] 等非特权用户提供了ManageCA 或ManageCertificates 等权限。滥用向量
ESC6:
攻击者只需通过危险模板进行注册(如果他们有权访问)。ESC7:
攻击者首先管理CA:启用像SubCA 这样的危险模板。
添加第二个用户([email protected]) 作为证书官员。
颁发模拟[email protected] 的证书。
所需权限
ESC6:
注册易受攻击的模板。模板必须支持:
ENROLLEE_SUPPLIES_SUBJECT
客户端身份验证EKU
ESC7:
CA 上的ManageCA 或ManageCertificates。这些允许用户:
启用/批准模板
发出请求
修改关键CA 策略标志
现实世界的影响
ESC6:
允许伪造证书以任何用户身份进行身份验证。ESC7:
以上都加:管理模板吗批准请求
重新配置CA
完全控制证书基础设施
Note: 与针对现有漏洞的ESC6 不同,ESC7 允许攻击者创建或启用这些漏洞,使其成为更广泛、更危险的威胁,尤其是在CA 权限较弱的环境中。
先决条件
Windows Server 2019 作为支持PKINIT 的Active Directory该域必须配置Active Directory 证书服务和证书颁发机构。
Kali Linux 充满了工具
Tools: Evil-Winrm、certipy-ad
实验室设置
本文首先检查一种常见的错误配置,即有人在证书颁发机构(CA) 上授予过多权限,从而可能允许攻击者提升权限或危害域环境。查看证书颁发机构安全权限
我们首先检查证书颁发机构(CA) 属性,以了解访问控制错误配置如何启用ESC7 攻击。在CA 服务器上启动certsrv.msc,右键单击CA 名称(例如ignite-DC-CA),然后选择“属性”。
检查安全设置,转到“安全”选项卡并查看用户/组列表及其分配的权限。在这种情况下,经过身份验证的用户已被授予请求证书的权限。
虽然与弱证书模板结合使用时这已经是一个潜在风险,但以下错误配置会带来更大的威胁。
危险信号:具有“管理 CA”权限的非管理员用户
在此场景中,标准域用户raj(来自IGNITEraj)已被明确授予对证书颁发机构的“管理CA”权限。
为什么这很危险:
“管理CA”权限允许用户:
修改证书模板。
配置证书颁发策略。
添加或删除注册代理。
重新启动CA 服务。
枚举利用
利用 Certipy 滥用 CA 管理权限
通过CA 权限访问Raj,我们现在将使用Certipy 逐步了解完整的攻击链。发现易受攻击和启用的模板
第一步是枚举CA 启用且可能容易被滥用的模板,包括权限较弱或配置存在风险的模板,例如ENROLLEE_SUPPLIES_SUBJECT。这是使用: 完成的
certipy-ad find -u '[email protected]' -p 密码@1 -dc-ip 192.168.1.48 -vulnerable -enabled
该命令查询AD CS 以列出启用的模板、识别漏洞并评估注册权限、主题字段和EKU 设置等配置。
让我们读取以.txt 或.json 文件格式保存的内容。
这证实了非特权用户raj 具有危险权限(ManageCa),从而为ESC7 打开了大门。
添加证书官员(滥用 ManageCA 权限)
我们现在利用ManageCA 权限(授予[email protected])将同一用户分配为证书官员,从而有效地使他们成为能够代表其他人颁发证书的注册代理。certipy-ad ca -ca ignite-DC-CA -add-officer raj -u [email protected] -p 密码@1 -目标192.168.1.48 -dc-ip 192.168.1.48
启用危险模板 (SubCA)
我们现在启用可用于身份验证模拟的高权限证书模板(SubCA)。certipy-ad ca -ca ignite-DC-CA -u [email protected] -p 密码@1 -目标192.168.1.48 -enable-template SubCA -dc-ip 192.168.1.48
这使得SubCA 等模板容易被滥用,特别是如果它们