Claude Code を「上級バグハンター」に変える:71スキル・681件の開示レポートを搭載したセキュリティ研究バンドル「Claude-BugHunter」

タグ Claude Codeバグバウンティペネトレーションテストセキュリティ研究HackerOne脆弱性診断CTFcolumnコラムlinuxLinuxmacGitHubオープンソースelementalsoulsClaude-BugHunter

Claude Code を「上級バグハンター」に変える:71スキル・681件の開示レポートを搭載したセキュリティ研究バンドル「Claude-BugHunter」

ひとことでいうと

Claude-BugHunter は、Claude Code(AI アシスタントをターミナルで使うツール)をバグバウンティ・ペネトレーションテスト専用の研究環境に変えるスキルバンドルです。71 個のスキル(AI への指示ファイル)と 15 個のスラッシュコマンドが含まれており、HackerOne の公開レポート 681 件から抽出したパターンをそのまま活用できます。コマンドを丸暗記する必要はなく、平易な英語でテスト対象の状況を説明するだけで、必要なスキルが自動的に読み込まれます。スコープ確認から証跡の整理・報告書の作成まで、一連の作業を Claude Code 上でまとめて進められるのが最大の特徴です。


こんな人におすすめ

1. バグバウンティに挑戦したいセキュリティ入門者 HackerOne や Bugcrowd(脆弱性発見のプログラムを公開しているプラットフォーム)に参加しているものの、「どの種類の脆弱性を探せばいいか」「見つけたらどう報告すればいいか」に悩んでいる方に向いています。OWASP Juice Shop などの演習用サイトを使えば、本番環境を傷つけることなく実際のワークフローを体験できます。

2. 外部ペネトレーションテストを担当するプロフェッショナル 企業から依頼を受けて M365・Okta・SSL VPN・SharePoint などの外部公開サービスを検査する方にも役立ちます。エンゲージメントフォルダ(テスト案件ごとの作業ディレクトリ)の自動生成、スコープ管理ファイル、クライアント向け報告書テンプレートが揃っており、提案から納品まで一貫した環境を整えられます。

3. CTF・演習環境で体系的に学びたい学習者 OWASP Juice Shop や testphp.vulnweb.com など許可された演習サイトを題材に、実際の HackerOne 開示レポートをベースにしたパターンで学習を進めたい方に適しています。スコープ確認→偵察→ハント→バリデーション→証跡取得→報告という 6 フェーズのガイド付きワークフローに沿って、実践的な判断力を身につけられます。


インストール・使い方

Step 1: 必要なツールを確認する

インストール前に、以下の 3 つが使えることをターミナル(文字で命令を送る画面)で確認してください。Claude Code の動作には Claude Pro / Team / Max プランまたは API キーが必要です。Python 3.9 以上は付属の cbh CLI ランナーに使われます。

claude --version   # Claude Code のバージョンを確認
python3 --version  # Python のバージョンを確認(3.9 以上であること)
git --version      # git のバージョンを確認

各コマンドはターミナルに 1 行ずつ貼り付けて Enter キーを押すだけです。バージョン番号が表示されれば準備完了です。

Step 2: リポジトリを取得してインストールする

mkdir -p ~/security-research && cd ~/security-research
git clone https://github.com/elementalsouls/Claude-BugHunter.git
cd Claude-BugHunter && bash scripts/install.sh

git clone はリポジトリ(ソースコードの置き場)をまるごとダウンロードするコマンドです。続く bash scripts/install.sh がインストールスクリプトを実行します。スクリプトは 71 個のスキルを ~/.claude/skills/ に、15 個のスラッシュコマンドを ~/.claude/commands/ にコピーし、エンゲージメントフォルダ作成ツール(hunt.sh)をシェルの設定ファイルに登録します。最後に ✓ Install complete と表示されれば完了です。

Step 3: インストールの確認をする

# スキルが 71 個あることを確認
ls ~/.claude/skills/ | wc -l

# hunt コマンドの動作確認(シェルの設定を再読み込みしてから)
source ~/.zshrc   # zsh を使っている場合
# または
source ~/.bashrc  # bash を使っている場合
hunt

# 主要スキルの存在確認
ls ~/.claude/skills/ | grep -E '^(hunt-xss|hunt-rce|m365-entra-attack|triage-validation)$'

wc -l は行数を数えるコマンドです。「71」と表示されればスキルがすべてインストールされています。grep は特定の名前のファイルを絞り込むコマンドで、4 行分の名前が表示されれば主要スキルが正しく配置されています。

Step 4: 最初のエンゲージメントを開始する

