xhj-cloud/kali-mcp
GitHub: xhj-cloud/kali-mcp
部署在 Kali Linux 上的 MCP 服务器,让 Cherry Studio、Claude Desktop 等 AI 客户端能够通过对话直接调用 nmap、tcpdump 等 12 个网络维护工具和 7 个渗透测试工具。
Stars: 0 | Forks: 0
# 🔍 Kali MCP Server
[](https://www.python.org/)
[](https://gofastmcp.com)
[](LICENSE)
## ⚠️ 重要警告
**本工具集包含网络渗透测试模块。未经授权对他人网络/系统使用属于违法行为。**
- 仅限在**你自己拥有**或**已获得书面授权**的系统上使用
- 渗透模块默认关闭,需手动 `PENTEST_ENABLED=true` 才能加载
- **不要将服务暴露到公网**,仅限局域网使用
- 使用者需对自身行为承担全部法律责任
## 架构
┌──────────────────┐ Streamable HTTP (端口 8000) ┌──────────────────┐
│ Cherry Studio │ ──────────────────────────────→ │ Kali MCP Server │
│ Claude Desktop │ /mcp 端点 │ (FastMCP 3.x) │
│ 任何 MCP 客户端 │ ├──────────────────┤
└──────────────────┘ │ 12 网络维护工具 │
│ + 7 渗透测试工具 │
│ (可独立开关) │
└──────────────────┘
MCP 服务器部署在局域网 Kali Linux 主机上,AI 客户端通过 HTTP 协议远程调用 Kali 上的网络工具,结果实时返回对话中。
## 工具清单
### 网络维护(12 个,默认启用)
| 工具 | Kali 命令 | 功能 |
|------|-----------|------|
| `nmap_scan` | `nmap` | 端口扫描(7 种模式)、服务版本、OS 检测 |
| `arp_scan` | `arp-scan` | ARP 局域网设备发现,显示 MAC 厂商 |
| `ping_host` | `ping` | ICMP 连通性测试 + 延迟 |
| `traceroute_host` | `traceroute` | 路由跳数追踪 |
| `mtr_report` | `mtr` | ping + traceroute 综合报告 |
| `dig_query` | `dig` | DNS 记录查询(A/AAAA/MX/NS/TXT...) |
| `whois_lookup` | `whois` | 域名/IP 注册信息 |
| `network_connections` | `ss` | 活动连接和监听端口 |
| `network_interfaces` | `ip addr/link` | 网卡信息 + 流量统计 |
| `routing_table` | `ip route` | 内核路由表 |
| `tcpdump_capture` | `tcpdump` | 实时抓包(BPF 过滤) |
| `http_request` | `curl` | HTTP 请求测试 |
### 渗透测试(7 个,`PENTEST_ENABLED=true` 启用)
| 工具 | Kali 命令 | 功能 | 风险 |
|------|-----------|------|------|
| `nmap_vuln_scan` | `nmap --script` | CVE 漏洞检测、广播发现 | 🟡 中 |
| `searchsploit` | `searchsploit` | Exploit-DB 漏洞库搜索 | 🟢 低 |
| `whatweb_scan` | `whatweb` | Web 技术栈指纹识别 | 🟢 低 |
| `nikto_scan` | `nikto` | Web 服务器漏洞扫描(6700+ 规则) | 🟡 中 |
| `gobuster_dir` | `gobuster` | Web 目录/文件爆破 | 🟡 中 |
| `enum4linux_scan` | `enum4linux` | SMB 用户/共享/OS 枚举 | 🟡 中 |
| `hydra_brute` | `hydra` | 服务密码爆破 | 🔴 高 |
## 快速开始
### 环境要求
- **服务端:** Kali Linux(或其他 Debian 系),Python 3.10+
- **客户端:** Cherry Studio / Claude Desktop / 任何支持 MCP 的客户端
- **网络:** 客户端和服务端在同一局域网
### 1. 上传到 Kali
# 在 Mac/PC 上
ssh xhj@192.168.0.234 "mkdir -p /home/xhj/kali-mcp/src/kali_mcp"
scp -r /path/to/kali-mcp/* xhj@192.168.0.234:/home/xhj/kali-mcp/
### 2. 在 Kali 上安装
ssh xhj@192.168.0.234
cd /home/xhj/kali-mcp
chmod +x setup.sh
sudo ./setup.sh
`setup.sh` 自动完成:系统包 → Python venv → 依赖安装 → 可选 systemd。
### 3. 配置并启动
cd /home/xhj/kali-mcp
# 创建 .env
cat > .env << EOF
TRANSPORT=http
HTTP_HOST=0.0.0.0
HTTP_PORT=8000
AUTH_TOKEN=
PENTEST_ENABLED=false
EOF
# 启动
source .venv/bin/activate
PYTHONPATH=src python -m kali_mcp.server
### 4. 修复抓包工具权限
sudo apt install libcap2-bin -y
sudo setcap cap_net_raw,cap_net_admin+eip $(which arp-scan)
sudo setcap cap_net_raw,cap_net_admin+eip $(which tcpdump)
### 5. 连接 Cherry Studio
打开 Cherry Studio → 设置 → MCP 服务器 → 添加:
| 字段 | 值 |
|------|-----|
| 名称 | Kali 工具箱 |
| 类型 | HTTP / Streamable HTTP |
| URL | `http://192.168.0.234:8000/mcp` |
## 开机自启
sudo cp kali-mcp.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now kali-mcp
# 管理命令
sudo systemctl status kali-mcp # 状态
sudo systemctl restart kali-mcp # 重启
sudo journalctl -u kali-mcp -f # 日志
## 配置参考
`.env` 文件:
| 变量 | 默认值 | 说明 |
|------|--------|------|
| `TRANSPORT` | `http` | `stdio` / `sse`(旧版 Cherry Studio)/ `http`(推荐) |
| `HTTP_HOST` | `0.0.0.0` | 绑定地址 |
| `HTTP_PORT` | `8000` | 端口 |
| `AUTH_TOKEN` | (空) | Bearer Token,局域网留空 |
| `PENTEST_ENABLED` | `false` | 是否加载渗透模块 |
| `DEFAULT_TIMEOUT` | `120` | 命令超时(秒) |
## 使用示例
在 Cherry Studio 对话中:
"扫描 192.168.0.0/24 网段有哪些设备在线"
"192.168.0.13 是什么设备?开了哪些端口?"
"查一下 Kali 上的网络连接和路由表"
"对 192.168.0.1 做一次 nikto Web 漏洞扫描"
"searchsploit 搜一下 OpenSSH 7.0 的漏洞"
"用 nmap vuln 扫 192.168.0.1 的 22/80/443 端口"
## 项目结构
kali-mcp/
├── src/kali_mcp/
│ ├── server.py # FastMCP 服务器 + 条件加载渗透模块
│ ├── executor.py # 安全异步命令执行器(零 shell 注入)
│ ├── tools.py # 12 个网络维护工具 + Pydantic 校验
│ └── pentest.py # 7 个渗透测试工具(独立开关)
├── setup.sh # Kali 一键部署脚本
├── kali-mcp.service # systemd 服务模板
├── pyproject.toml
├── requirements.txt
└── .env.example
## 安全设计
| 措施 | 实现 |
|------|------|
| 零命令注入 | `asyncio.create_subprocess_exec` 列表传参,永久禁用 `shell=True` |
| 输入校验 | Pydantic 模型 + shell 元字符拦截 + IP/域名格式校验 |
| 危险参数过滤 | 禁止 nmap `--script`、`-oN/X/G/A/S`;禁止 tcpdump `-w` 写入 |
| 超时保护 | 每个命令独立超时,防止资源耗尽 |
| 渗透模块隔离 | `PENTEST_ENABLED` 环境变量控制,默认关闭 |
| hydra 强警告 | 调用前强制输出法律风险提示 |
## 开发
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
PYTHONPATH=src python -m kali_mcp.server
## License
MIT License — 详见 [LICENSE](LICENSE)
## 免责声明
本工具仅供合法授权的安全测试和教育目的使用。使用者须确保遵守所在国家/地区的法律法规。作者不对任何滥用、非法使用或因此产生的后果承担责任。
标签:MCP服务器, Python, UDP扫描, 人工智能工具, 密码管理, 插件系统, 无后门, 网络工具, 逆向工具