mcpField
K
Kali MCP Server

Kali MCP Server

ローカル
github.com/cyberilloセキュリティ1032 週間前に更新

Kali MCP Server について

Kali MCP Serverは、Kali LinuxのセキュリティツールをLLMに接続し、ペネトレーションテストやセキュリティ評価に利用できます。分類されたツールをstdioで提供し、Docker内で実行できます。

主な機能

  1. 01偵察・ネットワークスキャンツール
  2. 02Web脆弱性テストとファジング
  3. 03パスワード解析とブルートフォース
  4. 04エクスプロイト検索とMetasploit実行
  5. 05Dockerによるコンテナ実行

活用シーン

  1. 01ドメイン、DNSレコード、ホストの列挙
  2. 02ネットワークポートとWeb脆弱性のスキャン
  3. 03パスワードハッシュとログイン情報のテスト
  4. 04エクスプロイト検索とMetasploitモジュール実行

MCP 対応

stdio経由で21種類のKaliセキュリティツールをMCPクライアントに公開し、コマンド出力とエラーログを返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"kali": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"kali-mcp-server"
]
}
}
}
起動コマンドdocker run -i --rm kali-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocikali-mcp-server

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

画像

🐉 Kali Linux MCP サーバー

📖 プロジェクト概要

Kali Linux MCP サーバーは、LLMを包括的な侵入テスト、偵察、列挙ツール群にネイティブに接続するために設計された、特化型のModel Context Protocol(MCP)実装です。FastMCP Python SDKを基盤とし、自然言語によるリクエストを、Kali Linux標準ユーティリティの安全にカプセル化されたコマンドライン実行に変換します。

これらのツールをMCPリソースとして公開することで、AIエージェントはWHOIS検索、Nmapスキャンの実行、Webディレクトリのファジング、エクスプロイトデータベースの検索、さらにはMetasploit Frameworkとの連携まで自律的に行い、その結果として標準出力とエラーログを構造化してLLMのコンテキストウィンドウに返します。

主な機能

  • 🎯 包括的な侵入テスト用セキュリティツールキット:LLMに侵入テストツールの各種カテゴリをネイティブに公開します。機能は論理的に分類されており、パスワードクラッキングとブルートフォース攻撃、エクスプロイトとスニッフィング専用のモジュールも含まれます。
  • 📦 自動化された分離コンテナ化:付属のDocker設定により、手間なく再現可能なセットアップを実現します。Debianパッケージのインストール中に手動プロンプトを抑制するため、環境変数DEBIAN_FRONTEND=noninteractiveを使用し、完全に自動化されたビルドプロセスを保証します。
  • ネイティブなMCP SDK統合:公式のmcp Python SDKを基盤として堅牢に構築されています。環境は柔軟で、分離されたコンテナ内にSDKをグローバルにインストール(--break-system-packages)することも、ローカルのPython仮想環境を介してインストールすることもできます。
  • ⚡ 標準化されたstdioトランスポート:JSON-RPC通信に標準入出力を直接使用することで、複雑なネットワーク設定を回避し、AI IDE(CursorやVS Codeなど)やデスクトップクライアント(Claude Desktopなど)との即時利用可能な互換性を確保します。

デモ

ハッシュクラッキング
画像
脆弱性スキャン

GitHub CopilotとKali MCP Serverによる自律的な脆弱性スキャン

前提条件

必要な依存関係は、選択した実行方法によって異なります。

オプションA:🐳 Dockerで実行(推奨)

Dockerを使用すると、Python 3、pip、およびKali Linuxツールの豊富なセット(nmap、sqlmap、tcpdump、metasploit-frameworkなど)を自動的に用意する分離コンテナ内でサーバーが実行されます。

  • Docker Engine: インストールされ、実行中である必要があります。この方法は、ローカルにセキュリティツールを必要とせず、Windows、macOS、Linuxで問題なく動作します。
オプションB:🐍 ローカルPythonで実行

Dockerを使用せず、ホストマシン上で直接スクリプトを実行する場合は、必要なツールがホスト上でネイティブに利用できる必要があります。

  • オペレーティングシステム: Kali Linux(推奨)、または必要な侵入テストツールがインストールされ、システムのPATHに設定されている別のLinuxディストリビューション。
  • Python: Python 3.10以降。
  • 依存関係: mcp Python SDK(pip install mcp)。
  • 権限: パケットスニッフィング用のtcpdumpなど、一部の公開ツールをネイティブに実行するには、明示的にroot権限が必要です。