# テスト案件用の作業フォルダを作成
hunt h1-vdp
cd ~/Targets/h1-vdp

# Claude Code を起動
claude

Claude Code が起動したら、英語でターゲットの状況を説明します。たとえば次のように入力します。

Testing hackerone.com — walk me through the workflow from recon.

これだけで適切なスキルが自動ロードされ、6 フェーズのワークフローが始まります。コマンドを丸暗記する必要はありません。


動かしてみた

実行環境として Python 3.12.13 が動作することを確認しました。リポジトリのファイル構造は整然としており、エンゲージメント管理のコアとなる engine/agent.pyengine/engine.pyengine/scope.py の存在が確認できます。

CLI ランナー側では scripts/cbh.py(端末ネイティブ CLI ランナー)・scripts/hunt.sh(作業フォルダ自動生成ツール)・scripts/refresh-cve-index.py(CISA KEV と呼ばれる既知脆弱性リストの更新スクリプト)が揃っています。ドキュメントも docs/architecture.mddocs/skills.mddocs/cbh-cli.md と充実しており、実際の業務を想定した設計になっていることが伝わります。

cbh CLI は Python の標準ライブラリだけで動作する設計です。そのため、Claude Code が使えない CI/CD 環境(継続的インテグレーション・デリバリーの自動化基盤)や定期スクリプトでも、スキルの内容を cat skills/<name>/SKILL.md で直接参照しながら活用できます。subfinderdigcurl などの実際のネットワークコマンドを呼び出す設計になっており、実運用を意識した作りになっています。


インストール後に試す:実践のコツ

  • まず演習環境から始める。OWASP Juice Shop や testphp.vulnweb.com など、テストが許可されているサイトで最初のフローを体験してください。本番サービスへの無断テストは法律違反になります。
  • スキルを暗記しなくてよい。Claude Code に状況を英語で説明するだけでスキルが自動ロードされます。「Testing acme.com. I see numeric IDs in API responses.」のような短い文で十分です。
  • 報告書を書く前に必ず /triage を実行する。次のセクションで詳しく説明しますが、このゲートを通過させることで、N/A(対象外)として棄却される報告を大幅に減らせます。
  • CVE インデックスを定期的に更新するpython3 scripts/refresh-cve-index.py を実行すると、最新の CISA KEV(既知悪用脆弱性リスト)が取り込まれます。月に一度程度の更新を習慣にしましょう。
  • /report コマンドで報告書を自動生成する。発見内容を説明するだけで HackerOne・Bugcrowd 向けのテンプレートが生成されます。コピー&ペーストで提出できる形式まで整えてくれます。
  • CHAIN REQUIRED 判定が出たら手を止めない。「単独では低評価だが、別の脆弱性と組み合わせると高評価になる」という意味です。ユーザー列挙・レートリミット不在・弱いパスワードポリシーを組み合わせたアカウント乗っ取りチェーンが代表例です。

活用例

  • HackerOne の VDP(脆弱性開示プログラム)参加hunt h1-vdp でフォルダを作成し、Claude Code に対象サービスを説明するだけで IDOR や XSS の探索フローが始まります。見つかった発見は /triage でバリデーションし、/report で提出用レポートを自動生成できます。
  • M365 / Entra ID の外部攻撃シミュレーション:レッドチーム契約のもとで m365-entra-attack スキルを活用し、AADSTS エラーコードを参照しながら条件付きアクセスのバイパスや SAML SSO フローの検査を体系的に進められます。資格情報が得られた場合は cloud-iam-deep スキルで AWS・Azure・GCP 横断のエスカレーションパスも確認できます。
  • Bugcrowd のプログラム向け報告書作成:VRT(脆弱性分類体系)マッピングに対応したテンプレートで、カテゴリごとのデフォルト重要度を踏まえた報告書を自動生成できます。Intigriti・Immunefi にも対応しているため、複数プラットフォームを掛け持ちしている研究者に便利です。
  • CTF(セキュリティ競技)の学習:OWASP Juice Shop を題材に、6 フェーズのワークフローを一通り体験できます。7-Question Gate を繰り返し使うことで、「これは本当に脆弱性か」を問う判断力が養われます。
  • CI/CD 環境での定期偵察cbh CLI は Python 標準ライブラリのみで動作するため、Claude Code なしでも自動化スクリプトに組み込めます。毎晩スコープ内のサブドメインを偵察して変化を記録する、といった定期タスクに活用できます。
  • クライアント向けレッドチーム報告書の作成redteam-report-template スキルで Subject / Observations / Description / Impact / Recommendation / PoC の構成を持つ Markdown 形式の納品物を生成できます。外部ペネトレーションテストの報告書として必要な項目が最初から揃っているため、フォーマット調整の手間を大幅に省けます。

