AI渗透测试桥接工具

KALI-MCP是一个通过Docker将大型语言模型直接桥接到Kali Linux环境中的AI驱动安全审计工具,适用于高速渗透测试模拟和研发。

  • by Ans-A-cyber
  • Dockerfile
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 edutechenterprises2023-ops/kali-mcp

使用说明

KALI-MCP:AI驱动的渗透测试桥

一个“Vibecoder”风格的MCP服务器,通过Docker将LLM直接桥接到Kali Linux环境中。专为高速、人工智能驱动的安全审计、研发和快速渗透测试模拟而设计。


特性

  • 充分潜力: 无需命令白名单——直接通过AI执行任何Kali工具(Nmap、SQLMap、Metasploit等)。
  • 网络就绪: Docker功能 NET_ADMIN 和 NET_RAW 用于隐形扫描和数据包制作。
  • 码头化: 为完全隔离的环境设置一个命令。
  • Claude桌面集成: 通过MCP配置直接插入Claude Desktop。
  • GPL v3许可证: 免费和开源。

先决条件

在开始之前,请确保已安装以下内容:


项目结构

kali-mcp/
├── Dockerfile        # Kali Linux Docker environment
├── mcp_server.py     # MCP bridge server
└── README.md

设置和安装

步骤1--克隆存储库

git clone https://github.com/edutechenterprises2023-ops/kali-mcp.git
cd kali-mcp

第二步——构建Docker镜像

docker build -t my-kali-mcp .

这将提取最新的Kali Linux滚动映像,并安装Nmap、SQLMap、Metasploit和MCP Python包。

步骤3——测试容器(可选)

docker run -i --rm --cap-add=NET_ADMIN --cap-add=NET_RAW my-kali-mcp

如果它开始时没有错误,你就可以走了。


在Docker桌面中启用MCP

Docker Desktop有一个内置的MCP工具包,必须启用该工具包才能让Claude与本地容器通信。

  1. 打开 Docker 桌面版.
  2. 点击 设置 齿轮图标(右上角)。
  3. 导航至 发展中的特点 (或 Beta功能 取决于您的版本)。
  4. 启用 “MCP工具包” / “模型上下文协议支持”.
  5. 点击 应用并重新启动.

如果你没有看到MCP选项,请确保Docker Desktop已更新到最新版本。


连接到克劳德桌面

步骤1——找到配置文件

开 视窗,Claude Desktop配置位于:

C:\Users\<username>\AppData\Roaming\Claude\claude_desktop_config.json

提示: 按 Win + R,类型 %APPDATA%\Claude,然后按Enter键直接打开文件夹。

开 macOS,它位于:

~/Library/Application Support/Claude/claude_desktop_config.json

步骤2——编辑配置文件

打开 claude_desktop_config.json 在任何文本编辑器(记事本、VS Code等)中,粘贴以下内容:

{
  "mcpServers": {
    "kali-local": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--cap-add=NET_ADMIN",
        "--cap-add=NET_RAW",
        "my-kali-mcp"
      ]
    }
  }
}

步骤3--重新启动克劳德桌面

完全退出并重新启动Claude Desktop。在Windows上:

  1. 右键单击中的Claude图标 系统托盘 (右下角)。
  2. 点击 退出.
  3. 从“开始”菜单重新打开Claude Desktop。

步骤4——验证连接

一旦Claude Desktop重新启动:

  1. 开始新的聊天。
  2. 寻找 🔧 工具 图标或输入栏中的MCP指示器。
  3. 你应该看看 kali-local 列为可用的MCP服务器。
  4. 尝试测试提示:
Run nmap -sV localhost using the kali-local tool

如果Claude执行命令并返回输出,则一切正常。


运作原理

MCP服务器(mcp_server.py)公开单个工具-- execute_kali_cmd --Claude调用该命令在Kali容器中运行shell命令:

import subprocess
from mcp.server.fastmcp import FastMCP

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

@mcp.tool()
def execute_kali_cmd(command: str) -> str:
    """
    Run any Kali Linux terminal command (nmap, sqlmap, etc.)
    :param command: The full terminal command to execute.
    """
    try:
        result = subprocess.check_output(command, shell=True, stderr=subprocess.STDOUT, text=True)
        return result
    except subprocess.CalledProcessError as e:
        return f"Error: {e.output}"

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

流量: Claude发送命令字符串→ MCP服务器在容器内执行它→ 将输出返回给Claude。


故障排除

问题 修复
docker: command not found 确保Docker Desktop已安装并正在运行
克劳德没有出现 kali-local 工具 检查JSON配置是否存在语法错误,然后重新启动Claude Desktop
容器立即退出 运行 docker run -it my-kali-mcp bash 交互式调试
MCP在Docker Desktop中不可用 将Docker Desktop更新到最新版本并在设置中启用MCP

安全免责声明

⚠️ 仅供研发和教育使用。

此工具有意允许 远程代码执行(RCE) 在容器内。总是在一个 隔离实验室或虚拟机环境。切勿对您不拥有或没有明确书面许可进行测试的系统使用。作者不对误用负责。


许可证

GPL v3 --免费和开源。