
Vulnersデータベースから公開エクスプロイトを検索してダウンロード — オンライン、またはローカルのSQLite FTS5インデックスから完全オフラインで。
Vulners データベースから公開エクスプロイトを検索・ダウンロード — オンラインでも、ローカルインデックスによる完全オフラインでも。
API キーを取得 · Vulners 検索 · チェンジログ · アーキテクチャ · セキュリティポリシー

--update でエクスプロイト全体のローカル SQLite FTS5 インデックスを構築し、以降の検索はすべてローカルクエリになります。wordpress 4.7、CVE-2024-3094、ms17-010 は文字どおりにマッチし、意図的な全文検索式には完全な FTS5 構文が適用されます。--mirror で各エクスプロイト本文を個別のファイルに書き出します。Getsploit には Python 3.11 以降が必要です。
$ pipx install getsploit
$ uv tool install getsploit
$ python -m pip install getsploit
Vulners アカウント でキーを作成し、環境変数を通じて公開します:
$ export VULNERS_API_KEY="your-key" # pragma: allowlist secret
$env:VULNERS_API_KEY = "your-key" # pragma: allowlist secret
getsploit --set-key は、Getsploit ホームディレクトリ配下のプライベートファイルに、非表示の確認プロンプトを通じてキーを保存します。環境変数はそのファイルよりも優先され、自動化にはそちらが適しています。--api-key オプションはありません。コマンドラインで渡されたキーは、シェル履歴とプロセス一覧に残ってしまうためです。
オンライン検索と --update にはキーが必要です。--local と --status は必要ありません。
$ getsploit CVE-2024-3094
$ getsploit "wordpress 4.7 remote code execution" --count 25
クエリは変更されずに Vulners へ届くため、Lucene 構文 がドキュメントどおりに機能します:
$ getsploit 'title:wordpress AND description:"code execution"'
100 を超える --count は透過的にページングされます。1回の API レスポンスが担うドキュメントは最大でも100件です。
$ getsploit --update # download the archive and build the FTS5 index
$ getsploit --status # where it is, how big, how many documents
$ getsploit --local wordpress 4.7
通常の検索語は文字どおりにマッチするため、識別子やバージョン番号も入力したまま機能します: wordpress 4.7、CVE-2024-3094、ms17-010。列フィルター、ブール演算子、引用符、括弧、*、^ を使用したクエリは SQLite FTS5 式 として扱われ、形式が不正な場合は専用のエラーが報告されます:
$ getsploit --local 'title:eternalblue AND NOT description:metasploit'
検索可能な列は id、title、published、description、source_data です。旧形式の sourceData: という表記も引き続き受け付けられます。
$ getsploit --mirror wordpress 4.7
$ getsploit --local --mirror eternalblue
ファイルはクエリから生成されたディレクトリ内に、エクスプロイトごとに1ファイルずつ作成されます。シンボリックリンクは辿らず、既存のファイルを上書きすることもありません。
[!WARNING] ミラーリングされたファイルは信頼できないサードパーティ製コードです。実行する前に必ず確認してください。
$ getsploit --format json CVE-2024-3094
$ getsploit --format jsonl wordpress | jq -r .id
$ getsploit wordpress > results.tsv # redirected output is tab-separated
--json はこれまでどおり --format json のエイリアスです。
$ getsploit --color always query | less -R
$ getsploit --color never query
色はデフォルトで auto です。幅の広いターミナルではテーブル、狭いターミナルではレコードの縦積み表示、リダイレクトされたストリームではタブ区切り値として出力されます — いずれも同じデータです。
全オプションの一覧は getsploit --help で確認できます。
アップデートは、8本の並列レンジ接続でアーカイブをダウンロードし、宛先の隣で展開・変換して検証し、その後にのみコミットします。メモリ使用量はアーカイブのサイズに依存しません。アップデート中に古いデータベースに対して実行中の検索は、そのまま完了します。
Getsploit 2.x で構築されたデータベースも引き続き検索可能です。次の --update で FTS4 から FTS5 に移行されます。one NEAR/5 two のような FTS4 の近接表現は、FTS5 の NEAR(...) 形式に書き換える必要があります。
| Python | 3.11, 3.12, 3.13, 3.14 |
| 対応OS | Linux、macOS、Windows |
| Vulners SDK | 4.1 以降の 4.x |
| 実行時依存パッケージ | click、、 |
$ git clone https://github.com/vulnersCom/getsploit.git
$ cd getsploit
$ uv sync --all-groups
$ make check
CONTRIBUTING.md に貢献ルール、ARCHITECTURE.md にモジュール境界とデータベースの不変条件が記載されています。
リリースは、プッシュされた v<version> タグです。そこからリリースワークフローが、タグ付けされたコミットで完全なゲートを再実行し、トラステッドパブリッシングを通じて PyPI に公開し、チェンジログから GitHub リリースを作成します。漏洩する PyPI トークンは存在しません。
エクスプロイトのソースファイルは信頼できないコンテンツです。開いたり実行したりする前に確認してください。Getsploit 自体がダウンロードしたものを実行することはありません。
リリースは GitHub Actions から PyPI のトラステッドパブリッシングを通じて公開されるため、漏洩する長期有効な API トークンは存在せず、すべてのアーティファクトにビルドの来歴証明が付与されます。Getsploit の脆弱性を報告するには、SECURITY.md に従ってください。
MIT © Vulners Team およびコントリビューター。
| 場所 |
~/.getsploit/getsploit.db、または $GETSPLOIT_HOME |
| 形式 | 外部コンテンツ FTS5 インデックスを備えた SQLite |
| トークナイザー | unicode61 remove_diacritics 2 |
| サイズ | 完全なコーパスで約 1.7 GB |
| 更新 | アトミック: 新しいデータベースが単一の操作で古いものと置き換わります |
richvulners| コマンド | 目的 |
|---|
make format | ソースファイルをフォーマットして自動修正 |
make lint | フォーマット、lint、型をチェック |
make test | テストを並列実行 |
make coverage | ステートメント・ブランチカバレッジ100%を強制 |
make leaks | 追跡対象ファイルにシークレットがないかスキャン |
make build | wheel とソース配布物をビルド |
make release | すべてのゲートを実行し、両配布物を検証 |
make check | マージのゲートになる上記のすべて |