用語とポイント解説

スキル(Skill) Claude Code に読み込まれる SKILL.md という名前のファイルです。かんたんに言うと、「このトピックについてはこう考えて、こう動いて」という指示書です。71 個のスキルが用意されており、会話の内容に合わせて自動的に読み込まれます。

IDOR(アイドア) Insecure Direct Object Reference の略で、「安全でない直接オブジェクト参照」と訳されます。かんたんに言うと、URL の中の数字(例:/api/users/42)を書き換えるだけで他人のデータが見えてしまう脆弱性です。HackerOne の公開レポートで非常に多く報告されているカテゴリです。

SSRF(エスエスアールエフ) Server-Side Request Forgery の略です。かんたんに言うと、サーバー自身に「社内ネットワークの秘密の場所へアクセスして」と命令できてしまう攻撃手法です。外部からは届かないはずの内部リソースに間接的にアクセスできるため、インパクトが大きい脆弱性クラスとされています。

7-Question Gate(セブンクエスチョンゲート) 報告書を作成する前に必ず通過させるバリデーション(確認)の仕組みです。かんたんに言うと、「本当にこれは報告すべき発見か」を 7 つの質問で自動チェックする関所です。1 つでも NO があれば報告を中止する規律があり、N/A(対象外)棄却を減らすために設計されています。

VRT(ブイアールティー) Vulnerability Rating Taxonomy の略で、Bugcrowd が定義する脆弱性の分類体系です。かんたんに言うと、脆弱性の種類ごとに「だいたいこのくらいの重要度」という目安が決まっている早見表です。報告書を書くときにカテゴリを選ぶと自動的に重要度の基準が参照されます。

AADSTS(エーエーディーエスティーエス) Azure Active Directory Security Token Service のエラーコード体系です。かんたんに言うと、Microsoft の認証サービスがエラーを返すときに使う番号の一覧で、M365 や Entra ID の攻撃チェーンを診断する際の地図として使われます。m365-entra-attack スキルにリファレンスが含まれています。

cbh CLI(シービーエイチ シーエルアイ) Claude-BugHunter に付属する端末ネイティブの実行ツール(CLI=コマンドラインインターフェース)です。かんたんに言うと、Claude Code がなくてもスキルの内容をそのまま利用できる補助ツールです。Python の追加ライブラリが不要なため、CI/CD 環境や自動化スクリプトへ組み込みやすい設計になっています。

レッドチーム(Red Team) 攻撃者の視点で組織のセキュリティを評価する専門チームのことです。かんたんに言うと、「わざと攻撃してみる役」です。クライアントとの契約書に基づいた有償演習として実施され、バグバウンティとは異なる報告形式と規律が求められます。Claude-BugHunter は redteam-report-template スキルで専用の納品テンプレートを提供しています。

ATO(エーティーオー) Account Takeover(アカウント乗っ取り)の略です。かんたんに言うと、複数の小さな脆弱性を組み合わせて正規ユーザーのアカウントを奪う攻撃パターンです。ユーザー列挙・レートリミット不在・弱いパスワードポリシーをチェーンした事例が代表的で、7-Question Gate では CHAIN REQUIRED 判定として扱われます。

エンゲージメントフォルダ テスト案件ごとに自動生成される作業ディレクトリ(フォルダ)です。かんたんに言うと、「この案件の証跡・メモ・報告書をまとめて入れておく引き出し」です。hunt <ターゲット名> コマンドを実行するだけで構造が作られ、スコープ管理ファイルも一緒に生成されます。


デモについて

Claude-BugHunter は Claude Code のスキルバンドルとして動作し、認可されたターゲットに対してのみ有効です。ブラウザ上のインタラクティブデモを提供するには Claude Code CLI と認証済みセッションが必要であり、攻撃的セキュリティツールの性質上、無許可環境でのデモは適切ではありません。そのため本記事ではインタラクティブなデモは提供していません。

演習目的であれば、OWASP Juice Shop(公式が提供する脆弱性練習サイト)や testphp.vulnweb.com といった利用が許可された演習環境で実際のフローをお試しください。これらは「壊してよい」と明示されている環境なので、安心して手を動かせます。


ぜひバグバウンティプログラムへの参加やレッドチーム演習の効率化、あるいは CTF での実践学習などに活用してみてはいかがでしょうか。