セットアップ方法

🐳 オプション A:Docker 実装

このサーバーは多数の特定のバイナリツールに依存しているため、Docker でパッケージ化する方法が「ゴールドスタンダード」です。

最も手早く始めるには、Docker Hub から公式イメージをプルします。

docker pull cyberillo/kali-mcp-server:latest

MCP クライアントに必要な stdio トランスポートを使用して、コンテナを対話モードで実行するには、次のようにします。

docker run -i --rm kali-mcp-server

(注:tcpdump や netdiscover などのツールには、昇格された権限が必要です。これらのツールが明示的に必要な場合は、docker run コマンドに --privileged または特定の --cap-add フラグを追加する必要がある場合がありますが、一般的な使用では強く推奨されません。)

または、以下の手順に従って、自分で Docker イメージをビルドすることもできます。


Dockerfile の概要

  • ベースイメージ: サーバーは、公式の kalilinux/kali-rolling ベースイメージを基に構築されています。

  • ツールチェーンのインストール: システムを更新し、nmap、sqlmap、metasploit-framework、gobuster、hydra、john などの必須ツールをインストールします。

  • ワードリスト: rockyou.txt ワードリストはデフォルトで圧縮されているため、自動的に展開され、パスワードクラッキングやファジングツールですぐに利用できます。

  • Python 環境: PEP 668 の --break-system-packages フラグを使用して、隔離されたコンテナ内に mcp Python SDK をグローバルにインストールします。


  1. リポジトリをクローンし、ディレクトリに移動します。
git clone https://github.com/cyberillo/kali-mcp-server.git
cd kali-mcp-server

  1. 🏗️ イメージをビルドします
docker build -t kali-mcp-server .

  1. 🏃 コンテナを実行します

MCP クライアントに必要な stdio トランスポートを使用して、コンテナを対話モードで実行するには、次のようにします。

docker run -i --rm kali-mcp-server

(注:tcpdump や netdiscover などのツールには、昇格された権限が必要です。これらのツールが明示的に必要な場合は、docker run コマンドに --privileged または特定の --cap-add フラグを追加する必要がある場合がありますが、一般的な使用では強く推奨されません。)

🛠️ オプション B:ローカル開発環境のセットアップ

Docker は推奨されるデプロイ方法ですが、開発やデバッグのために Kali Linux マシン上でサーバーを直接実行することもできます。

  1. リポジトリをクローンし、ディレクトリに移動します。
git clone https://github.com/cyberillo/kali-mcp-server.git
cd kali-mcp-server

  1. 🐍 Python 仮想環境をセットアップします:
python3 -m venv venv
source venv/bin/activate

  1. MCP SDK をインストールします:
pip install mcp

  1. Kali のすべてのツールがインストールされていることを確認します:
    nmap、gobuster、sqlmap、msfconsole などのツールが、システムの PATH から利用できることを確認してください。
  2. サーバーをローカルでデバッグモードで実行します:
    標準入力/出力を使用して、Python スクリプトを直接テストできます。
python3 kali-mcp-server.py

🤖 使用方法

1. Claude Desktop の設定

次の内容を claude_desktop_config.json ファイルに追加します(通常、Mac では ~/Library/Application Support/Claude/claude_desktop_config.json、Windows では %APPDATA%\Claude\claude_desktop_config.json にあります)。

上記のパスに見つからない場合は、File > Settings > Developer > Edit Config に移動してください。

Docker を使用する場合(推奨):

{
  "mcpServers": {
    "kali-tools": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "kali-mcp-server"
      ]
    }
  }
}

ローカルの Python を使用する場合:

{
  "mcpServers": {
    "kali-tools": {
      "command": "/path/to/your/venv/bin/python3",
      "args": [
        "/path/to/kali-mcp-server.py"
      ]
    }
  }
}

2. GitHub Copilot(VS Code)
  1. 存在しない場合は、ワークスペースに .vscode ディレクトリを追加します。
  2. 次のように .vscode/mcp.json を更新して、MCP サーバーを追加します。
{
    "servers": {
        "kali-mcp-server": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "kali-mcp-server"
            ]
        }
    },
    "inputs": []
}
3. Cursor/その他の IDE

