专栏首页FreeBufiox:一款功能强大的端口转发&内网代理工具

iox:一款功能强大的端口转发&内网代理工具

iox是一款功能强大的端口转发&内网代理工具,该工具的功能类似于lcx和ew,但是iox的功能和性能都更加强大。

实际上,lcx和ew都是非常优秀的工具,但还是有地方可以提升的。在一开始使用这些工具的一段时间里,那些复杂的命令行参数是很难记忆的,比如说tran、slave、rcsocks和sssocks等等。这些工具的工作机制非常清晰,明明可以用简单的参数来表示的,为什么要用这么复杂的参数来代替呢?除此之外,这些工具的网络编程逻辑也是可以优化的。比如说,在运行“lcx -listen 8888 9999”命令时,客户端必须先连接“:8888”,再连接“:9999”,实际上这两个端口的连接是没有顺序限制的,但是在iox里则没有这样的限制。再比如说,运行“lcx -slave 1.1.1.1 8888 1.1.1.1 9999”命令时,lcx会以串行的方式连接两个主机,但是并发连接两个主机会更高效,毕竟是纯I/O操作,而iox就是以这种更高效的方式实现的。

当然了,iox还提供了流量加密功能,你甚至还可以直接将iox当做一个简易的ShadowSocks来使用。除此之外,iox还提供了UDP流量转发的功能。

因为iox是采用Go编写的,所以静态连接的程序有一点大,原程序有2.2MB,而UPX压缩后只有800KB。

工具特性

1、流量加密(可选) 2、友好的命令行参数 3、逻辑优化 4、UDP流量转发

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/EddieIvan01/iox.git

工具使用

大家可以看到,iox所有的参数都是统一格式的,-l/—local代表监听本地端口;-r/—remote代表连接远端主机。

两种工作模式

fwd模式:

同时监听 0.0.0.0:8888 和0.0.0.0:9999,将两个连接间的流量进行转发。

./iox fwd -l 8888 -l 9999

for lcx:

./lcx -listen 8888 9999

监听0.0.0.0:8888,把流量转发到1.1.1.1:9999。

./iox fwd -l 8888 -r 1.1.1.1:9999

for lcx:

./lcx -tran 8888 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

for lcx:

./lcx -slave 1.1.1.1 8888 1.1.1.1 9999

proxy模式:

在本地 0.0.0.0:1080启动Socks5服务

./iox proxy -l 1080

for ew:

./ew -s ssocksd -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       // 注意,这两个端口是有顺序的

for ew:

./ew -s rcsocks -l 1080 -e 9999

./ew -s rssocks -d 1.1.1.1 -e 9999

接下来,连接内网主机:

# 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转发可能会有一些不合预期的行为。

许可证协议

iox的开发与发布遵循MIT开源许可证协议。

本文分享自微信公众号 - FreeBuf(freebuf),作者:Alpha_h4ck

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 苹果一招封杀多数iPhone解锁神器,美国警方无奈

    自从美国FBI和苹果公司就“解锁iPhone”的问题发生分歧之后,双方便开始了暗自较劲。美国警方寻找技术公司作为外援,已经掌握了多个破解iPhone的工具,而苹...

    FB客服
  • 使用第三方库进行软件开发的安全风险研究

    如今,很多软件由于长期使用第三方库文件,导致了持续的安全问题。而在程序开发设计阶段,开发者又经常忽略了第三方库代码的漏洞审查,甚至有些资源库(repositor...

    FB客服
  • 低成本制作一条BadUSB数据线

    在badusb的攻击方式被使用以来大多都是伪装成U盘或没有伪装就是一个裸板,毫无疑问裸板是最明显的了,谁会将一个莫明奇妙的线路板(例如digispark)插在电...

    FB客服
  • 一张图看懂JVM

    在应聘Java程序员时,经常会被问到JVM相关的知识点。而市面上讲解JVM原理及结构的书籍及资料,要么晦涩难懂,要么断章取义。那么有没有一张比较清晰的图能够将J...

    用户5927304
  • 安装 Linux系统监控工具 systat

    sysstat 是一款开源的自由软件,其源代码开源在 GitHub ,您可以首先拉取仓库源码:

    宋天伦
  • Android 需要配置的环境变量

    longzeqiu
  • 全方位的开源监控工具链介绍

    说到监控现在最火的是全链路监控(服务调用+HTTP调用+数据源访问+MQ链路的监控),但我认为这是狭义的全链路监控,广义的概念应该不仅仅指APM(Appliat...

    smooth00
  • HDU 1085 母函数 硬币组合

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Ot...

    csxiaoyao
  • golang学习之mgo操作mongodb

    mgo是mongodb的golang驱动,测试代码: // mgotest project main.go package main import ( ...

    用户1141560
  • Go语言教程五(视频)

    这一课的视频内容简介:go语言里的函数,defer, Recover, Pani ? 代码地址:https://github.com/azheng333/vid...

    刀刀老高

扫码关注云+社区

领取腾讯云代金券