
文章目录Venom渗透测试用的多级代理工具功能覆盖渗透测试核心需求工作机制安装和使用局限性Venom渗透测试用的多级代理工具做渗透测试的人都知道内网渗透最头疼的就是多层网络跳转。手动搭代理链一层一层地转发流量配置繁琐还容易出错。Venom 这个项目就是为了解决这个问题而生的。Venom 是一款用 Go 语言开发的多级代理工具专门为渗透测试场景设计。它能把多个节点串联起来以节点为跳板构建多级代理把网络流量一步步推进到深层内网。GitHub 上 Star 数 2,164项目已经有一批稳定用户。功能覆盖渗透测试核心需求Venom 的功能设计很贴合实际渗透测试工作流可视化网络拓扑一眼看清节点之间的连接关系多级 socks5 代理逐层深入内网多级端口转发支持本地和远程两个方向端口复用能在 Windows 上复用 apache、mysql 的端口Linux 上可复用多数服务端口被复用的端口还能正常提供原有服务SSH 隧道连接节点支持密码和私钥两种认证方式交互式 shell直接在目标节点上执行命令文件上传和下载节点间通信加密通过密码生成 AES 密钥跨平台方面Linux、Windows、MacOS 都支持架构覆盖 x86、x64、arm、mips。针对 IoT 设备的 arm/mips 架构项目还专门做了优化缩减了二进制文件体积和内存占用去掉了端口复用和 SSH 隧道两个功能来换取更小的资源消耗。工作机制Venom 的架构分 admin 节点和 agent 节点。有意思的是两端都能主动发起连接也都能监听等待连接。比如可以让 admin 监听端口等 agent 连上来也可以反过来让 agent 监听admin 主动去连。admin 节点提供了一套完整的内置命令show 查看网络拓扑goto 切换到某个节点进行操作connect/listen/sshconnect 建立节点间连接shell 获取交互式终端upload/download 传文件socks 开启代理lforward/rforward 做端口转发。端口复用这块做得比较细致。Venom 提供两种方案一种通过 SO_REUSEPORT 和 SO_REUSEADDR 系统选项跨平台通用另一种通过 iptables 规则仅限 Linux 但适用范围更广。第二种方案还考虑了安全性用 iptables -m recent 机制通过特殊 TCP 包来控制转发规则的开关避免 agent 被意外杀掉后 iptables 规则残留导致正常服务不可用。节点间的通信流量默认不加密但可以通过 -passwd 参数指定密码程序会用这个密码生成 AES 密钥来加密所有节点间的数据传输。在真实渗透测试环境中这个功能很有必要。安装和使用可以直接从 GitHub Release 页面下载预编译好的二进制文件省去编译步骤。如果想从源码编译需要 Go 1.11 以上版本clone 下来执行 build.sh 就行。基本流程是启动 admin 监听端口然后在目标机器上运行 agent 连接上来。连上之后用 show 命令同步拓扑goto 到目标节点就可以执行 shell、传文件、开代理等操作了。整个过程比较直观命令行的帮助信息也写得清楚。局限性现阶段只支持单个 admin 节点管理网络不能多个 admin 同时操作。每次有新节点加入都需要在 admin 上运行 show 命令手动同步拓扑。项目 TODO 列表里写了计划支持多 admin 节点、RESTful API、与 reGeorg 和 Meterpreter 联动等功能但目前还是 1.0 阶段。另外这个工具明确声明仅限安全研究和教学用途使用者需要自行承担所有法律相关责任。这是渗透测试工具的常规声明但使用时确实要注意授权问题。使用者需要自行承担所有法律相关责任。这是渗透测试工具的常规声明但使用时确实要注意授权问题。