Model Context Protocol に対応した IDE では、stdio トランスポートタイプを使用して新しい MCP サーバーを設定します。

  • タイプ: stdio
  • コマンド: docker
  • 引数: run -i --rm kali-mcp-server

MCP ツール定義

サーバーは、運用フェーズに応じて分類された21種類の専用ツールを公開します。

カテゴリツール名説明とパラメーター
Reconwhois_lookupWHOIS 検索を実行します。パラメーター: domain (str)。
Recondnsenum_scanDNS レコードを列挙します。パラメーター: domain (str)。
Reconwhatweb_scanCMS とヘッダーを特定します。パラメーター: target_url (str)。
Reconamass_enumパッシブ方式でサブドメインを列挙します。パラメーター: domain (str)。
Reconnetdiscover_scan稼働中のホストを検出します。パラメーター: ip_range (str)。
Scanningnmap_scanネットワークの検出とポートスキャンを実行します。パラメーター: target (str)、flags (str、デフォルト:-sV -F)。
Scanningenum4linux_scanWindows/Samba システムを列挙します。パラメーター: target_ip (str)。
Scanningsmbclient_listSMB 共有を一覧表示します。パラメーター: target_ip (str)、user (str)、password (str)。
Web Secnikto_scanWeb の脆弱性スキャンを実行します。パラメーター: target_url (str)。
Web Secgobuster_dirディレクトリへのブルートフォース攻撃を実行します。パラメーター: target_url (str)、wordlist (str)。
Web Secdirb_scanWeb コンテンツをスキャンします。パラメーター: target_url (str)、wordlist (str)。
Web Secffuf_scan高速な Web ディレクトリファジングを実行します。パラメーター: target_url (str)、wordlist (str)。
Web Secwfuzz_scanWeb パラメーター/ディレクトリのファジングを実行します。パラメーター: target_url (str)、wordlist (str)。
Web Secsqlmap_scanSQL インジェクションの検出/悪用を行います。パラメーター: target_url (str)、params (str)。
Web Secwpscan_enumWordPress の脆弱性スキャナーです。パラメーター: target_url (str)。
Crackinghydra_bruteforceログイン認証情報に対するブルートフォース攻撃を実行します。パラメーター: target (str)、service (str)、user (str)、wordlist (str)。
Crackingjohn_crackパスワードハッシュを解読します。パラメーター: hash_file (str)、wordlist (str)。
Crackinghashcat_crack大量のリソースを必要とするハッシュ解読を実行します。パラメーター: hash_file (str)、hash_type (str)、wordlist (str)。
Exploitsearchsploit_queryExploit Database を検索します。パラメーター: query (str)。
Exploittcpdump_sniffネットワークパケットをキャプチャします。パラメーター: interface (str)、packet_count (str)。
Exploitmetasploit_exploitMSF モジュールを実行します。パラメーター: module (str)、options (str)。

LLM 向けのヒント: LLM に metasploit_exploit の実行を依頼する場合は、オプションを KEY=VALUE のカンマ区切りで適切に指定してください(例:RHOSTS=192.168.1.5, LHOST=10.0.0.2)。

⚙️ 環境変数

Python サーバースクリプトではアプリケーションレベルのカスタム環境変数を強制していませんが、Docker 環境では次の標準 Linux 変数を使用します。

DEBIAN_FRONTEND:apt のインストール中に対話型プロンプトへの応答待ちでビルドプロセスが停止しないよう、Dockerfile で noninteractive に設定します。

⚠️ トラブルシューティング

  • コマンドがタイムアウトする: サーバーでは run_cmd 関数に安全のためのタイムアウトが組み込まれています(デフォルトは300秒で、Nikto や Metasploit などの負荷が高いツールでは600秒以上に延長されます)。ターゲットがまったく応答しない場合、ツールは LLM を無期限に待機させることなく、タイムアウトエラーを正常に返します。
  • アクセスが拒否される(Docker): Docker コマンドを実行する権限がユーザーにあることを確認するか、適切なユーザー権限でクライアント IDE を実行してください。Docker のホストネットワークルーティングまたは特権モードが有効になっていないと、コンテナ内の netdiscover や tcpdump などのツールは外部トラフィックをキャプチャできず、エラーも表示されない場合があります。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。