8
月
在社区成长 8 月
LEVEL 90
100 XP
在AD CS 系列的最后一篇文章中,我们了解了如何使用ESC1 在Active Directory 中获得更高的权限。在这篇文章中,我们将解释AD CS ESC2 证书利用,其中低级别用户可以请求“任何目的”证书。这种薄弱的设置使攻击者可以获取其他用户的证书,然后他们可以使用该证书在不知道密码的情况下登录,从而使整个域面临风险。
客户端身份验证(1.3.6.1.5.5.7.3.2)
智能卡登录(1.3.6.1.4.1.311.20.2.2)
任何目的(2.5.29.37.0)
这些EKU 使攻击者能够请求证书并通过Kerberos (PKINIT) 以不同用户身份进行身份验证,完全绕过密码。
我们已经在上一篇文章中详细介绍了ADCS 的工作原理,因此从现在开始,我们将仅关注ESC2 攻击的实际方面,而不会重新审视基础ADCS 理论。
该攻击滥用了证书模板上错误配置的扩展密钥用法(EKU),特别是允许“客户端身份验证”或“任何目的”的模板,这两种模板都通过PKINIT 启用Kerberos 身份验证。
虽然这看起来似乎无害,但与NTLM 中继或强制攻击结合使用时,攻击者可以使用这些相同的模板来欺骗特权用户通过易受攻击的模板请求证书,从而获得域管理员访问权限。
使用impacket-psexec 进行利用后横向移动权限升级
使用Metasploit 进行ESC2 攻击
使用Evil-Winrm 横向移动权限升级
缓解
既然对比已经很清楚了,那么我们直接进入讨论吧
Impact: 即使是最安全的密码配置和多重身份验证设置也会变得无效。 ESC2 绕过了所有这些。
Impact: 网络中没有特殊权限的普通用户可以利用ESC2 来升级权限或维持访问权限。
Impact: ESC2 可实现难以检测的持久、隐秘访问,为攻击者提供在环境中的长期立足点。
Impact: 当与其他漏洞利用链接时,ESC2 可以打开完成域接管的大门。
Impact: ESC2 经常被低估,使组织在不知不觉中面临严重威胁。
Impact: 传统的SIEM 和防病毒解决方案可能无法检测ESC2,除非明确配置它们来监视事件ID 4887 或异常证书注册等事件。
Note: ESC2 就像让攻击者打印自己的访问徽章看起来合法,工作完美,但他们从未获得授权
在这篇文章中,我们将利用配置错误的ADCS 环境,允许低权限用户通过易受攻击的证书模板(ESC2) 模拟高权限帐户。
域必须配置Active Directory 证书服务和证书颁发机构。 •
Kali Linux 包含各种工具
工具: Evil-winrm、Impacket、certipy-ad、Metasploit
太棒了,让我们逐步了解完整的ESC2 ADCS 实验室设置。
在域控制器上运行: certtmpl.msc 并导航到证书模板→ 管理
右键单击它→ 单击“复制模板”。
常规选项卡更改模板显示名称为: ESC2
(可选)更改有效期(默认1年即可)
请求证书时会显示该名称
配置使用者名称TabSelect: 从此Active Directory 信息构建
此设置可防止攻击者提供自己的身份(例如CN=Administrator)
配置扩展选项卡转到扩展选项卡
接下来,选择应用程序策略→ 单击编辑
在编辑窗口内:选择:代码签名→单击删除
点击添加
选择任何目的
然后单击“确定”配置安全选项卡单击“添加”→ 输入“域用户”→ 单击“确定”
选择域用户
检查→ 注册
什么是 ESC2?
ESC2(升级路径2)是Active Directory 证书服务(AD CS) 中的一个漏洞,其中证书模板允许低权限用户注册,并且该模板包含危险的扩展密钥用法(EKU),如:客户端身份验证(1.3.6.1.5.5.7.3.2)
智能卡登录(1.3.6.1.4.1.311.20.2.2)
任何目的(2.5.29.37.0)
这些EKU 使攻击者能够请求证书并通过Kerberos (PKINIT) 以不同用户身份进行身份验证,完全绕过密码。
我们已经在上一篇文章中详细介绍了ADCS 的工作原理,因此从现在开始,我们将仅关注ESC2 攻击的实际方面,而不会重新审视基础ADCS 理论。
该攻击滥用了证书模板上错误配置的扩展密钥用法(EKU),特别是允许“客户端身份验证”或“任何目的”的模板,这两种模板都通过PKINIT 启用Kerberos 身份验证。
ESC2的核心思想:
“如果我(作为低权限用户)可以获得允许任何目的的证书,那么我就可以以我自己的身份向域进行身份验证- 甚至不需要知道我的密码。”虽然这看起来似乎无害,但与NTLM 中继或强制攻击结合使用时,攻击者可以使用这些相同的模板来欺骗特权用户通过易受攻击的模板请求证书,从而获得域管理员访问权限。
目录
比较ESC1 与ESC2 为什么ESC2 危险?先决条件实验室设置枚举和利用Certipy 进行ESC2 攻击使用impacket-psexec 进行利用后横向移动权限升级
使用Metasploit 进行ESC2 攻击
使用Evil-Winrm 横向移动权限升级
缓解
比较 ESC1 和 ESC2
既然对比已经很清楚了,那么我们直接进入讨论吧
为什么 ESC2 很危险?
使用证书进行无密码身份验证
在ESC2 攻击中,攻击者使用证书而不是密码来访问Active Directory,从而绕过传统身份验证。这样就无需破解密码或窃取密码哈希值。由于不需要暴力方法,攻击者可以简单地注册证书并进行身份验证,完全绕过MFA 和任何现有的密码复杂性策略。Impact: 即使是最安全的密码配置和多重身份验证设置也会变得无效。 ESC2 绕过了所有这些。
任何加入域的用户都可以利用
ESC2 不依赖管理权限。如果证书模板配置错误并且可以被“经过身份验证的用户或任何目的”访问,则任何标准域用户都可以利用它。这意味着攻击者不需要提升权限即可开始攻击。Impact: 网络中没有特殊权限的普通用户可以利用ESC2 来升级权限或维持访问权限。
持久且隐秘的访问
证书的使用寿命通常很长,有时长达数月甚至数年。一旦被盗或误用,它们可以重复重复使用,而不会触发密码更改或登录失败等典型警报。Impact: ESC2 可实现难以检测的持久、隐秘访问,为攻击者提供在环境中的长期立足点。
与其他攻击结合使用时威力强大
ESC2 在与NTLM 中继、强制或横向移动等攻击结合使用时尤其危险,因为攻击者可以诱骗特权帐户请求易受攻击的证书,从而导致整个域受到损害。Impact: 当与其他漏洞利用链接时,ESC2 可以打开完成域接管的大门。
经常被误解和忽视
许多人认为证书只是用于加密,但在AD CS 中,它们充当强大的身份验证令牌- 使配置错误的模板与暴露SSH 私钥一样危险。Impact: ESC2 经常被低估,使组织在不知不觉中面临严重威胁。
使用标准工具进行检测具有挑战性
AD CS 中的证书颁发是静默的,没有登录提示或失败,允许攻击者生成Kerberos 票证并稍后移动,而不会触发典型的安全警报。Impact: 传统的SIEM 和防病毒解决方案可能无法检测ESC2,除非明确配置它们来监视事件ID 4887 或异常证书注册等事件。
Note: ESC2 就像让攻击者打印自己的访问徽章看起来合法,工作完美,但他们从未获得授权
在这篇文章中,我们将利用配置错误的ADCS 环境,允许低权限用户通过易受攻击的证书模板(ESC2) 模拟高权限帐户。
先决条件
Windows Server 2019 作为支持PKINIT 的Active Directory •域必须配置Active Directory 证书服务和证书颁发机构。 •
Kali Linux 包含各种工具
工具: Evil-winrm、Impacket、certipy-ad、Metasploit
太棒了,让我们逐步了解完整的ESC2 ADCS 实验室设置。
实验室设置
从启动证书模板控制台开始在域控制器上运行: certtmpl.msc 并导航到证书模板→ 管理
步骤:
1:复制“证书模板”模板
向下滚动并找到“代码签名”模板。右键单击它→ 单击“复制模板”。
2:配置新模板
将打开一个带有选项卡的新窗口。逐个选项卡进行操作。常规选项卡更改模板显示名称为: ESC2
(可选)更改有效期(默认1年即可)
请求证书时会显示该名称
配置使用者名称TabSelect: 从此Active Directory 信息构建
此设置可防止攻击者提供自己的身份(例如CN=Administrator)
配置扩展选项卡转到扩展选项卡
接下来,选择应用程序策略→ 单击编辑
在编辑窗口内:选择:代码签名→单击删除
点击添加
选择任何目的
然后单击“确定”配置安全选项卡单击“添加”→ 输入“域用户”→ 单击“确定”
选择域用户
检查→ 注册