8
月
在社区成长 8 月
LEVEL 90
100 XP
Active Directory 证书服务(ADCS) 通常是ESC3 证书攻击的目标,这些攻击利用证书模板中的错误配置来启用ADCS 证书攻击和权限升级等严重漏洞。尤其是ESC3,当与配置错误的证书请求代理(CRA) 模板结合使用时会造成重大威胁。此缺陷允许攻击者为高权限用户(例如域管理员)请求证书,从而为他们提供未经授权的访问并为进一步利用打开大门。
在本ADCS 系列的第2 部分中,我们概述了Active Directory 证书服务并演示了ESC2 升级技术。在本文中,我们将深入探讨AD CS ESC3 注册代理模板,这是一种升级方法,它利用配置错误的证书请求代理EKU(也称为“注册代理”),允许用户代表另一个用户(例如域管理员)请求证书。
使用impacket-psexec 进行利用后横向移动权限升级
使用Metasploit 进行ESC3 攻击
使用Evil-Winrm 横向移动权限升级
缓解措施
使ESC3 攻击成为可能的要求:
证书模板允许“代表注册”
攻击者拥有有效的证书请求代理证书
攻击者拥有易受攻击的证书模板的注册权限
对谁可以被冒充没有严格的限制
证书请求代理角色的分配过于广泛
ADCS 使用定义权限和使用情况的模板在Active Directory 中颁发证书。安全性较差的模板是此类攻击的主要目标
ESC1(滥用危险权限,例如ENROLL 和客户端身份验证),
ESC2(利用错误配置的发行策略),以及
ESC3(使用证书请求代理模板来模拟特权帐户)。
如果不严格控制,ADCS 可能成为域中横向移动和权限升级的强大工具。
ESC1、ESC2、ESC3证书模板的漏洞情况如下
就ESC3 而言,我们将介绍攻击者如何滥用配置错误的证书请求代理模板来代表特权用户请求证书,从而通过基于证书的身份验证实现模拟和未经授权的访问。
在Active Directory 证书服务(ADCS) 中,证书请求代理是受信任的帐户(通常是用户或服务帐户),有权代表其他用户或计算机请求证书。
这是委派注册模型的一部分,通常在以下环境中使用:
最终用户无法请求自己的证书(例如智能卡)
集中式系统或服务台为用户颁发证书
自动化系统处理身份配置
Note: 扩展密钥用法(EKU) 是一个证书字段,指定其预期用途,例如电子邮件加密、用户身份验证或安全Web 访问,每个用途都由唯一的对象标识符(OID) 表示。
域必须配置Active Directory 证书服务和证书颁发机构。
Kali Linux 包含各种工具
工具: Evil-winrm、Impacket、certipy-ad、Metasploit
在域控制器上运行certtmpl.msc,然后导航到证书模板→ 管理。
右键单击它→ 单击“复制模板”。
常规选项卡:
将模板显示名称设置为: ESC3
(可选)调整有效期- 默认1 年通常就足够了。
请求证书时会显示该名称
此设置可防止攻击者提供自己的身份(例如CN=Administrator)
选择域用户
检查→ 注册
选择应用程序策略→ 单击编辑
单击“添加”,然后选择“证书请求代理”并单击“确定”
在本ADCS 系列的第2 部分中,我们概述了Active Directory 证书服务并演示了ESC2 升级技术。在本文中,我们将深入探讨AD CS ESC3 注册代理模板,这是一种升级方法,它利用配置错误的证书请求代理EKU(也称为“注册代理”),允许用户代表另一个用户(例如域管理员)请求证书。
目录
什么是ESC3?ADCS 和证书模板风险证书请求代理EKUPrescriptuesLab 设置枚举和利用使用Certipy 的ESC3 攻击使用impacket-psexec 进行利用后横向移动权限升级
使用Metasploit 进行ESC3 攻击
使用Evil-Winrm 横向移动权限升级
缓解措施
什么是 ESC3?
使用证书请求代理的ESC3 允许指定用户代表企业公钥基础设施(PKI) 环境中的其他用户、计算机或服务请求证书。这通常用于最终用户由于缺乏访问或权限而无法自行请求证书的情况。使ESC3 攻击成为可能的要求:
证书模板允许“代表注册”
攻击者拥有有效的证书请求代理证书
攻击者拥有易受攻击的证书模板的注册权限
对谁可以被冒充没有严格的限制
证书请求代理角色的分配过于广泛
ADCS 和证书模板风险
Active Directory 证书服务(ADCS) 和证书模板如果配置错误,可能会带来重大风险,可能导致权限升级、横向移动或整个域受到损害。诸如ESC3 之类的证书攻击允许攻击者修改模板来颁发证书以进行特权模拟,从而有效绕过身份验证并实现隐秘、持久的访问。ADCS 使用定义权限和使用情况的模板在Active Directory 中颁发证书。安全性较差的模板是此类攻击的主要目标
ESC1(滥用危险权限,例如ENROLL 和客户端身份验证),
ESC2(利用错误配置的发行策略),以及
ESC3(使用证书请求代理模板来模拟特权帐户)。
如果不严格控制,ADCS 可能成为域中横向移动和权限升级的强大工具。
ESC1、ESC2、ESC3证书模板的漏洞情况如下
就ESC3 而言,我们将介绍攻击者如何滥用配置错误的证书请求代理模板来代表特权用户请求证书,从而通过基于证书的身份验证实现模拟和未经授权的访问。
证书请求代理 EKU
证书请求代理是授权用户或服务,通常通过特殊的证书模板,代表Active Directory 环境中的其他用户或设备请求数字证书。在Active Directory 证书服务(ADCS) 中,证书请求代理是受信任的帐户(通常是用户或服务帐户),有权代表其他用户或计算机请求证书。
这是委派注册模型的一部分,通常在以下环境中使用:
最终用户无法请求自己的证书(例如智能卡)
集中式系统或服务台为用户颁发证书
自动化系统处理身份配置
工作原理:
Note: 扩展密钥用法(EKU) 是一个证书字段,指定其预期用途,例如电子邮件加密、用户身份验证或安全Web 访问,每个用途都由唯一的对象标识符(OID) 表示。
滥用时的安全风险:
证书请求代理EKU 虽然对于委派注册很有用,但如果证书模板在未经批准的情况下包含它,则会构成严重的安全威胁,可供非特权用户访问,并且对可以模拟的身份缺乏限制。先决条件
Windows Server 2019 作为支持PKINIT 的Active Directory域必须配置Active Directory 证书服务和证书颁发机构。
Kali Linux 包含各种工具
工具: Evil-winrm、Impacket、certipy-ad、Metasploit
实验室设置
首先启动证书模板控制台:在域控制器上运行certtmpl.msc,然后导航到证书模板→ 管理。
复制“证书模板”模板
向下滚动并找到“代码签名”模板。右键单击它→ 单击“复制模板”。
配置新模板
将出现一个新窗口,其中包含多个选项卡,请一一浏览。常规选项卡:
将模板显示名称设置为: ESC3
(可选)调整有效期- 默认1 年通常就足够了。
请求证书时会显示该名称
配置主题名称选项卡
Select: 从此Active Directory 信息构建
此设置可防止攻击者提供自己的身份(例如CN=Administrator)
配置安全选项卡
单击“添加”→ 输入“域用户”→ 单击“确定”选择域用户
检查→ 注册
配置扩展选项卡
转到“扩展”选项卡选择应用程序策略→ 单击编辑
编辑窗口内:
选择: 代码签名→ 单击删除
单击“添加”,然后选择“证书请求代理”并单击“确定”