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. 02支持 Web 漏洞测试与模糊测试
  3. 03支持密码破解与暴力破解
  4. 04搜索漏洞数据库并调用 Metasploit
  5. 05通过 Docker 容器化部署

适用场景

  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 服务是一种专用的模型上下文协议(MCP)实现,旨在将大模型原生连接到全面的攻击性安全、侦察和枚举工具套件。该服务由 FastMCP Python SDK 提供支持,可将自然语言请求转换为安全、封装的标准 Kali Linux 实用工具命令行执行。

通过将这些工具作为 MCP 资源公开,AI Agent 可以自主执行 WHOIS 查询、运行 Nmap 扫描、模糊测试 Web 目录、搜索漏洞利用数据库,甚至与 Metasploit Framework 交互,同时将结构化的标准输出和错误日志返回到大模型的上下文窗口。

主要功能

  • 🎯 全面的攻击性安全工具包:向大模型原生公开不同类别的渗透测试工具。该服务对各项功能进行了逻辑分类,包括专门用于密码破解与暴力破解以及漏洞利用与嗅探的模块。
  • 📦 自动化且隔离的容器化:随附的 Docker 配置可确保设置过程顺畅且可重复。它使用 DEBIAN_FRONTEND=noninteractive 环境变量,抑制 Debian 软件包安装过程中的手动提示,从而保证完全自动化的构建流程。
  • 原生 MCP SDK 集成:基于官方 mcp Python SDK 构建,稳健可靠。环境灵活,可在隔离容器中全局安装 SDK(--break-system-packages),也可通过本地 Python 虚拟环境安装。
  • ⚡ 标准化 stdio 传输:使用直接标准输入/输出进行 JSON-RPC 通信,免去复杂的网络配置,并确保开箱即用地兼容 AI IDE(如 Cursor 和 VS Code)以及桌面客户端(如 Claude Desktop)。

演示

哈希破解
图片
漏洞扫描

使用 GitHub Copilot 和 Kali MCP 服务进行自主漏洞扫描

先决条件

所需依赖完全取决于你选择的执行方式。

选项 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 工具:
    确保系统 PATH 中包含 nmap、gobuster、sqlmap 和 msfconsole 等工具。
  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 个专用工具,按其操作阶段分类。

类别工具名称描述和参数
侦察whois_lookup执行 WHOIS 查询。参数: domain(str)。
侦察dnsenum_scan枚举 DNS 记录。参数: domain(str)。
侦察whatweb_scan识别 CMS 和标头。参数: target_url(str)。
侦察amass_enum被动枚举子域名。参数: domain(str)。
侦察netdiscover_scan查找活动主机。参数: ip_range(str)。
扫描nmap_scan网络发现和端口扫描。参数: target(str)、flags(str,默认值:-sV -F)。
扫描enum4linux_scan枚举 Windows/Samba 系统。参数: target_ip(str)。
扫描smbclient_list列出 SMB 共享。参数: target_ip(str)、user(str)、password(str)。
Web 安全nikto_scanWeb 漏洞扫描。参数: target_url(str)。
Web 安全gobuster_dir对目录进行暴力枚举。参数: target_url(str)、wordlist(str)。
Web 安全dirb_scanWeb 内容扫描。参数: target_url(str)、wordlist(str)。
Web 安全ffuf_scan快速模糊测试 Web 目录。参数: target_url(str)、wordlist(str)。
Web 安全wfuzz_scan对 Web 参数/目录进行模糊测试。参数: target_url(str)、wordlist(str)。
Web 安全sqlmap_scan检测/利用 SQL 注入。参数: target_url(str)、params(str)。
Web 安全wpscan_enumWordPress 漏洞扫描器。参数: target_url(str)。
破解hydra_bruteforce暴力破解登录凭据。参数: target(str)、service(str)、user(str)、wordlist(str)。
破解john_crack破解密码哈希。参数: hash_file(str)、wordlist(str)。
破解hashcat_crack资源密集型哈希破解。参数: hash_file(str)、hash_type(str)、wordlist(str)。
漏洞利用searchsploit_query搜索 Exploit Database。参数: query(str)。
漏洞利用tcpdump_sniff捕获网络数据包。参数: interface(str)、packet_count(str)。
漏洞利用metasploit_exploit执行 MSF 模块。参数: module(str)、options(str)。

给大模型的实用提示: 请求大模型运行 metasploit_exploit 时,请将选项仔细格式化为以逗号分隔的 KEY=VALUE 键值对(例如:RHOSTS=192.168.1.5, LHOST=10.0.0.2)。

⚙️ 环境变量

虽然 Python 服务脚本不会强制要求自定义的应用级环境变量,但 Docker 环境依赖以下标准 Linux 变量:

DEBIAN_FRONTEND:在 Dockerfile 中设为 noninteractive,以防止 apt 安装期间因交互式提示请求而导致构建过程挂起。

⚠️ 故障排除

  • 命令超时: 服务在 run_cmd 函数中内置了安全超时(默认 300 秒;对于 Nikto 或 Metasploit 等耗时较长的工具,则延长至 600 秒以上)。如果目标完全无响应,工具会正常返回超时错误,而不会让大模型无限期挂起。
  • 权限被拒绝(Docker): 确保你的用户有权限运行 Docker 命令,或使用适当的用户权限运行客户端 IDE。若未启用 Docker 网络主机路由或特权模式,容器内的 netdiscover 或 tcpdump 等工具可能会悄无声息地无法捕获外部流量。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。