行业新闻

应用层隧道技术:SSH隧道反向代理(非主流用法)

应用层隧道技术:SSH隧道反向代理(非主流用法)

常用的三种代理功能

ssh命令除了登陆以外还有三种常用的代理功能:

正向代理(-L):相当于iptable的port forwarding

反向代理(-R):相当于frp或者ngrok

socks5代理(-D):相当于ss/ssr指定本地动态应用程序级端口转发。这通过分配一个套接字来侦听本地端的端口(可选地绑定到指定的bind_address)来实现。每当与此端口建立连接时,该连接都会通过安全通道转发,然后使用应用协议确定从远程计算机连接到的位置。当前支持SOCKS4SOCKS5协议,而ssh将充当SOCKS服务器。只有root可以转发特权端口。动态端口转发也可以在配置文件中指定

使用参数

建立隧道命令格式:ssh 参数> 代理模式> 侦听端口>:目标IP>:目标端口> user@sshserver> -p ssh server port>

-C:压缩传输,提高传输速度

-f:将ssh传输转入后台执行,不占用当前的shell

-N:静默连接,连接后看不到具体会话

-g:允许远程主机连接本地用于转发的端口

-L:本地端口转发

-R:远程端口转发

-D:动态转发(SOCKS 代理)

-p:指定ssh端口

应用场景

实验拓扑

1629111932_611a467cb04dc0967c8e2.png?1629111932825

1629107508_611a3534a7adc51bb8c3b.png?1629107508804

拓扑描述:防火墙对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

1629136682_611aa72ad68dd57eeb0aa.png?1629136682703

2.bodhi连接情况

1629114841_611a51d96201b831e02e2.png?1629114841472

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

1629114744_611a51787532e88f2bd3c.png?1629114744536

kali动态转发

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

1629120493_611a67ed21d89e5169cf2.png?1629120493276

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的密码

1629133840_611a9c10a0053b98040ba.png?1629133840506

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

1629124016_611a75b0ecfb114dd7a60.png?1629124017050

代理应用访问213网段资源

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

1629125106_611a79f2c901de171f16b.png?1629125106768

1629125294_611a7aaedb2f515599dd0.png?1629125294882

2.使用proxychains实现对win2008远程桌面访问

vim /etc/proxychains.conf    //修改proxychains配置文件

1629126475_611a7f4b03f5e03718510.png?1629126474950

1629126437_611a7f2535954ee8655ea.png?1629126437155

1629126625_611a7fe111308b64435b6.png?1629126625022

总结

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

关闭