8月25日笔记

devtools/2024/9/25 5:38:40/

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是采用Go编写的,所以静态连接的程序有一点大,原程序有2.2MB,而UPX压缩后只有800KB。

IOX特性

  • 流量加密(可选)
  • 友好的命令行参数
  • 逻辑优化
  • UDP流量转发
  • 反向代理模式中使用 TCP 多路复用

工具下载

项目地址:https://github.com/EddieIvan01/iox
将项目源码克隆到本地

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

QQ_1724586587730.png

iox参数

-l:监听本地的端口,带 * 意味着流量加密
-r:连接远程主机的端口,带 * 意味着流量加密
-k:十六进制格式键,用于生成键和 IV
-u:UDP 转发模式
-t:设置连接超时时间,默认是 5000s
-v:开启日志输出
-h:查看帮助

centos7下载go环境

文件地址:https://golang.google.cn/dl/go1.23.0.linux-amd64.tar.gz
安装命令:

tar -zxvf go1.23.0.linux-amd64.tar.gz -C /usr/local/

安装完成之后,通过修改配置文件 /etc/profile,使得环境变量永久生效。打开文件,在文件的最后加上下面的两行代码

export GOROOT=/usr/local/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

QQ_1724592055025.png
改完配置之后下次开机时才会生效。可以使用下面的命令来立刻生效。

source /etc/profile

go环境变量配置之后,查看版本和环境变量。

go version		#查看go的版本号
go env				#查看go的环境变量

QQ_1724592440249.png

iox工具编译安装

go环境安装完之后去到iox的文件夹。
执行以下命令。会生成一个名为iox的可执行文件。

go build -o iox main.go

QQ_1724592571685.png
QQ_1724592943307.png
网络问题,连接被拒绝了。
配置国内代理:

go env -w GOPROXY=https://goproxy.cn,direct

配置完再执行:go build -o iox main.go
QQ_1724593071726.png
成功编译。

iox的使用

所有的参数都是统一的。-l/--local意为监听本地端口;-r/--remote意为连接远端主机

-l 127.0.0.1:9999      -l *127.0.0.1:9999    ----------》 127.0.0.1:9999
-l 9999                -l *9999              ----------》 0.0.0.0:9999

iox有两种工作模式。

fwd转发模式

监听 0.0.0.0:88880.0.0.0:9999(即本地),将两个连接间的流量进行转发

./iox fwd -l 8888 -l 9999

QQ_1724593671054.png
监听本地 8888 端口将流量转发到 39.99.251.19 机器的 9999 端口,流量加密,密钥是:‘AAA’

./iox fwd -l *8888 -l *9999 -k 656565

QQ_1724593867489.png
监听本地 8888 端口将流量转发到 192.168.5.168机器的 9999 端口

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

QQ_1724594014359.png
监听本地 8888 端口将流量转发到 192.168.5.168 机器的 9999 端口,流量加密

./iox fwd -l *8888 -r *192.168.5.168:9999 -k 656565

QQ_1724594185628.png
连接 192.168.5.168:8888 和 192.168.5.168:9999, 在两个连接间转发流量
./iox fwd -r 192.168.5.168:8888 -r 192.168.5.168:9999
QQ_1724594280230.png
连接 192.168.5.168:8888 和 192.168.5.168:9999, 在两个连接间转发流量,流量加密
./iox fwd -r *192.168.5.168:8888 -r *192.168.5.168:9999 -k 656565
QQ_1724594341614.png

实践模拟

将内网主机的RDP端口转发到VPS上。
场景:公司拥有一台位于内网环境中的服务器,该服务器运行着 Windows Server 操作系统,并提供了远程桌面服务(RDP)。为了便于远程管理和维护这台服务器,您希望能够从外部网络通过 RDP 访问到这台内网服务器。然而,由于公司的网络策略和安全限制,内网服务器无法直接从外部网络访问。为了解决这个问题,使用了一台位于公共网络上的 VPS 作为跳板和拥有内网那台主机的权限。
VPS执行以下命令:

