ssh端口转发原理与实现

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 [email protected]
将远程主机192.168.11.11的80端口通过公网服务器 11.12 转发到本地的5555端口。
本地转发就是本地跟公网服务器先建立连接,公网服务器再与目标主机的端口建立连接之后将目标主机的端口转发到本机的指定端口上。最终达成的效果是本机访问本机的某一个端口就可以实现访问目标端口,流量走势一般为:
外部流量–》本地5555端口—》远程服务器—》到目标主机端口
本地转发可以达到的效果是,将远程公网服务器的端口转发到本地,让本地的其他机器访问此主机的时候,就相当于访问了远程的公网服务器。

远程转发:
ssh -fCNg -R 5555:172.16.99.146:80 [email protected]
#将访问公网服务器的5555端口的流量转发到本机然后再由本机转发到172.16.99.146:80
流量走势:
外界流量—》远程服务器5555端口—》本机–》目标主机的端口
通过远程转发可以将自己的本地端口转发到公网服务器上,达到的效果是访问公网服务器上的指定端口就可以访问到本地机器。

动态转发:ssh -fCNg -D 5555 [email protected]
#将所有访问本地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代理实战


猜你喜欢

转载自blog.csdn.net/qq_41874930/article/details/108998843