MCP Kali Server について
MCP Kali Server は、MCP クライアントを Linux ターミナルでコマンドを実行する API サーバーに接続する軽量な API ブリッジです。許可を得たペネトレーションテストや CTF の演習を対象とし、AI エージェントが Kali のツールを利用できるようにします。README では教育および倫理的なテスト目的に限定されると明記されています。
主な機能
- 01Kali Linux マシン上でコマンドを実行する API
- 02Nmap、gobuster、sqlmap、Metasploit などのツールへのアクセス
- 03構造化された出力を返す生のコマンド実行
- 04SSH トンネルを使ったリモート利用
- 05Claude Desktop や 5ire などの MCP クライアントへの対応
活用シーン
- 01許可された環境で AI を活用したペネトレーションテストを行う
- 02CTF の課題で偵察と攻撃手順を自動化する
- 03MCP クライアントから Kali のフォレンジックツールを実行する
MCP 対応
本プロジェクトは MCP サーバーであり、Claude Desktop や 5ire などの MCP クライアントに対して Kali マシン上のコマンド実行とセキュリティツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Kali Server
MCP Kali Server (MKS) は、MCP クライアント(例:Claude Desktop や 5ire)を API サーバーに接続する軽量な API ブリッジです。これにより、Linux ターミナルでコマンドを実行できます。
この MCP は、ターミナルコマンドを実行できるほか、次のツールを使って Web アプリケーションとやり取りできます。
Dirbenum4linuxgobusterHydraJohn the RipperMetasploit-FrameworkNiktoNmapsqlmapWPScan- さらに、生のコマンドも実行できます。
その結果、AI による支援を活用したペネトレーションテストや、CTF チャレンジの解決をリアルタイムで実行できます。
このツールを利用した記事
🔍 ユースケース
AI 主導のオフェンシブセキュリティテストを実現することを目指し、次のことができます。
- MCP が OpenAI、Claude、DeepSeek、Ollama などの AI エンドポイントや、その他任意のモデルとやり取りできるようにします。
- Kali マシンでコマンドを実行するための API を公開します。
- AI を使ってターミナルコマンドを提案・実行し、CTF チャレンジを解決したり、偵察/エクスプロイトのタスクを自動化したりします。
- MCP アプリがカスタムリクエスト(例:
curl、nmap、ffufなど)を送信し、構造化された出力を受け取れるようにします。
以下は、Google の AI gemini 2.0 flash を使用した例です。
RamadanCTF の Web CTF チャレンジを解決する例
https://github.com/user-attachments/assets/dc93b71d-9a4a-4ad5-8079-2c26c04e5397
HTB のマシン「code」の解決を試みる例
https://github.com/user-attachments/assets/3ec06ff8-0bdf-4ad5-be71-2ec490b7ee27
🚀 特徴
- 🧠 AI エンドポイントとの統合:Claude Desktop や 5ier など、好みの MCP に Kali を接続できます。
- 🖥️ コマンド実行 API:Kali Linux マシンでターミナルコマンドを実行するための、制御された API を公開します。
- 🕸️ Web チャレンジのサポート:AI が Web サイトや API とやり取りし、
curlや AI が必要とするその他のツールを使ってフラグを取得できます。 - 🔐 オフェンシブセキュリティの専門家向けに設計:一般的なタスクを自動化するレッドチーム担当者、バグバウンティハンター、CTF プレイヤーに最適です。
🛠️ インストールと実行
Kali マシンで
sudo apt install mcp-kali-server
kali-server-mcp
または、最新の開発版を使用する場合:
git clone https://github.com/Wh0am123/MCP-Kali-Server.git
cd MCP-Kali-Server
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
./server.py
コマンドラインオプション:
--ip <address>:サーバーをバインドする IP アドレスを指定します(デフォルト:ローカルホストのみの127.0.0.1)- ローカル接続のみにする場合は
127.0.0.1を使用します(安全で、推奨) - 任意のネットワークインターフェースからの接続を許可する場合は
0.0.0.0を使用します(非常に危険なため、注意して使用してください) - 特定のネットワークインターフェースにバインドする場合は、具体的な IP アドレスを使用します
- ローカル接続のみにする場合は
--port <port>:ポート番号を指定します(デフォルト:5000)--debug:詳細なログを出力するデバッグモードを有効にします
使用例:
# Run on localhost only (secure, default)
./server.py
# Run on all interfaces (less secure, useful for remote access)
./server.py --ip 0.0.0.0
# Run on a specific IP and custom port
./server.py --ip 192.168.1.100 --port 8080
# Run with debug mode
./server.py --debug
MCP クライアントのマシンで
同じ Kali マシン上でローカルに実行することも、別の Linux、Windows、macOS マシン上でリモートに実行することもできます。
クライアントとサーバーを同じ Kali マシン上で実行する場合(つまりローカルの場合)、次のいずれかを実行します。
## OS package
kali-server-mcp --server http://127.0.0.1:5000
# ...OR...
## Bleeding edge
./client.py --server http://127.0.0.1:5000
別々のマシンで実行する場合(つまりリモートの場合)、MCP サーバーへの SSH トンネルを作成してから、クライアントを起動します。
## Terminal 1 - Replace `LINUX_IP` with Kali's IP
ssh -L 5000:localhost:5000 user@LINUX_IP
## Terminal 2
git clone https://github.com/Wh0am123/MCP-Kali-Server.git
cd MCP-Kali-Server
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
./client.py --server http://127.0.0.1:5000
ネットワーク上で MCP Kali Server を外部に公開している場合(server.py --IP...)、SSH トンネルは不要です(ただし、SSH の利用を推奨します!)。
注:⚠️(これは強く推奨されません。SSH の使用を推奨します)⚠️。
./client.py --server http://LINUX_IP:5000
Claude Desktop の設定:
編集するファイル:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
5ire Desktop Application の設定:
- コマンド
python3 /absolute/path/to/client.py --server http://LINUX_IP:5000で MCP を追加するだけで、必要な設定ファイルが自動的に生成されます。
🔮 その他の可能性
AI モデルがターミナル上でコマンドを実行できるようになったため、説明した内容以外にもさまざまな可能性があります。以下に例を示します。
-
Volatility を使用したメモリフォレンジック
- プロセスの列挙、DLL インジェクションの確認、メモリダンプからのレジストリ抽出などのメモリ分析タスクを自動化できます。
-
SleuthKit を使用したディスクフォレンジック
- ディスクイメージの分析、タイムラインの生成、ファイルカービング、ハッシュの比較を自動化できます。
⚠️ 免責事項:
このプロジェクトは、教育および倫理的なテストのみを目的としています。提供される情報やツールの悪用(不正アクセス、エクスプロイト、悪意のある活動を含む)は固く禁じられています。
著者は、悪用について一切の責任を負いません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
