常用的三种代理功能
ssh命令除了登陆以外还有三种常用的代理功能:
正向代理(-L):相当于iptable的port forwarding
反向代理(-R):相当于frp或者ngrok
socks5代理(-D):相当于ss/ssr指定本地“动态”应用程序级端口转发。这通过分配一个套接字来侦听本地端的端口(可选地绑定到指定的bind_address)来实现。每当与此端口建立连接时,该连接都会通过安全通道转发,然后使用应用协议确定从远程计算机连接到的位置。当前支持SOCKS4和SOCKS5协议,而ssh将充当SOCKS服务器。只有root可以转发特权端口。动态端口转发也可以在配置文件中指定
使用参数
建立隧道命令格式:ssh 参数> 代理模式> 侦听端口>:目标IP>:目标端口> user@sshserver> -p ssh server port>
-C:压缩传输,提高传输速度
-f:将ssh传输转入后台执行,不占用当前的shell
-N:静默连接,连接后看不到具体会话
-g:允许远程主机连接本地用于转发的端口
-L:本地端口转发
-R:远程端口转发
-D:动态转发(SOCKS 代理)
-p:指定ssh端口
应用场景
实验拓扑


拓扑描述:防火墙对bodhi做限制,对外出站只开放22端口,其他全部拒绝。kali不能访问192.168.213.0网段资源。
反向代理+socks5代理
按照上面的拓扑,kali想访问213段的资源是无法访问,这时候使用ssh隧道的远程端口转发+动态转发可以实现访问。
**********bodhi反向代理**********
1.首先在bodhi上使用远程端口转发(反向代理),将22端口的转发到kali上。
ssh -CfNg -R 7777:127.0.0.1:22 root@192.168.88.131

2.bodhi连接情况

3.在kali上查看连接情况,如图所示已经连接上了

kali动态转发
1.在kali上做动态转发(socks5代理)之前,先用浏览器访问防火墙的管理页面(http://192.168.213.253),可以看到毫无悬念还无法访问。

2.kali上做动态转发,由于做了隧道这里的流量就是 192.168.213.101:22==>192.168.88.131:7777,所以连接上kali的7777端口等同于连接上bodhi的22端口。
ssh -CfNg -D 6666 root@0.0.0.0-p 7777 //这里输入bodhi的密码

3.kali端口情况,如图下图所示

代理应用访问213网段资源
1.浏览器设置好代理,访问防火墙管理页面(http://192.168.213.253),这时就可以访问了。


2.使用proxychains实现对win2008远程桌面访问
vim /etc/proxychains.conf //修改proxychains配置文件



总结
这里的关键点是要把目标机器的ssh服务代理出来,如果内网环境允许向外发icmp包,也可以使用pingtunnel工具把ssh服务代理出来然后使用ssh的动态转发(应该可以还没实践)。这篇文章单纯记录一下本菜鸡学习中的一些瞎折腾,师傅们轻点喷。