跳板技术和流量隧道介绍

1.1 环境介绍

  在下图中,攻击者IP为192.168.43.140,模拟互联网环境,内部网络为172.16.10.0/24,防火墙使用pfsense,作为内部系统的网关,内网地址为172.16.10.1,外网地址为192.168.49.100/24。192.168.49.140无法直接访问内网。192.168.49.139模拟DMZ区,内部网络访问外部网络依具体情况而定。
环境拓扑

1.2 SSH端口转发

1.2.1 本地端口转发

  本地端口转发,在本地侦听端口,将请求转发到远程主机的指定端口。端口转发基于建立起来的隧道,隧道中断则端口转发中断;只能在建立隧道时创建转发,不能为已有的隧道增加端口转发。如下图,假定172.16.10.20只允许访问53端口(DNS为UDP协议,此处假定开放了TCP/UDP的53端口)。现在想要访问互联网,需将本地的某个端口转发到互联网系统的对应服务端口。
防火墙配置如下:
在这里插入图片描述
在这里插入图片描述
  在上图中,防火墙只允许172.16.10.20主机53端口的出站流量,如果想要访问外部服务,需要进行本地端口转发,如下。
参数说明:

ssh user@<remote_ssh_server> -p <remote_ssh_port> -L <local port>:<web server ip>:<web server port>
-f 后台运行进程
  -C 压缩数据,Requests compression of all data
  -N 不执行登录shell,仅用于端口转发 
  -g Allows remote hosts to connect to local forwarded ports,使本受限网段主机都可以使用建立的隧道。比如同一内网的172.16.10.21,22都可以连接到kali建立的ssh隧道

1、将流量通过SSH Server(192.168.49.140)转发到SSH Server自身的端口80,并访问192.168.49.140的web服务进行测试:

ssh -fCNg sansforensics@192.168.49.140 -p53 -L 8080:127.0.0.1:80

在这里插入图片描述
远程主机接收到请求:
在这里插入图片描述
内网同网段的主机访问172.16.10.20转发的端口:
在这里插入图片描述
2、将流量通过ssh server转发到192.168.49.150的3389:
在这里插入图片描述
如下图,转发之前,无法连接192.168.49.150的3389:
在这里插入图片描述
转发之后进行连接测试:

ssh -fCN sansforensics@192.168.49.140 -p 53 -L 3389:192.168.49.150:3389

在这里插入图片描述

1.2.2 远程(reverse)端口转发

  远程侦听端口,访问转发到本地主机的指定端口。在实际情况中,远程用户应该为低权限用户,无shell权限。假定172.16.10.20可以访问192.168.49.140,但192.168.49.140无法直接访问172.16.10.20。假定还是只允许53端口,现在192.168.49.140想要访问172.16.10.20上的8000端口,防火墙规则如下:
在这里插入图片描述
在这里插入图片描述
参数说明:

ssh -fCN user@<remote ssh server> -p <ssh server port> -R <remote listen port>:<forwarded ip>:<forwarded port> #远程端口转发-g参数无效

将192.168.49.140的8000端口转发到172.16.10.20的8000端口。172.16.10.20监听8000端口,如下:
在这里插入图片描述
进行转发:

ssh -fCN sansforensics@192.168.49.140 -p 53 -R 8000:172.16.10.20:8000

在192.168.49.140进行连接测试,可成功连接:
在这里插入图片描述
在Windows平台可用plink.exe(putty的命令版本):

plink.exe sshproxy@your_server -R 31337:127.0.0.1:31337

1.2.3 动态端口转发

  动态隧道模式,将远程SSH Server作为代理服务器。可用于在非受信任的网络环境使通信流量不被嗅探。本地监听socks5代理端口,由SSH Server决定如何转发,可作为翻墙代理使用。在使用时需配置客户端代理(浏览器),或使用proxychains来支持无代理客户端。
在下图中,将127.16.10.20的8000端口进行动态端口转发,然后使用浏览器配置代理,即可访问外部网络,防火墙策略如下:
在这里插入图片描述
在这里插入图片描述
参数说明:

ssh -D 8000 -p <ssh server port> user@<remote ssh server>

进行转发:
在这里插入图片描述
配置浏览器代理并测试:
在这里插入图片描述
在只允许53端口的情况下,可访问外部任意网络:
在这里插入图片描述

1.2.4 X协议转发

   X协议转发可作为远程登录Linux GUI来运行图形化工具(如VNC,X window)ssh -X user@ -p
如下图,在转发后,

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值