前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >应用层隧道技术:SSH隧道反向代理(非主流用法)

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

作者头像
FB客服
发布2021-09-16 10:36:00
2.5K0
发布2021-09-16 10:36:00
举报
文章被收录于专栏:FreeBufFreeBuf

常用的三种代理功能

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

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

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

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

使用参数

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

-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远程桌面访问

代码语言:javascript
复制
vim /etc/proxychains.conf    //修改proxychains配置文件

总结

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常用的三种代理功能
  • 使用参数
  • 应用场景
    • 实验拓扑
      • 反向代理+socks5代理
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档