Shikata Ga Nai

Private? There is no such things.

Kali Linux をコンテナ化した MCP サーバを作って Claude から操作する

Hello there, ('ω')ノ

AI が外部ツールを直接操作できたら便利だと思いませんか?

ポイントは以下の3つです。

  • MCP(Model Context Protocol)で AI とツールをつなぐ
  • Kali Linux を Docker コンテナで安全に扱う
  • Claude Desktop から侵入テストを実行させる

1. MCP(Model Context Protocol)とは?

MCP は AI と外部ツールを接続するための共通ルール(プロトコル)です。

通常の AI は文章を生成するだけですが、MCP を使うと次のようなことができます。

  • AI が「どのツールを使うべきか」を判断
  • 実際にコマンドを実行
  • 実行結果を読み取り、要約・分析

つまり、AI が 実務ツールを操作するアシスタントになります。


2. なぜ Kali Linux をコンテナ化するのか?

Kali Linux は侵入テスト専用の Linux ディストリビューションです。
ただし、そのまま使うと次の問題があります。

  • 環境構築が重い
  • ホスト OS を汚しやすい
  • 使い捨てしにくい

そこで Docker を使います。

Docker を使うメリット

  • 必要なツールだけ入れた軽量環境
  • 壊してもすぐ作り直せる
  • AI 用の実験環境として安全

3. 全体構成

今回作る構成は以下の通りです。

  • Docker コンテナ
    • Kali Linux
    • nmap などの侵入テストツール
    • MCP サーバ(Python)
  • Claude Desktop
    • MCP サーバに接続
    • 自然言語でスキャン指示

4. MCP サーバの実装(Python)

MCP サーバは Python で作ります。
FastMCP という軽量な MCP 実装を使います。

必要なライブラリ

pip install fastmcp

最小構成の MCP サーバ例

from fastmcp import FastMCP
import subprocess

mcp = FastMCP("kali-mcp-server")

@mcp.tool()
def nmap_scan(target: str) -> str:
    """
    nmap を使って TCP ポートをスキャンする
    """
    result = subprocess.run(
        ["nmap", "-A", target],
        capture_output=True,
        text=True
    )
    return result.stdout

if __name__ == "__main__":
    mcp.run()

このコードでやっていることは単純です。

  • AI から nmap_scan が呼ばれる
  • コンテナ内で nmap を実行
  • 結果を文字列で返す

5. Dockerfile の作成

次に Kali Linux をベースにした Docker イメージを作ります。

Dockerfile の例

FROM kalilinux/kali-rolling

RUN apt update && \
    apt install -y nmap python3 python3-pip && \
    pip3 install fastmcp

WORKDIR /app
COPY server.py /app/server.py

CMD ["python3", "server.py"]

ビルドと起動

docker build -t kali-mcp .
docker run -it kali-mcp

これで Kali + MCP サーバが起動します。


6. Claude Desktop から接続する

Claude Desktop は MCP に対応しています。
設定ファイルで、起動中の MCP サーバを登録します。

設定後、Claude に次のように話しかけます。

quick scan with aggressive nmap tcp ports on 10.10.10.10

すると Claude は次の流れで動きます。

  1. 要求内容を理解
  2. nmap が必要だと判断
  3. MCP サーバ経由で nmap 実行
  4. 実行結果を解析
  5. 分かりやすく説明

7. 実際にできること

この構成で、次のようなことが可能になります。

  • ポートスキャン
  • サービスの特定
  • 脆弱そうなポイントの洗い出し
  • スキャン結果の自動レポート化

コマンドを覚えていなくても、日本語や英語で指示するだけで進められます。


8. 注意点(重要)

この仕組みは非常に強力です。
必ず次を守ってください。

  • 自分が所有・許可された環境のみを対象にする
  • 公開サーバで無断スキャンしない
  • MCP サーバを外部公開しない

侵入テストは 学習・検証目的のみに限定しましょう。


9. まとめ

  • MCP を使うと AI がツールを直接操作できる
  • Kali Linux は Docker で扱うと安全で便利
  • Claude は侵入テストの補助役として非常に優秀
  • 初学者でも「何をすべきか」を AI が導いてくれる

AI 時代の侵入テスト学習環境として、とても相性の良い構成です。
まずはローカルや演習用環境で試してみるのがおすすめです。

Best regards, (^^ゞ