🚀 BugBounty MCP Server
このツールは、総合的なモデルコンテキストプロトコル(MCP)サーバーで、バグバウンティハンティングやWebアプリケーションの浸透テストに利用できます。自然言語でLLMと会話することで、広範なセキュリティテストを実行することができます。
🚀 クイックスタート
BugBounty MCP Serverを使って、自然言語でのセキュリティテストを始めましょう。以下に、インストール方法と使い方を説明します。
✨ 主な機能
🔍 調査(13のツール)
- サブドメイン列挙:パッシブおよびアクティブなサブドメインの発見
- DNS列挙:包括的なDNSレコードの分析
- WHOISルックアップ:ドメインの登録と所有権情報
- 証明書トランスペアレンシー:SSL証明書のログ分析
- Google Dorking:自動化された検索エンジンの調査
- Shodan/Censys統合:IoTおよびサービスの発見
- GitHub調査:コードリポジトリの分析
- Archive.org検索:過去のウェブサイトの分析
- テクノロジー検出:Webスタックのフィンガープリント
- ソーシャルメディア検索:複数のプラットフォームでのOSINT
- メール列挙:メールアドレスの発見
- 逆DNS:IPアドレスからホスト名への解決
- WAF検出:Webアプリケーションファイアウォールの識別
🌐 スキャン(15のツール)
- ポートスキャン:包括的なネットワークポートの分析
- サービス列挙:詳細なサービスのフィンガープリント
- Webディレクトリスキャン:隠されたファイルやディレクトリの発見
- Webクローリング:自動化されたウェブサイトの探索
- パラメータ発見:隠されたパラメータの識別
- サブドメインテイクオーバー:脆弱性の検出
- SSL/TLS分析:証明書のセキュリティ評価
- CMSスキャン:WordPress/Drupal/Joomlaの分析
- JavaScript分析:クライアントサイドのセキュリティレビュー
- HTTPメソッドテスト:バーブ改ざんの検出
- CORS分析:クロスオリジンポリシーのテスト
- セキュリティヘッダー:HTTPヘッダーのセキュリティ分析
- Nuclei統合:脆弱性テンプレートのスキャン
- ファジング:入力検証のテスト
- APIエンドポイント発見:REST/GraphQL/SOAPの分析
🛡️ 脆弱性評価(15のツール)
- SQLインジェクションテスト:自動化されたSQLiの検出
- XSSテスト:クロスサイトスクリプティングの分析
- コマンドインジェクション:OSコマンド実行のテスト
- ファイルインクルージョン(LFI/RFI):パストラバーサルの分析
- XXEテスト:XML外部エンティティの検出
- SSRFテスト:サーバーサイドリクエストフォージェリ
- IDORテスト:脆弱な直接オブジェクト参照
- CSRFテスト:クロスサイトリクエストフォージェリ
- 認証バイパス:ログインメカニズムのテスト
- 特権昇格:パーミッション境界のテスト
- JWTセキュリティ:JSON Web Tokenの分析
- セッション管理:セッションのセキュリティ評価
- レースコンディション:同時実行の脆弱性テスト
- ビジネスロジック:ワークフローのセキュリティ分析
- 逆シリアル化:不安全なオブジェクトハンドリングの検出
🌍 Webアプリケーション(10のツール)
- アクセス制御テスト:認可境界のテスト
- セキュリティミスコンフィグレーション:設定の弱点検出
- 機密データ露出:情報漏洩の分析
- APIセキュリティテスト:REST/GraphQLのセキュリティ評価
- ファイルアップロードセキュリティ:アップロードメカニズムのテスト
- 入力検証:データサニタイズの分析
- クッキーセキュリティ:セッションクッキーの分析
- WebSocketセキュリティ:リアルタイム通信のテスト
- GraphQLセキュリティ:クエリ言語の脆弱性テスト
- エラーハンドリング分析:エラーによる情報開示
🔧 ネットワークセキュリティ(10のツール)
- ネットワーク発見:アクティブなホストの識別
- ファイアウォール検出:セキュリティデバイスの識別
- ロードバランサー検出:トラフィック分散の分析
- CDN検出:コンテンツ配信ネットワークの分析
- プロキシ検出:仲介サービスの識別
- ルーティング分析:ネットワークパスの調査
- 帯域幅テスト:ネットワークパフォーマンスの分析
- ワイヤレスセキュリティ:WiFiネットワークの評価
- ネットワークスニッフィング:パケットキャプチャと分析
- 横断移動:内部ネットワークの探索
🕵️ OSINT(10のツール)
- 人物調査:個人のバックグラウンド調査
- 企業調査:企業の情報収集
- ダークウェブ監視:隠されたサービスの監視
- データブリーチチェック:資格情報の露出分析
- ソーシャルメディア調査:複数のプラットフォームでのプロファイル分析
- ペーストサイト監視:漏洩情報の検出
- コードリポジトリ検索:ソースコードの情報収集
- 地理的位置調査:物理的な存在の分析
- 脅威情報:IoC分析と帰属
- メタデータ抽出:ドキュメントのフォレンジック分析
⚔️ 攻撃(10のツール)
- エクスプロイト検索:脆弱性データベースのクエリ
- ペイロード生成:カスタムエクスプロイトの作成
- 特権昇格:システムアクセスの拡張
- 横断移動:ネットワーク拡散技術
- 永続化メカニズム:バックドアのインストール方法
- データ流出:情報抽出技術
- 資格情報ダンピング:パスワード収集方法
- 反フォレンジック:証拠の消去技術
- 回避技術:セキュリティコントロールのバイパス
- ソーシャルエンジニアリング:人的要素の利用
📊 レポート(10のツール)
- 脆弱性レポート:包括的なセキュリティ評価
- エグゼクティブサマリー:ビジネスに焦点を当てたレポート
- 発見追跡:脆弱性のライフサイクル管理
- メトリクスダッシュボード:セキュリティKPIの可視化
- データエクスポート:複数の形式での結果エクスポート
- 修復計画:優先順位付けされた修正ロードマップ
- コンプライアンスマッピング:フレームワークの整合性分析
- リスク評価:ビジネスへの影響評価
- スキャン比較:過去の傾向分析
- 概念実証:エクスプロイトのドキュメント化
📋 合計:92以上のセキュリティテストツール
📦 インストール
前提条件
- Python 3.10以上(Python 3.11以上が推奨)
- Git
- Docker(コンテナ化されたデプロイメント用)
- macOS、Linux、またはWSLを搭載したWindows
🐳 Dockerインストール(推奨)
最も簡単な開始方法は、すべての依存関係とセキュリティツールが事前にインストールされたDockerを使用することです。
Dockerのクイックスタート
-
リポジトリをクローンします:
git clone https://github.com/gokulapap/bugbounty-mcp-server.git
cd bugbounty-mcp-server
-
APIキーを設定します(オプションですが推奨):
cp env.example .env
nano .env
-
Docker Composeでビルドして実行します:
docker-compose up --build -d
docker-compose logs -f bugbounty-mcp
docker-compose down
手動のDockerコマンド
docker build -t bugbounty-mcp:latest .
docker run -d \
--name bugbounty-mcp-server \
-v $(pwd)/output:/app/output \
-v $(pwd)/data:/app/data \
-v $(pwd)/.env:/app/.env:ro \
bugbounty-mcp:latest
docker logs -f bugbounty-mcp-server
docker exec -it bugbounty-mcp-server /bin/bash
docker stop bugbounty-mcp-server
docker rm bugbounty-mcp-server
Docker環境変数
APIキーと設定を直接Dockerに渡すことができます。
docker run -d \
--name bugbounty-mcp-server \
-e SHODAN_API_KEY="your_shodan_key" \
-e VIRUSTOTAL_API_KEY="your_vt_key" \
-e GITHUB_TOKEN="your_github_token" \
-e LOG_LEVEL="INFO" \
-v $(pwd)/output:/app/output \
bugbounty-mcp:latest
Dockerイメージに含まれるもの
Dockerイメージには以下が含まれています:
- ✅ すべての必要なパッケージがインストールされたPython 3.11
- ✅ 20以上のすべてのセキュリティツール(nmap、nuclei、subfinder、httpxなど)
- ✅ スキャン用の重要なワードリスト
- ✅ セキュリティとパフォーマンスが最適化されています
- ✅ セキュリティ向上のための非rootユーザー
- ✅ ヘルスチェックとモニタリング
🔧 ネイティブインストール
クイックスタート
-
リポジトリをクローンします:
git clone https://github.com/gokulapap/bugbounty-mcp-server.git
cd bugbounty-mcp-server
-
自動インストールを実行します:
chmod +x run.sh
./install.sh
または手動インストールの場合:
-
仮想環境を作成します:
python3 -m venv venv
source venv/bin/activate
-
依存関係をインストールします:
pip install -r requirements.txt
pip install -e .
-
外部のセキュリティツールをインストールします(オプションですが推奨):
sudo apt update
sudo apt install nmap masscan nikto dirb sqlmap
brew install nmap masscan nikto dirb sqlmap
go install github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install github.com/projectdiscovery/httpx/cmd/httpx@latest
go install github.com/OJ/gobuster/v3@latest
go install github.com/ffuf/ffuf@latest
-
APIキーを設定します(オプション):
cp env.example .env
nano .env
-
ワードリストをダウンロードします:
./run.sh download-wordlists
./run.sh download-wordlists --type subdomains
./run.sh download-wordlists --type directories
./run.sh download-wordlists --type parameters
./run.sh download-wordlists --type files
./run.sh download-wordlists --help
-
設定を検証します:
./run.sh validate-config
💻 使用例
MCPサーバーの起動
🐳 Dockerの使用(推奨)
Docker Composeを使用する場合(最も簡単):
docker-compose up -d
docker-compose logs -f bugbounty-mcp
docker-compose down
直接Dockerを使用する場合:
docker run -d \
--name bugbounty-mcp \
-v $(pwd)/output:/app/output \
-v $(pwd)/.env:/app/.env:ro \
bugbounty-mcp:latest
docker exec bugbounty-mcp bugbounty-mcp validate-config
docker exec bugbounty-mcp bugbounty-mcp list-tools
🚀 run.shを使用したネイティブの使用
ネイティブでサーバーを起動する最も簡単な方法は、提供されているrun.shスクリプトを使用することです。
cd bugbounty-mcp-server
./run.sh serve
このスクリプトは以下のことを行います:
- ✅ 自動的に仮想環境をアクティブ化します
- ✅
.envファイルから環境変数を読み込みます
- ✅ サーバーの状態と利用可能なツールを表示します
- ✅ LLM統合のためにMCPサーバーを起動します
📋 コマンドラインインターフェース
./run.sh --help
./run.sh serve
./run.sh list-tools
./run.sh validate-config
./run.sh quick-scan --target example.com
./run.sh download-wordlists --type subdomains
./run.sh export-config --format yaml
bugbounty-mcp export-config --format yaml -o config.yaml
🤖 MCPサーバーとLLMの統合
BugBounty MCP Serverは、モデルコンテキストプロトコル(MCP) を実装しており、自然言語による浸透テストのために様々なLLMアプリケーションとシームレスに統合することができます。
🔗 サポートされるLLMクライアント
1. Claude Desktop(推奨)
Claude Desktopの設定ファイルに追加します:
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%\Claude\claude_desktop_config.json
Dockerを使用する場合(推奨):
{
"mcpServers": {
"bugbounty-mcp": {
"command": "docker",
"args": ["exec", "-i", "bugbounty-mcp-server", "bugbounty-mcp", "serve"],
"env": {
"DOCKER_HOST": "unix:///var/run/docker.sock"
}
}
}
}
ネイティブインストールの場合:
{
"mcpServers": {
"bugbounty-mcp": {
"command": "/Users/your-username/Documents/bugbounty-mcp-server/run.sh",
"args": ["serve"],
"env": {
"PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
}
}
}
}
2. GitHub Copilot統合付きのVS Code
BugBounty MCP ServerをVS CodeとGitHub Copilotで使用するには:
前提条件:
- GitHub Copilot拡張機能が有効になっているVS Code
- VS Code用のMCP拡張機能(マーケットプレイスで利用可能な場合)
設定手順:
-
Dockerデプロイメントの場合(推奨):
まず、ポート3001が公開された状態でDockerコンテナを起動します:
docker-compose up --build -d
nc -z localhost 3001 && echo "MCP server is ready"
次に、VS Codeの設定(Cmd/Ctrl + ,)を開き、以下を追加します:
{
"mcp.servers": {
"bugbounty-docker": {
"command": "nc",
"args": ["localhost", "3001"],
"description": "BugBounty MCP Server running in Docker",
"env": {
"LOG_LEVEL": "info"
}
}
}
}
直接Docker execを使用する代替のDocker設定:
{
"mcp.servers": {
"bugbounty-docker": {
"command": "docker",
"args": ["exec", "-i", "bugbounty-mcp-server", "bugbounty-mcp", "serve"],
"description": "BugBounty MCP Server via Docker exec",
"env": {
"DOCKER_HOST": "unix:///var/run/docker.sock"
}
}
}
}
-
ネイティブインストールの場合:
{
"mcp.servers": {
"bugbounty-native": {
"command": "/Users/your-username/Documents/bugbounty-mcp-server/run.sh",
"args": ["serve"],
"description": "BugBounty MCP Server native installation",
"env": {
"PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
}
}
}
}
-
接続を確認します:
- VS Codeを再起動するか、MCP拡張機能を再読み込みします
- VS CodeのMCPパネルを開きます(利用可能な場合)
- BugBountyサーバーが接続されていることが表示されるはずです
- GitHub Copilotに「BugBounty MCPから利用可能なセキュリティツールをリストアップして」と尋ねることでテストします
-
Docker統合のトラブルシューティング:
Dockerネットワークアプローチを使用していて問題が発生した場合:
docker-compose ps
nc -z localhost 3001 || echo "Port 3001 not accessible"
docker-compose logs -f bugbounty-mcp
echo '{"jsonrpc": "2.0", "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0"}}, "id": 1}' | nc localhost 3001
3. カスタムMCPクライアント
import asyncio
from mcp.client.session import ClientSession
from mcp.client.stdio import stdio_client
async def use_bugbounty_mcp():
async with stdio_client(["./run.sh", "serve"]) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
print(f"Available tools: {len(tools)}")
result = await session.call_tool(
"subdomain_enumeration",
{"domain": "example.com", "passive_only": True}
)
print(result)
asyncio.run(use_bugbounty_mcp())
4. 統合の例
サーバーを起動してテストします:
./run.sh serve
LLMの会話の例:
ユーザー: "example.comの包括的なセキュリティ評価を行ってください"
LLM: BugBounty MCPツールを使用して、包括的なセキュリティ評価を行います。まず、ターゲットに関する情報を収集します。
[LLMは自動的に以下のようなツールを使用します:]
- サブドメイン列挙でサブドメインを見つける
- ポートスキャンで開いているサービスを特定する
- 脆弱性スキャンでセキュリティ問題を検出する
- Webディレクトリスキャンで隠されたファイルを見つける
- その他90以上のセキュリティツールを必要に応じて使用する
🔧 MCP統合のトラブルシューティング
Claude Desktopでサーバーが起動しない場合:
Dockerデプロイメントの場合:
-
Dockerコンテナが実行中であることを確認します:
docker ps | grep bugbounty-mcp
-
コンテナのログを確認します:
docker logs bugbounty-mcp-server
-
Docker統合をテストします:
docker exec bugbounty-mcp-server bugbounty-mcp --help
-
Dockerソケットへのアクセスを確認します(macOS/Linux):
ls -la /var/run/docker.sock
ネイティブデプロイメントの場合:
-
設定ファイルのパスを確認します:
pwd
-
run.shスクリプトが実行可能であることを確認します:
chmod +x run.sh
-
サーバーを手動でテストします:
./run.sh serve
-
Claude Desktopのログを確認します:
- macOS:
~/Library/Logs/Claude/
- Windows:
%LOCALAPPDATA%\Claude\logs\
🐳 Dockerの高度な使用
Dockerを使用した開発
docker build -t bugbounty-mcp:dev --target builder .
docker run -it --rm \
-v $(pwd):/app \
-v $(pwd)/output:/app/output \
bugbounty-mcp:dev bash
docker exec bugbounty-mcp nmap --version
docker exec bugbounty-mcp nuclei -version
docker exec bugbounty-mcp subfinder -version
パフォーマンスチューニング
docker run -d \
--name bugbounty-mcp \
--cpus="2.0" \
--memory="4g" \
-v $(pwd)/output:/app/output \
bugbounty-mcp:latest
docker stats bugbounty-mcp
バックアップと永続化
docker run --rm \
-v bugbounty-data:/data \
-v $(pwd)/backup:/backup \
alpine tar czf /backup/data-backup-$(date +%Y%m%d).tar.gz -C /data .
docker run --rm \
-v bugbounty-data:/data \
-v $(pwd)/backup:/backup \
alpine tar xzf /backup/data-backup-XXXXXXXX.tar.gz -C /data
Docker管理スクリプト
Dockerの管理を簡単にするために、含まれているdocker.shスクリプトを使用します:
chmod +x docker.sh
./docker.sh build && ./docker.sh run --api-keys
./docker.sh logs --follow
./docker.sh shell
./docker.sh validate
./docker.sh restart --force
./docker.sh clean --force
./docker.sh backup
./docker.sh restore backup/file.tar.gz
./docker.sh build --dev
./docker.sh run --dev
設定例
api_keys:
shodan: "your_shodan_api_key"
virustotal: "your_virustotal_api_key"
github: "your_github_token"
tools:
nmap_path: "nmap"
nuclei_path: "nuclei"
max_concurrent_scans: 10
default_timeout: 30
scanning:
default_ports: ["21", "22", "23", "25", "53", "80", "443", "8080", "8443"]
max_crawl_depth: 3
max_pages_to_crawl: 100
output:
output_dir: "output"
report_format: "json"
create_html_report: true
safety:
safe_mode: true
allowed_targets: ["*.example.com", "192.168.1.0/24"]
blocked_targets: ["*.gov", "*.mil"]
🗣️ 自然言語の例
LLMと統合すると、会話を通じてセキュリティテストを実行することができます。
調査
"example.comのサブドメインをパッシブとアクティブの両方の方法で列挙してください"
"example.comがCDNを使用しているかを確認し、オリジンサーバーを見つけてください"
"githubでexample.comに言及するリポジトリを検索し、機密情報が含まれているかを確認してください"
脆弱性テスト
"https://example.com/loginのログインフォームのSQLインジェクション脆弱性をテストしてください"
"https://example.comのすべての入力パラメータのXSS脆弱性をスキャンしてください"
"https://example.comにCORSの誤設定があるかを確認してください"
包括的なテスト
"example.comの完全なセキュリティ評価を行ってください。以下を含めて:
- サブドメインの発見
- ポートスキャン
- Webアプリケーションのテスト
- SSL/TLSの分析
- 詳細なレポートを生成してください"
OSINT収集
"Example Corp社について調査してください:
- 従業員情報
- テクノロジースタック
- 最近のデータブリーチ
- ソーシャルメディアの存在"
🔧 設定
環境変数
| 変数 |
説明 |
必須 |
SHODAN_API_KEY |
デバイス発見用のShodan APIキー |
いいえ |
VIRUSTOTAL_API_KEY |
脅威情報用のVirusTotal APIキー |
いいえ |
CENSYS_API_ID |
証明書/ホスト検索用のCensys API ID |
いいえ |
CENSYS_API_SECRET |
Censys APIシークレット |
いいえ |
GITHUB_TOKEN |
リポジトリ検索用のGitHubトークン |
いいえ |
SECURITYTRAILS_API_KEY |
DNS履歴用のSecurityTrails API |
いいえ |
HUNTER_IO_API_KEY |
メール発見用のHunter.io API |
いいえ |
BINARYEDGE_API_KEY |
インターネットスキャン用のBinaryEdge API |
いいえ |
ツールのパス
サーバーは自動的にPATH内のツールを検出しますが、カスタムパスを指定することもできます。
tools:
nmap_path: "/usr/local/bin/nmap"
masscan_path: "/opt/masscan/bin/masscan"
nuclei_path: "/home/user/go/bin/nuclei"
セキュリティ機能
safety:
safe_mode: true
allowed_targets:
- "*.example.com"
- "192.168.1.0/24"
- "10.0.0.0/8"
blocked_targets:
- "*.gov"
- "*.mil"
- "*.edu"
rate_limit_enabled: true
requests_per_second: 10.0
📁 プロジェクト構造
bugbounty-mcp-server/
├── bugbounty_mcp_server/
│ ├── __init__.py
│ ├── server.py # メインのMCPサーバー
│ ├── config.py # 設定管理
│ ├── utils.py # ユーティリティ関数
│ ├── cli.py # コマンドラインインターフェース
│ └── tools/
│ ├── __init__.py
│ ├── base.py # ベースのツールクラス
│ ├── recon.py # 調査ツール
│ ├── scanning.py # スキャンツール
│ ├── vulnerability.py # 脆弱性評価
│ ├── webapp.py # Webアプリケーションツール
│ ├── network.py # ネットワークセキュリティツール
│ ├── osint.py # OSINTツール
│ ├── exploitation.py # 攻撃ツール
│ └── reporting.py # レポートツール
├── wordlists/ # スキャン用のワードリスト
├── output/ # スキャン結果とレポート
├── data/ # 永続的なデータストレージ
├── pyproject.toml # プロジェクト設定
├── README.md # このファイル
├── LICENSE # MITライセンス
└── SECURITY.md # セキュリティガイドライン
🔒 セキュリティに関する考慮事項
責任ある使用
このツールは、承認されたセキュリティテストのみを目的として設計されています。ユーザーは以下のことを行う必要があります:
- 明示的な許可を取得する:いかなるシステムをテストする前に、明示的な許可を取得してください。
- 地域の法律に準拠する:地域の法律と規制に従ってください。
- レート制限を尊重する:レート制限を尊重し、DoS状態を避けてください。
- 責任ある開示を行う:発見した脆弱性について、責任ある開示を行ってください。
セキュリティ機能
- ターゲットのホワイトリスト:許可されたターゲットを設定することができます。
- レート制限:ターゲットシステムを圧迫しないようにするためのレート制限があります。
- セーフモード:追加のセキュリティチェックを有効にすることができます。
- ロギング:包括的な監査トレイルが記録されます。
法的免責事項
ユーザーは、このツールの使用が適用される法律と規制に準拠していることを独自に確認する責任があります。Gokul (apgokul008@gmail.com)は、このソフトウェアの誤用や損害について一切の責任を負いません。
🤝 コントリビューション
コントリビューションを歓迎します!詳細については、コントリビューションガイドラインを参照してください。
開発環境のセットアップ
-
開発モードでクローンしてインストールします:
git clone https://github.com/gokulapap/bugbounty-mcp-server.git
cd bugbounty-mcp-server
pip install -e ".[dev]"
-
プリコミットフックをインストールします:
pre-commit install
-
テストを実行します:
pytest
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルを参照してください。
🙏 謝辞
📚 ドキュメント
- RUN_SCRIPT.md -
run.shスクリプトの詳細なドキュメント
- USAGE.md - 包括的な使用例とワークフロー
- SECURITY.md - セキュリティガイドラインとベストプラクティス
- env.example - 環境設定のテンプレート
📞 サポート
🚀 ロードマップ
- [ ] Webベースのダッシュボード
- [ ] 人気のバグバウンティプラットフォームとの統合
- [ ] 機械学習による脆弱性検出
- [ ] 共同テスト機能
- [ ] 高度な回避技術
- [ ] モバイルアプリケーションのテストツール
- [ ] クラウドセキュリティ評価ツール
- [ ] ブロックチェーンセキュリティテスト
⚠️ 重要提示
このツールは承認されたセキュリティテストのみを目的としています。所有権を持たない、または明示的な許可を得ていないシステムに対する不正な使用は違法で非倫理的な行為です。