内容
> **法律声明:** 本工具仅适用于授权的渗透测试、CTF 平台(例如 HackTheBox、TryHackMe)以及您自己的实验室环境。未经明确书面许可而针对您无权测试的系统进行测试是违法的。作者不对滥用该工具承担任何责任。
---
# Kali MCP
将 Claude、GitHub Copilot 或任何与 MCP 兼容的 AI 代理连接到实时 Kali Linux 机器。用日常英语与您的工具交流 — 代理选择正确的二进制文件,链接结果,并为您提供结构化的报告。
```
"扫描 10.10.11.5 并告诉我有什么值得攻击的"
→ nmap → whatweb → nikto → gobuster → 结构化报告
"我获得了 SSH 凭证作为 www-data — 提升到 root"
→ ssh_command → run_linpeas → searchsploit → sudo abuse → root.txt
```
完整的后渗透循环:枚举 → 利用 → shell → 权限提升 → flag。无需在工具之间复制粘贴,无需切换标签页,无需等待。
---
## 工作原理
```
AI 代理(Claude / Copilot / Claude Code)
│
│ MCP 协议 (stdio)
▼
client.py ─── FastMCP 服务器,暴露工具 / 资源 / 提示
│
│ HTTP (localhost:5000)
▼
server.py ─── Flask REST API
│
│ subprocess / paramiko
▼
Kali 二进制文件 ─── nmap, tshark, sqlmap, metasploit, ssh ...
```
两个进程始终运行:
| 进程 | 文件 | 角色 |
|------------|-------------|----------------------------------------------------|
| Flask API | `server.py` | 执行真正的 Kali 二进制文件,暴露 REST 端点 |
| MCP 服务器 | `client.py` | 通过 MCP stdio 将 AI 代理连接到 Flask |
---
## 项目结构
```
~/Kali-MCP/
├── client.py ← MCP 入口点(由 AI 主机启动)
├── server.py ← Flask 入口点(作为 systemd 服务运行)
├── client/
│ ├── safety.py ← 提示注入防护栏
│ ├── http_client.py ← Flask 的 HTTP 包装器
│ ├── tools.py ← 32 个 @mcp.tool 定义
│ ├── resources.py ← 9 个 @mcp.resource 只读数据源
│ └── prompts.py ← 9 个 @mcp.prompt 工作流程手册
└── server/
├── executor.py ← 子进程管理
├── routes_tools.py ← 蓝图:/api/tools/*
└── routes_system.py ← 蓝图:/api/command, /health
```
---
## 安装
### 系统依赖
```bash
sudo apt update && sudo apt install -y \
nmap masscan netdiscover \
gobuster dirb ffuf nikto sqlmap whatweb wpscan \
hydra john hashcat \
tshark tcpdump \
metasploit-framework exploitdb \
enum4linux smbclient \
ncat rlwrap peass \
netexec
```
### Python — 选项 A:pip
```bash
cd ~/Kali-MCP
pip install flask requests "mcp[cli]" paramiko --break-system-packages
```
### Python — 选项 B:uv(推荐)
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh && source ~/.bashrc
cd ~/Kali-MCP
uv venv && source .venv/bin/activate
uv pip install flask requests "mcp[cli]" paramiko
```
> 使用 uv 时,请在 systemd 服务和 MCP 配置文件中将 `python3` 替换为 `/home/kali/Kali-MCP/.venv/bin/python3`。
### 验证
```bash
python3 server.py
# → 启动 Kali Linux 工具 API 服务器,监听 127.0.0.1:5000
curl http://localhost:5000/health
# → {"status": "healthy", ...}
```
---
## 启动时运行(systemd)
```bash
sudo nano /etc/systemd/system/kali-mcp.service
```
```ini
[Unit]
Description=Kali MCP Flask 服务器
After=network.target
[Service]
ExecStart=/usr/bin/python3 /home/kali/Kali-MCP/server.py
WorkingDirectory=/home/kali/Kali-MCP
Restart=always
RestartSec=3
User=kali
[Install]
WantedBy=multi-user.target
```
```bash
sudo systemctl daemon-reload
sudo systemctl enable --now kali-mcp
sudo systemctl status kali-mcp
```
---
## MCP 客户端设置
### Claude 桌面版
配置位置:
- Linux: `~/.config/Claude/claude_desktop_config.json`
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"kali": {
"command": "python3",
"args": ["/home/kali/Kali-MCP/client.py"]
}
}
}
```
重启 Claude 桌面版。在聊天输入框中出现 🔨 图标时,工具已加载。资源和提示可作为可附加的上下文和斜杠命令使用。
### VS Code + GitHub Copilot
`~/.vscode/mcp.json` 或工作区 `.vscode/mcp.json`:
```json
{
"mcp": {
"servers": {
"kali": {
"type": "stdio",
"command": "python3",
"args": ["/home/kali/Kali-MCP/client.py"]
}
}
}
}
```
`Ctrl+Shift+P` → **MCP: 列出服务器** 以确认。注意:Copilot 仅支持工具 — 资源和提示需要 Claude 桌面版或 Claude Code。
### Claude Code
`~/.claude.json`:
```json
{
"mcpServers": {
"kali": {
"command": "python3",
"args": ["/home/kali/Kali-MCP/client.py"],
"type": "stdio"
}
}
}
```
```bash
claude
/tools # 确认 kali 工具已列出
/mcp # 检查服务器状态
```
---
## 功能
### 工具
7 类 32 个工具。全部定义在 `client/tools.py` 中。
#### 扫描和发现
| 工具 | 描述 | 关键参数 |
|-------------------|-------------------------------|----------------------------------|
| `nmap_scan` | 端口扫描器和服务指纹识别器 | `target`, `scan_type`, `ports` |
| `masscan_scan` | 大范围快速全端口扫描器 | `target`, `ports`, `rate` |
| `netdiscover_scan` | 子网中 ARP 主机发现 | `target_range`, `interface` |
#### Web
| 工具 | 描述 | 关键参数 |
|-----------------------|----------------------------------|-----------------------------------------|
| `gobuster_scan` | 目录 / DNS / vhost 暴力破解工具 | `url`, `mode`, `wordlist` |
| `dirb_scan` | Web 内容发现 | `url`, `wordlist` |
| `ffuf_fuzz` | 快速模糊测试 — 目录、参数、vhost | `url`, `wordlist`, `filter_codes` |
| `nikto_scan` | Web 服务器漏洞扫描器 | `target` |
| `whatweb_fingerprint` | 技术指纹识别器 | `url`, `aggression` |
| `wpscan_analyze` | WordPress 扫描器 | `url`, `additional_args` |
| `sqlmap_scan` | SQL 注入测试器 | `url`, `data` |
| `http_request` | 完整的 curl — GET/POST、头部、cookie | `url`, `method`, `data`, `headers` |
#### 利用
| 工具 | 描述 | 关键参数 |
|-------------------|-------------------------------|--------------------------------------------|
| `metasploit_run` | Metasploit 模块执行器 | `module`, `options` |
| `searchsploit` | 搜索 Exploit-DB 离线存档 | `query` |
| `msfvenom_generate` | 生成反向/绑定 shell 有效载荷 | `payload`, `lhost`, `lport`, `format` |
| `start_listener` | Netcat 监听器,用于反向 shell | `port`, `duration` |
#### 凭证
| 工具 | 描述 | 关键参数 |
|-----------------|--------------------------------|------------------------------------------------|
| `hydra_attack` | 在线密码暴力破解工具 | `target`, `service`, `username`, `password_file` |
| `john_crack` | 离线哈希破解工具 | `hash_file`, `wordlist`, `format_type` |
| `hashcat_crack` | GPU 加速哈希破解工具 | `hash_file`, `hash_type`, `wordlist` |
#### Windows / Active Directory
| 工具 | 描述 | 关键参数 |
|-----------------------|-------------------------------------------|-----------------------------------|
| `enum4linux_scan` | Windows / Samba 枚举 | `target` |
| `smbclient_interact` | 读取和下载 SMB 共享文件 | `target`, `share`, `smb_command` |
| `crackmapexec` | SMB/AD 瑞士军刀 | `target`, `protocol`, `hash` |
#### 后渗透
| 工具 | 描述 | 关键参数 |
|----------------|-------------------------------------------|------------------------------------------|
| `ssh_command` | 在远程主机上运行命令,支持 SSH | `host`, `username`, `command` |
| `run_linpeas` | 上传和执行 LinPEAS/WinPEAS | `host`, `username`, `script_type` |
#### 网络 / 流量
| 工具 | 描述 | 关键参数 |
|-------------------|-------------------------------|--------------------------------------------|
| `tshark_capture` | 实时数据包捕获 | `interface`, `capture_filter`, `duration` |
| `tshark_read_pcap`| 分析现有 .pcap / .pcapng 文件 | `pcap_file`, `display_filter` |
| `tcpdump_capture` | 轻量级数据包捕获 | `interface`, `capture_filter` |
#### 实用工具
| 工具 | 描述 |
|-------------------|----------------------------------------|
| `execute_command` | 运行任意 shell 命令 |
| `server_health` | 检查哪些工具已安装 |
---
### 资源
只读上下文源,代理在不触发任何实际操作的情况下获取。定义在 `client/resources.py` 中。
> 仅限 Claude 桌面版和 Claude Code。Copilot 使用等效工具调用代替。
| URI | 描述 |
|----------------------------------------|--------------------------------------------------|
| `kali://server/health` | 实时工具可用性状态 |
| `kali://server/tools` | 完整的工具目录 |
| `kali://server/wordlists` | 服务器上存在的词库 |
| `kali://server/network` | 网络接口和路由表 |
| `kali://methodology/pentest-phases` | 标准渗透测试阶段参考 |
| `kali://methodology/common-ports` | 端口 → 推荐工具查找 |
| `kali://methodology/privesc-linux` | Linux 权限提升检查清单(SUID, sudo, cron, caps) |
| `kali://methodology/privesc-windows` | Windows 权限提升检查清单(tokens, services, PTH)|
| `kali://methodology/reverse-shells` | 每种语言的反向 shell 一行 |
---
### 提示
工作流程手册,将完整的方法论加载到代理的上下文中。定义在 `client/prompts.py` 中。
> 仅限 Claude 桌面版(斜杠命令)和 Claude Code。不支持 Copilot。
| 提示 | 使用时机 | 功能 |
|---------------------|------------------------------------|---------------------------------------------------------------------|
| `full_recon` | 参与开始 | nmap → 服务枚举 → 网络深入挖掘 → 报告 |
| `web_pentest` | Web 应用评估 | 指纹识别 → 内容发现 → CMS 检测 → 注入 |
| `smb_enumeration` | 端口 139/445 打开 | 共享、用户、EternalBlue 检查 |
| `ctf_helper` | HTB / THM 机器 | 枚举 → 立足点 → 用户标志 → 权限提升 → root 标志 |
| `explain_output` | 解释原始工具输出 | 摘要、按严重程度分类的发现、下一步骤 |
| `password_attack` | 有用户名,需要凭证 | 词库选择 → hydra → john → 报告 |
| `post_exploitation` | 已获得 shell,需要权限提升 | 情境感知 → linpeas → sudo/SUID/cron → 标志 |
| `exploit_search` | 发现服务版本 | searchsploit → metasploit 模块 → 利用 |
| `active_directory` | 域环境 | 枚举 → Kerberoasting → AS-REP → pass-the-hash → 域管理员 |
---
## 使用示例
**快速扫描**
```
"对 10.10.11.5 运行 nmap"
```
**完整的 CTF 参与**
```
"对 10.10.11.5 使用 ctf_helper 提示"
```
**后渗透**
```
"我有 SSH 凭证 admin:Password123 on 10.10.11.5 — 使用 post_exploitation 提示"
```
自动运行:`ssh_command → run_linpeas → searchsploit → 提升 → root.txt`
**有效载荷生成**
```
"为 10.10.14.5:4444 生成 Linux 反向 shell 并启动监听器"
```
**pcap 分析**
```
"读取 /root/challenge.pcap 并查找凭证 — 过滤 FTP 和 HTTP POST"
```
**利用版本**
```
"对 vsftpd 2.3.4 使用 exploit_search 提示"
```
**Active Directory**
```
"使用 active_directory 提示 — DC 10.10.10.175, 域 htb.local, 凭证 svc-alfresco:s3rvice"
```
---
## 故障排除
**端口 5000 已被占用**
```bash
sudo fuser -k 5000/tcp && sudo systemctl start kali-mcp
```
**Copilot 中工具未加载**
```
Ctrl+Shift+P → MCP: 重启服务器 → kali
```
**Flask 不可达**
```bash
curl http://localhost:5000/health
sudo systemctl status kali-mcp
journalctl -u kali-mcp -f
```
**tshark 权限被拒绝**
```bash
sudo usermod -aG wireshark kali
# 注销并重新登录
```
**ssh_command / run_linpeas 失败**
```bash
pip install paramiko --break-system-packages
```
**LinPEAS 未找到**
```bash
# apt
sudo apt install peass
# 或直接下载
wget -O /root/linpeas.sh \
https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh
```
**crackmapexec 未找到**
```bash
sudo apt install netexec # 提供 nxc — 自动被路由检测
```
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器