使用说明
MCP Kali服务器
一个模型上下文协议(MCP)服务器,通过特权Docker容器提供对Kali Linux安全工具的访问。这使得AI助手能够使用行业标准的渗透测试工具进行安全测试和侦察。
特性
- 特权Docker容器:运行具有完整网络功能的Kali Linux
- 预装的安全工具:包括nmap、Metasploit、Nikto、SQLMap、Hydra等
- MCP集成:与Claude Desktop和其他MCP客户端无缝集成
- 安全隔离:所有工具都在容器化环境中运行
- 易于管理:容器生命周期管理的简单脚本
建筑
┌─────────────────────────────────────────────────────┐
│ HOST SYSTEM │
│ │
│ ┌─────────────────────────────────────────────┐ │
│ │ MCP Server (Node.js) │ │
│ │ - Runs on host │ │
│ │ - Accesses Docker socket │ │
│ │ - Manages Kali container │ │
│ │ - Implements MCP protocol │ │
│ └──────────────┬──────────────────────────────┘ │
│ │ Docker API │
│ ┌──────────────▼──────────────────────────────┐ │
│ │ Docker Engine │ │
│ │ ┌─────────────────────────────────────┐ │ │
│ │ │ Kali Container (Isolated) │ │ │
│ │ │ - Security tools │ │ │
│ │ │ - NO Docker socket access │ │ │
│ │ │ - Privileged for network tools │ │ │
│ │ │ - Host networking mode │ │ │
│ │ └─────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
要点:
- MCP服务器运行 在主机上,不在Docker中
- 只有主机MCP服务器具有Docker套接字访问权限
- 卡利集装箱是 孤立的 无法管理其他容器
- 命令流:Claude→ MCP服务器→ Docker API→ 卡利集装箱→ 安全工具
包括安全工具
- 网络扫描:nmap,马萨坎
- 网络扫描:nikto、sqlmap、dirb、gobuster、wpscan
- 剥削:元绘图框架
- 密码破解:约翰、九头蛇、大麻
- 无线:可空运
- 法医学:人行道,最重要的
- 逆向工程:雷达2
- 还有更多。..
先决条件
- Docker和Docker Compose(v1或v2)
docker-compose(v1)或docker compose(v2)-两者都支持
- Node.js(v18或更高版本)
- Linux主机(为了获得最佳兼容性)
- Root/sudo访问权限(用于特权容器)
安装
- 克隆或创建此存储库:
cd /workspace/mcp-kali-server
- 构建Docker镜像并安装依赖项:
./scripts/build.sh
这将:
- 构建Kali Linux Docker镜像
- 安装Node.js依赖项
- 编译TypeScript代码
用法
单独模式
直接启动MCP服务器:
npm start
使用Claude CLI
使用CLI添加MCP服务器:
# Add for current project only
claude mcp add --transport stdio kali -- node /workspace/mcp-kali-server/dist/index.js
# Or add for all projects (user-level)
claude mcp add --scope user --transport stdio kali -- node /workspace/mcp-kali-server/dist/index.js
验证是否已添加:
claude mcp list
使用克劳德代码: 服务器提供您可以直接调用的工具。通过以下方式检查状态:
/mcp
或者,您可以使用随附的 .mcp.json 用于项目级配置的文件(当位于此目录中时,Claude CLI会自动识别)。
使用克劳德桌面
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS或 %APPDATA%/Claude/claude_desktop_config.json 在Windows上):
{
"mcpServers": {
"kali": {
"command": "node",
"args": ["/workspace/mcp-kali-server/dist/index.js"]
}
}
}
重新启动Claude Desktop,Kali工具将可用。
可用工具
1.nmap_scan
使用Nmap执行网络扫描。
参数:
target(必需):IP地址、主机名或CIDR范围scan_type:快速、完整、ping、隐身、服务或操作系统additional_args:额外的nmap参数
例子:
Use nmap_scan to scan 192.168.1.1 with a quick scan
2.Nikto扫描
Web服务器漏洞扫描。
参数:
target(必填):目标URLport:目标端口tuning:调整选项
例子:
Use nikto_scan to scan http://example.com
3.sqlmap_scan
SQL注入测试。
参数:
url(必填):目标URLdata:POST数据level:测试级别(1-5)risk:风险等级(1-3)batch:自动应答提示(默认值:true)
例子:
Use sqlmap_scan to test http://example.com/page?id=1
4.dirb_scan
目录和文件暴力破解。
参数:
url(必填):目标URLwordlist:单词表路径
例子:
Use dirb_scan to scan http://example.com
5.gobuster_scan
快速目录/文件/DNS暴力破解。
参数:
url(必填):目标URL或域mode:dir、dns或vhostwordlist:单词表路径extensions:要搜索的文件扩展名
例子:
Use gobuster_scan in dir mode on http://example.com with php,html extensions
6.水力
密码暴力破解。
参数:
target(必填):目标IP或主机名service(必填):服务(ssh、ftp、http post表单等)username(必填):用户名password_list(必填):密码列表的路径additional_args:额外的九头蛇论点
例子:
Use hydra_bruteforce to test SSH on 192.168.1.1 with username admin
7.谁来帮忙
域WHOIS信息。
参数:
domain(必填):域名或IP
例子:
Use whois_lookup for example.com
8.dns_enum
DNS枚举。
参数:
domain(必填):要查询的域record_type:A、AAAA、MX、NS、TXT、SOA或任何
例子:
Use dns_enum to get all records for example.com
9.自定义命令
执行Kali容器中的任何命令。
参数:
command(必填):执行命令timeout:超时时间(毫秒)
例子:
Use custom_command to run "ping -c 4 8.8.8.8"
10.集装箱状态
检查Kali容器是否正在运行。
例子:
Use container_status to check the container
容器管理
启动容器:
./scripts/start-container.sh
停止容器:
./scripts/stop-container.sh
在容器中获取一个shell:
./scripts/shell.sh
查看容器日志:
docker-compose logs -f
项目结构
mcp-kali-server/
├── src/
│ ├── index.ts # Main MCP server
│ └── docker-manager.ts # Docker container management
├── scripts/
│ ├── build.sh # Build everything
│ ├── start-container.sh # Start container
│ ├── stop-container.sh # Stop container
│ └── shell.sh # Shell access
├── workspace/ # Shared workspace (created on first run)
├── Dockerfile # Kali Linux image
├── docker-compose.yml # Container configuration
├── package.json
├── tsconfig.json
└── README.md
工作区目录
这 workspace/ 目录被挂载到容器中 /workspace。使用此功能:
- 存储扫描结果
- 在主机和容器之间共享文件
- 保存单词表和脚本
重要安全注意事项
⚠️ 警告:此服务器提供对强大渗透测试工具的访问。
- 仅在授权目标上使用:未经授权的扫描是非法的
- 容器运行特权:具有广泛的系统访问权限
- 网络接入:容器使用主机网络模式
- 责任的使用:遵循负责任的披露做法
- 法律合规:测试前确保您有权限
授权使用案例
- 受控环境中的安全研究
- CTF(夺旗)比赛
- 授权渗透测试业务
- 自有系统的教育目的
- 防御性安全和测试您自己的基础设施
故障排除
容器无法启动
# Check Docker daemon
sudo systemctl status docker
# Check for port conflicts
docker ps -a
# Remove old container
docker rm -f mcp-kali
权限错误
# Ensure Docker socket has correct permissions
sudo chmod 666 /var/run/docker.sock
# Or run with sudo (not recommended for production)
sudo npm start
映像构建失败
# Clean Docker cache
docker system prune -a
# Rebuild
docker-compose build --no-cache
发展
代码更改后重建:
npm run build
监视模式(自动重建):
npm run dev
运行测试:
npm test
贡献
欢迎投稿!请确保:
- 代码遵循TypeScript的最佳实践
- 新工具包括适当的文档
- 考虑安全影响
- 在适用的情况下,包括测试
许可证
MIT许可证-有关详细信息,请参阅许可证文件
免责声明
此工具仅用于教育和授权测试目的。作者不对该软件造成的误用或损坏负责。在测试任何你不拥有的系统之前,一定要确保你有明确的权限。
