一种从域管理员提权到企业管理员的
全新攻击路径
CA服务器的AD计算机对象(即通过S4U2Self或S4U2Proxy进行攻击)
CA服务器的RPC/DCOM 服务
容器中的子对象或子容器(例如证书模板容器、证书颁发机构容器、NTAuthCertificates 对象、注册服务容器等)
Configuration > Services > Public Key Services
下面是该层次结构的图表,包括将要滥用的对象:
再次连接到域本地配置命名上下文(Configuration NC),导航到Public Key Services容器,并显示其安全描述符:
现在可以添加ACE。向该对象添加一个ACE,以便Bob - 子域中的用户 -完全控制该容器:
现在再看一下Public Key Services容器,但这次是在林根域控制器上的配置命名上下文(Configuration NC)中:
可以看到ACE已经从子域复制到了林根域。
当想滥用LDAP中PKI对象的控制时,至少需要以下能力来执行 ESC5:
能够将新模板添加到证书模板容器。
对与林根CA关联的pKIEnrollmentService对象的写入访问权限,以及与NT身份验证可信的CA关联或链接到的pKIEnrollmentService 对象。
接下来将向您展示如何将子域中的域管理员转换为林根目录中的企业管理员。通过之前的知识您可以看到,作为子域中的域管理员,可以完全控制Public Key Services容器。
虽然无法完全控制 pKIEnrollmentService 对象,但可以授予自己其控制权,因为该对象启用了权限继承:
但是默认模板禁用了权限继承,作为子域中的域管理员无法控制它们:
接下来看一下Certificate Templates容器本身的安全描述符:
使用PsExec以SYSTEM用户身份在子DC上启动MMC:
然后,将连接到域本地配置命名上下文(Configuration NC)并导航到Certificate Templates容器。现在可以完全控制该对象,其中包括添加子对象的能力。
可以用SYSTEM用户身份打开certsrv.msc,然后复制现有模板:
打开新模板的属性,通过在模板配置以下选项来执行ESC1:
1.向在子域中控制的主体授予注册权限。
2.将客户端身份验证包含在应用程序策略中。
3.允许证书请求中的 SAN。
4.未启用管理员批准或授权签名。
现在,需要将模板发布到CA。可以通过滥用对该对象的完全控制,以子DC上的SYSTEM用户身份执行此操作:
当证书在此对象的certificateTemplates属性上列出时,证书就会“发布”到CA。所以说,想将模板“发布”到CA,需要做的就是将模板添加到该列表中:
如果在林根域控制器上启动certsrv.ms 并检查CA的“证书模板”,确实可以看到这个新的恶意模板现在已“发布”并可供使用:
现在准备工作已经完成,可以执行 ESC1 将子域中的 DA 转换为林根域的 EA。
使用 Certify 来获取证书,指定恶意模板和想要模拟的企业管理员:
使用openssl将证书转换为PFX:
通过 RDP 连接将 PFX 放到子域DC上,使用Rubeus为企业管理员用户获取 TGT:
可以通过wmic证明TGT是有效的:
用图表来描述这个攻击路径将有助于理解所有的横向移动关键点。
从林根域及其配置命名上下文(Configuration NC)中的相关对象开始,青色节点是根域,橙色节点是容器,紫色节点是C 对象:
现在添加与林根域具有双向信任的子域:
子域具有林根域的配置命名上下文(Configuration NC)的子域本地副本:
对子域中的域本地对象所做的更改将复制到林根域中的相应对象:
子域的域控制器上的SYSTEM用户可以完全控制从林根域的配置命名上下文(Configuration NC)复制到本地子域的某些对象:
对"Certificate Templates"容器的完全控制意味着能够向该容器添加新对象。此处添加的任何新模板也会复制到林根域:
CA是林根域的根CA,林根域有着自己的用户,如ForestRootDA用户:
红色边缘显示了从子域的域控制器到林根域管理员的整个攻击路径:
*本文部分节选自SpecterOps公司发表的《From DA to EA with ESC5》一文。
原文链接:
https://specterops.io/blog/2023/05/16/from-da-to-ea-with-esc5/
原文始发于微信公众号(中安网星):揭秘域管理员提权路径:使用ESC5从DA到EA
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论