SSH 还同时提供了一个非常有用的功能,这就是端口转发。
本地转发
攻击机正向连接靶机,将靶机的A端口映射到攻击机的B端口
ssh -L <local port>:<remote host>:<remote port> <SSH hostname>
例如 ssh -L <2222>:<neiwang.com>:<80> <victim.com>
,这里将victim主机可以访问到的neiwang.com主机的80端口,映射到攻击机的2222端口。
-g
: 攻击机的端口默认只开启在127.0.0.1,若希望在所有网卡都可以访问,设置GatewayPorts,添加 -g 选项
远程转发
攻击机无法正向连接靶机,靶机却可以反向连接到公网的攻击机
则在靶机上运行,主动与攻击机建立SSH隧道
ssh -R <local port>:<remote host>:<remote port> <SSH hostname>
例如,ssh -R <6666>:<neiwang.com>:<80> <attack.com>
,这里将victim主机可以访问到的neiwang.com主机的80端口,映射到攻击机的6666端口。
Socks代理
把SSH SERVER当作Socks服务器,在本地开启 localport 端口。亦称作动态端口转发。
ssh -D <local port> <SSH Server>
或者
使用XSHELL的查看->隧道窗格功能
转移规则一栏,右键,添加,选择类型Socks4/5,选择端口,确定。
浏览器设置Socks5代理,127.0.0.1:1080
参考阅读