ssh埠轉發原理與實現

2020-10-12 14:00:38

ssh埠轉發

一些命令引數
-C 壓縮資料傳輸-f 後臺登入使用者名稱密碼-N 不執行shell[與-g 合用] -g 允許開啟的埠讓遠端主機存取

在一臺公網伺服器上編輯 sshd 設定,開啟 ssh 轉發功能,重新啟動 ssh 服務,這是所有使用 ssh 隧道轉發前的必備操作:

vim /etc/ssh/sshd_config
AllowTcpForwarding yes
GatewayPorts yes
TCPKeepAlive yes
PasswordAuthentication yes
#systemctl restart sshd.service

本地轉發:
ssh -fCNg -L 5555:192.168.11.11:80 root@192.168.11.12
將遠端主機192.168.11.11的80埠通過公網伺服器 11.12 轉發到原生的5555埠。
本地轉發就是本地跟公網伺服器先建立連線,公網伺服器再與目標主機的埠建立連線之後將目標主機的埠轉發到本機的指定埠上。最終達成的效果是本機存取本機的某一個埠就可以實現存取目標埠,流量走勢一般為:
外部流量–》本地5555埠—》遠端伺服器—》到目標主機埠
本地轉發可以達到的效果是,將遠端公網伺服器的埠轉發到本地,讓原生的其他機器存取此主機的時候,就相當於存取了遠端的公網伺服器。

遠端轉發:
ssh -fCNg -R 5555:172.16.99.146:80 root@172.16.99.150
#將存取公網伺服器的5555埠的流量轉發到本機然後再由本機轉發到172.16.99.146:80
流量走勢:
外界流量—》遠端伺服器5555埠—》本機–》目標主機的埠
通過遠端轉發可以將自己的本地埠轉發到公網伺服器上,達到的效果是存取公網伺服器上的指定埠就可以存取到本地機器。

動態轉發:ssh -fCNg -D 5555 root@192.168.11.12
#將所有存取本地5555埠的流量通過公網伺服器192.168.11.12轉發出去。相當於一個socks代理。

假設有主機a,b,c,公網伺服器四臺機器。
a可以存取b但存取不了公網伺服器,b兩者都能存取,公網伺服器可以存取b,c只能存取公網伺服器。
當a想存取公網伺服器時候,就可以在b上執行ssh本地埠轉發,這樣子a存取b上的一個埠就相當於存取了公網伺服器。
當有一臺外部主機想存取b的時候,就可以在b上執行ssh遠端埠轉發,將存取公網伺服器的某個埠的流量轉發到b主機自己身上。

其他

在meterpreter上設定路由

run get_local_subnets
run autoroute -s 172.17.0.0/24
add route ip/24 sessionid
https://www.anquanke.com/post/id/85580
設定socks5
background
use auxiliary/server/socks5
run

設定proxychains

root@kali:~# vim /etc/proxychains.conf
dynamic_chain
socks5 192.168.124.135 8800
proxyresolv www.baidu.com #檢測代理是否成功
cp /usr/lib/proxychains3/proxyresolv /usr/bin/ #如果顯示沒有proxyresolv命令就在shell中執行這一行命令
proxychains nmap -sS ip

ew

ew代理實戰