🔎

脆弱性検索の基本武器「searchsploit」の構造と応用

に公開

こんにちは、オレンジ君です!
今回は 「searchsploit」 について書いていこうと思います。

最近、TryHackMe(THM)を通じてハッキングの勉強を始めたのですが、その中でよく登場するのが searchsploit というコマンド。最初は「脆弱性を検索するツールっぽい?」くらいの認識で何となく使っていたのですが、正直、何ができて、どう動いているのかまではよく分かっていませんでした。

そこで今回は、searchsploit の目的・使い方・仕組みについて、自分の学習ログとして整理してみたいと思います。
「一応使ってるけど、ちゃんとは理解していないかも…」という方や、実務にもつなげたいCTF初学者の方にとっても、きっと役立つ内容になるはずです。

※以降で使用される画像は全て投稿主によって撮影されたものになります。

searchsploit とは?

searchsploit は、Exploit Database(Exploit-DB)に登録された既知の脆弱性情報を、ローカル環境で検索できるコマンドラインツールです。

簡単に言えば、「このソフトやサービス、脆弱性あるかな?」と思ったときに、オフラインですぐに検索→エクスプロイトコード(攻撃コード)を入手できる便利ツールです。

TryHackMeやCTFで「特定のバージョンのvsftpdに脆弱性があるらしい」みたいな情報を得たとき、searchsploitを使えば一発で対応するExploitを見つけることができます。

なぜCTFで使われるのか?

CTFでは、既知の脆弱性を突いてシステムに侵入する問題がよく出題されます。
そのとき「このサービスのこのバージョンに脆弱性があるらしい」とわかったとしても、それをどうやって突くか(エクスプロイトコード)が必要になります。

そこで登場するのがsearchsploitネット検索に頼らず素早く情報とコードを手元で探せるのが大きな強みです。

基本的な使い方(例付き)

以下のように検索ワードを入力するだけで、関連する脆弱性が一覧で表示されます:

searchsploit vsftpd

これで表示されたエクスプロイトコードを使って脆弱性をついていくわけですね👍

オプションの解説

実際にCTFで使用することの多いオプションは以下です!(私見です)

  • -m 該当するPoCファイルをカレントディレクトリにコピー
  • -w Web上のExploit-DBページのURLも一緒に出す

CTFでの活用例

ここでは、実際にCTFやTryHackMeでsearchsploitを使う際の具体的な手順と、便利なオプションの使いどころを紹介します!

例:vsftpd 2.3.4のエクスプロイトコードについて調べる

searchsploitで検索

以下のコマンドで検索する

searchsploit vsftpd 2.3.4

Webページでも確認してみる

Webページの方が詳細に記載されている場合があるので、以下コマンドで対象のエクスプロイトコードのWebページを出力します。

searchsploit -w vsftpd 2.3.4

エクスプロイトコード17491のページURLが取得できました👍
https://www.exploit-db.com/exploits/17491

ファイルパスを確認したい

searchsploitの表示結果はExploit Databaseのディレクトリの相対パスなので、そのエクスプロイトコードを確認したい時に絶対パスがわからず中身を確認するのが面倒、、となりがちです。その時は以下のコマンドによって、今いるディレクトリにファイルをコピーすることができます!

searchsploit -m 17491

補足

どうやって中身を調べてるの?(仕組み)

searchsploitの仕組みはとてもシンプルで、ローカルに保存されているCSVファイル(files_exploits.csvなど)を検索してくれています!

CSVには、エクスプロイトのタイトル・ID・ファイルパス・CVE番号などが記録されており、grepのような形で高速に一致する行を表示してくれます。

そのため、オフライン環境でも使える&めちゃくちゃ高速という特徴があります。実際のエクスプロイトコード(PythonやCファイルなど)は/usr/share/exploitdb/以下に配置されており、オプションを使ってコピー・参照することができます。

更新方法や注意点

Exploit-DBの脆弱性情報は日々更新されています。そのためsearchsploitも定期的にアップデートしておく必要があります!

searchsploit -u

これで最新の脆弱性情報やエクスプロイトコードが手元に同期されます👍
※Kali LinuxやParrotOSでは使える状態になっていることが多いですが、gitcurlに依存しているので、ネット接続が必要です。

最後に

ここまで読んでいただき、ありがとうございました!

searchsploitはCTFやTryHackMeで頻繁に登場するだけでなく、実務でも脆弱性調査の第一歩として非常に役立つツールです。今回の記事を通じて、「なんとなく使ってたけど、仕組みはよく知らなかった…」という状態から一歩進んで、“理解して使える” ツールになっていたら嬉しいです。

今後は、searchsploitで見つけた脆弱性に対応する エクスプロイトコードの動作確認や、関連するツールの深掘り記事も書いていく予定です!
ぜひ一緒に、CTFと実務をつなげるセキュリティ学習を楽しんでいきましょう🙆

Discussion