Red-team-mcp について
Red-team-mcpは、AIエージェントがレッドチーム演習で使うMCPサーバーです。スキャン、SSH操作、Metasploitのエクスプロイト検索・実行をまとめ、一部のコンポーネントは結果をMongoDBに保存します。
主な機能
- 01masscanによるポートスキャン
- 02Nucleiによる脆弱性検出
- 03SSHコマンド実行とブルートフォース検査
- 04Metasploitエクスプロイトの検索と実行
- 05スキャン結果のMongoDB保存
活用シーン
- 01対象ネットワークの開放ポートとサービスの発見
- 02カスタムテンプレートや深刻度による脆弱性検出
- 03CVE、プラットフォーム、ランク、キーワードによるエクスプロイト検索
- 04SSHまたはMetasploitを使った許可済みレッドチームテスト
MCP 対応
MCP経由でAIエージェントにセキュリティテスト用のリソースとツールを提供します。ポート・脆弱性スキャン、SSHツール、Metasploit連携を含みます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Red-team-mcp
AI エージェントがレッドチーム演習で使用するための MCP(Model Context Protocol)サーバーです。
概要
このサーバーは、レッドチームのシナリオで AI エージェントが利用できるリソースとツールを提供します。Model Context Protocol を実装し、セキュリティテストと評価に必要な情報の取得、ツールへのアクセス、アクションの実行を AI エージェントに許可します。
アーキテクチャ
graph TD
Agent[AI Agent Client] <--> |MCP Protocol| Server[FastMCP Server]
subgraph "MCP Server Components"
Server --> PortScanner[Port Scanner Module]
Server --> VulnScanner[Vulnerability Scanner Module]
Server --> SSHTools[SSH Tools Module]
Server --> Metasploit[Metasploit Integration]
Server --> DomainDiscovery[Domain Discovery Module]
Server <--> Database[(MongoDB Database)]
end
subgraph "External Tools"
PortScanner --> Masscan[masscan]
VulnScanner --> Nuclei[nuclei]
SSHTools --> SSH[SSH Client]
Metasploit --> MSFRPC[Metasploit RPC]
DomainDiscovery --> Subfinder[subfinder]
end
Database --> Findings[Findings]
コンポーネント
1. ポートスキャナー
- 高速なポートスキャンを実現するため、masscan と連携します
- AI エージェントが対象ネットワーク上の開いているポートとサービスを検出できます
- スキャンパラメーター(IP 範囲、ポート範囲、スキャン速度)を設定できます
- エージェントが利用できるよう、結果を解析してフォーマットします
2. 脆弱性スキャナー
- 脆弱性検出に Nuclei と連携します
- カスタムテンプレートと重大度フィルタリングに対応しています
- 高速検索のため、結果を MongoDB に保存します
3. SSH ツール
- 認証情報を使用した SSH コマンドの実行
- ユーザー名とパスワードのリストを使用した SSH ブルートフォース機能
- ホストおよびポート情報とともに結果を保存します
4. Metasploit 連携
- エクスプロイトデータベース:すべての Metasploit エクスプロイトをあらかじめ格納した MongoDB コレクション
- 高速検索:プラットフォーム、CVE、ランク、作成者、キーワードでエクスプロイトを検索します
- エクスプロイトの実行:ペイロード設定を指定して、対象に対してエクスプロイトを実行します
- ライブクエリ:Metasploit RPC サーバーからリアルタイムでエクスプロイトを一覧表示します
実装計画
- 基本的な MCP サーバー構造を設定します
- パラメーター検証を伴う masscan 連携を実装します
- 結果の解析と保存の仕組みを作成します
- 追加コンポーネントを追加します(今後対応予定)
- ロギングとモニタリングを実装します
- 権限と境界のシステムを構築します
TODO
- nuclei スキャナーを追加
- SSH スキャナーを追加
- Metasploit 連携を追加
- 完全な非同期 FastMCP サーバーを実装
- テストを追加
- マシンのハッキングを段階的に行うためのプロンプト。(agents/simple_agent.py を参照)
セットアップ
サードパーティ製ツールのインストール
セットアップには以下のツールが必要です
- mongodb
- nuclei
エクスプロイトデータベースのセットアップ
エクスプロイトを高速に検索できるようにするには、Metasploit エクスプロイトデータベースにデータを格納します。
-
前提条件:
- Metasploit Framework がインストールされていること
- MongoDB が localhost:27017 で稼働していること
- Metasploit RPC サーバーが稼働していること:
msfrpcd -P msf -a 127.0.0.1 - Python の依存関係:
pip install pymetasploit3
-
データベースへのデータ格納:
python scripts/setup_exploits_db.py -
セットアップのテスト:
python scripts/test_exploits_db.py
これにより、以下のメタデータを含む、すべての Metasploit エクスプロイトを検索できるデータベースが作成されます。
- CVE 参照情報
- プラットフォーム情報
- エクスプロイトのランクと作成者
- 互換性のあるペイロード
- 必須オプション
使用方法
エクスプロイト検索の例
# Search Windows SMB exploits
search_exploits_fast(platform='windows', search_term='smb')
# Find EternalBlue exploit
search_exploits_fast(cve='CVE-2017-0144')
# Get high-quality exploits
search_exploits_fast(rank='excellent')
# Search by author
search_exploits_fast(author='hdm')
開発
サーバーに新しいツールやリソースを追加する方法の詳細は、今後追記されます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。