./iox fwd -l *9999 -l 3389 -k 656565

目标机器上执行

iox.exe fwd -r 192.168.5.128:3389 -r *192.168.5.168:9999 -k 656565

执行完命令之后连接192.168.5.168的3389端口就能连接登录上内网主机。
QQ_1724598618127.png
QQ_1724598607905.png
这里被控主机和 VPS:8888 之间的流量会被加密,预共享的密钥是’AAA’。

proxy代理模式

socks5反向代理

场景:我们获得了一个位于内网的通过 NAT 方式对外提供服务的主机的权限,现在我们需要对其所在的内网继续进行渗透。于是,我们就需要通过iox 建立一个 socks5 隧道代理,让我们的主机可以通过隧道访问其内网。
VPS执行以下命令:

./iox proxy -l *9999 -l *1080 -k 656565

目标机器执行以下命令:
将流量转发到192.168.5.168的 9999 端口

iox.exe proxy -r *192.168.5.168:9999 -k 656565

QQ_1724600026762.png
成功建立socks5隧道。接着使用socks5代理192.168.5.168的1080端口即可访问内网.
QQ_1724600254684.png
成功访问。

socks5正向代理

目标机器执行

./iox proxy -l 1080

QQ_1724600443186.png
QQ_1724600459377.png


http://www.ppmy.cn/devtools/100229.html

相关文章

【C++】————智能指针

作者主页: 作者主页 本篇博客专栏:C 创作时间 :2024年8月20日 一,什么是智能指针 在C中没有垃圾回收机制,必须自己释放分配的内存,否则就会造成内存泄露。解决这个问题最有效的方法是使用智能指针&…

Open3D 基于曲率条件的滤波(37)

Open3D 基于曲率条件的滤波(37) 一、算法介绍二、算法实现1.代码2.效果 一、算法介绍 曲率是描述曲面或曲线弯曲程度的数学量。在三维空间中,曲率可以用于分析点云数据的几何特征。通常,较小的曲率值表明该点位于相对平坦的区域&…

25考研计算机组成原理复习·4.3程序的机器级代码表示

目录 高级语言与机器级代码之间的对应 常见的算术运算指令 常见的逻辑运算指令 AT&T格式 v.s. Intel格式 选择语句的机器级表示 无条件转移指令——jmp 条件转移指令——jxxx 示例:选择语句的机器级表示 循环语句的机器级表示 用条件转移指令实现循环…

Vue3项目开发——新闻发布管理系统(二)

文章目录 五、项目的目录调整六、系统整体路由设计开发1、系统整体路由分析2、路由配置2.1路由代码解析2.2路由信息设计2.3系统路由信息汇总2.4路由信息配置2.5路由对应Vue组件框架3系统效果五、项目的目录调整 默认生成的src目录结构如下: 这个结构不能满足我们的开发需求,…

计算机网络-数据链路层

数据链路层 概述 链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点 数据链路是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路 数据链路层以帧为单位传输和处理数据 封装成帧 差错检测 可靠传输 实现发送方发送什么…

PHP反序列化二

1.反序列化基础利用 2.pop链 POP链: POP(面向属性编程)链是指从现有运行环境中寻找一系列的代码或指令调用,然后根据需求构造出一组连续的调用链。 反序列化利用就是要找到合适的POP链。其实就是构造一条符合原代码需求的链条,去找到可以控…

Scrapy 分布式爬虫框架 Scrapy-Redis

github官网代码示例:https://github.com/rmax/scrapy-redis/blob/master/example-project/example/spiders/myspider_redis.py 什么是 Scrapy-Redis Scrapy-Redis 是一个基于 Scrapy 的扩展,用于实现分布式爬虫。它利用 Redis 作为分布式队列来共享待爬…

linux搭建ceph集群

linux三节点搭建ceph集群 主机IP主机名称172.26.50.75node1172.26.50.112node2172.26.50.228node3 ceph-mon,ceph-mgr,ceph-mds都搭建在node1上,node2和node3上搭建ceph-osd,每个机器1个osd Ceph是一个分布式的存储系统&#x…