使用说明
Kali Linux MCP服务器
一个全面的模型上下文协议(MCP)服务器,提供对Kali Linux渗透测试和安全工具的编程访问。该项目使人工智能助手和自动化工具能够通过标准化的JSON-RPC接口与35多种安全工具进行交互。
概述
此MCP服务器在基于Kali Linux的Docker容器中运行,并通过模型上下文协议公开安全测试工具。它旨在与Claude Desktop等人工智能助手配合使用,允许与渗透测试工具进行自然语言交互。
特性
包括35+安全工具
网络发现和扫描
- nmap(多种扫描类型)
- masscan
- zmap
- 未知
- arp扫描
Web应用程序测试
- 无
- dirb
- 高斯特
- wpscan
- whatweb
- wafw00f
- sqlmap
SSL/TLS测试
- sslscan
- testssl
DNS枚举
- dnsrecon
- dnsenum
- 激烈的
SMB/NNetBIOS测试
- enum4linux
- smbclient
- nbtscan
密码攻击
- 九头蛇
- 开膛手约翰
- 哈希猫
- cewl
无线安全
- 空调
- 威菲特
信息收集
- 背心
- 侦察
法医学
- 人行道
- 首要的
- 字符串
隐写术
- 斯特吉德
- Exif工具
系统安全性
- lynis
- chkrootkit
通用应用程序
- execute_命令
- 网络信息
- port_scan
- 漏洞扫描
建筑
┌──────────────────────────┐
│ AI Assistant │
│ (Claude, Kiro, Cline) │
└───────────┬──────────────┘
│
│ MCP Protocol (JSON-RPC via docker exec)
│
┌───────────▼──────────────┐
│ Docker Container │
│ (Kali Linux) │
│ │
│ ┌────────────────────┐ │
│ │ mcp_server.py │ │
│ │ (MCP Server) │ │
│ └─────────┬──────────┘ │
│ │ │
│ ┌─────────▼──────────┐ │
│ │ Security Tools │ │
│ │ (nmap, nikto, │ │
│ │ sqlmap, etc.) │ │
│ └────────────────────┘ │
└──────────────────────────┘
先决条件
- Docker和Docker Compose
- 26GB+可用磁盘空间 对于Docker镜像
- 建议使用4GB+RAM
- 稳定的互联网连接 (构建需要大量时间,失败意味着从头开始重建)
- Linux主机(用于完整功能)或带Docker桌面的Windows/macOS
⚠️ 小心:Docker镜像大约是 26GB 由于全面的Kali工具包,其尺寸较小。如果构建失败,您需要从头开始重建。确保您拥有:
- 在整个构建过程中稳定的互联网连接
- 足够的磁盘空间
- 初始构建时间(60-180分钟,取决于连接速度)
安装
1.克隆或下载
git clone https://github.com/Nandha-06/Kali-mcp.git
cd kali-mcp-cli
2.构建并启动容器
docker-compose up -d --build
这将:
- 拉取Kali Linux滚动映像
- 安装全面的安全工具包
- 设置MCP服务器
- 以分离模式启动容器
配置
MCP客户端配置
此服务器适用于任何兼容MCP的客户端:
克劳德桌面 -添加到MCP设置
启用开发人员选项,然后单击“编辑配置”。
(%APPDATA%\Claude\claude_desktop_config.json 在Windows或 ~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"kali-security": {
"command": "docker",
"args": [
"exec",
"-i",
"kali-mcp-server",
"python3",
"/app/mcp_server.py",
"--stdio"
]
}
}
}
克莱恩,鲁,LM工作室 -使用上述相同的命令结构遵循各自的MCP配置文档。
用法
一旦配置了任何兼容MCP的客户端(Claude Desktop、Kiro、Cline、Roo、LM Studio等),您就可以使用自然语言与安全工具进行交互:
"Scan 192.168.1.1 with nmap"
"Check what web technologies are running on example.com"
"Enumerate DNS records for example.com"
"Run a vulnerability scan on 10.0.0.5"
"Use gobuster to find hidden directories on https://example.com"
"Check SSL/TLS configuration of example.com"
MCP服务器处理执行Kali工具的所有复杂性,并将格式化结果直接返回给您的AI助手。
可用工具
网络扫描
| 工具 | 参数 | 说明 |
|---|---|---|
nmap_scan |
target,scan_type | 网络扫描(基本、同步、版本、操作系统、攻击性、隐身、udp、vuln) |
masscan_scan |
目标,端口 | 快速端口扫描器 |
zmap_scan |
目标,端口 | 互联网范围的扫描仪 |
netdiscover |
接口 | 网络发现 |
arp_scan |
target | 基于ARP的主机发现 |
Web应用程序测试
| 工具 | 参数 | 说明 |
|---|---|---|
nikto_scan |
target | Web服务器扫描程序 |
dirb_scan |
url,单词表 | 目录暴力破解 |
gobuster_scan |
url,单词表 | 目录/文件枚举 |
wpscan |
url | WordPress安全扫描程序 |
whatweb |
target | Web技术标识符 |
wafw00f |
url | Web应用程序防火墙检测 |
sqlmap_scan |
url,additional_rams | SQL注入测试 |
SSL/TLS测试
| 工具 | 参数 | 说明 |
|---|---|---|
sslscan |
target | SSL/TLS密码套件扫描程序 |
testssl |
target | 全面的SSL/TLS测试 |
DNS枚举
| 工具 | 参数 | 说明 |
|---|---|---|
dnsrecon |
域名 | DNS侦察 |
dnsenum |
域 | DNS枚举 |
fierce |
域名 | DNS暴力破解 |
SMB/NNetBIOS测试
| 工具 | 参数 | 说明 |
|---|---|---|
enum4linux |
target | SMB枚举工具 |
smbclient |
target | 用于上市股票的SMB/CIFS客户端 |
nbtscan |
target | NetBIOS名称扫描器 |
密码攻击
| 工具 | 参数 | 说明 |
|---|---|---|
hydra_attack |
目标、服务、用户名、密码列表 | 网络登录破解器 |
john_crack |
hash_file | 密码哈希破解器 |
hashcat_crack |
hash,单词表 | 高级密码恢复 |
cewl |
url | 自定义单词表生成器 |
无线安全
| 工具 | 参数 | 说明 |
|---|---|---|
aircrack_ng |
capture_file | WEP/WPA/WPA2密钥破解器 |
wifite |
接口 | 自动无线攻击工具 |
信息收集
| 工具 | 参数 | 说明 |
|---|---|---|
theharvester |
域、源 | 电子邮件/子域/主机收集 |
recon_ng |
领域 | 侦察框架 |
法医学
| 工具 | 参数 | 说明 |
|---|---|---|
binwalk |
文件 | 固件分析和提取 |
foremost |
文件 | 文件雕刻和恢复 |
strings |
file | 从文件中提取可打印字符串 |
隐写术
| 工具 | 参数 | 说明 |
|---|---|---|
steghide |
文件,密码 | 从文件中提取隐藏数据 |
exiftool |
file | 读取/写入文件中的元数据 |
系统安全性
| 工具 | 参数 | 说明 |
|---|---|---|
lynis |
- | 安全审计工具 |
chkrootkit |
- | Rootkit检测 |
通用应用程序
| 工具 | 参数 | 说明 |
|---|---|---|
execute_command |
command | 执行任意shell命令 |
network_info |
- | 显示网络接口信息 |
port_scan |
目标,端口 | 使用nmap进行快速端口扫描 |
vulnerability_scan |
target | 针对目标运行漏洞脚本 |
安全考虑
⚠️ 重要:此工具设计用于:
- 授权渗透测试
- 受控环境中的安全研究
- 教育目的
- 您拥有或明确允许测试的系统
未经授权对您不拥有的系统使用这些工具是违法的。
最佳实践
- 始终获得书面授权 在测试任何系统之前
- 在隔离网络中使用 用于学习和测试
- 保存日志 所有测试活动
- 遵守费率限制 并避免DoS条件
- 遵循负责任的披露 对于发现的任何漏洞
故障排除
容器无法启动
# Check logs
docker logs kali-mcp-server
# Rebuild from scratch (WARNING: 26GB download, ensure stable internet)
docker-compose down -v
docker-compose up -d --build
构建失败? 如果Docker构建中途失败,你需要重新开始。重建前确保网络稳定。
工具不工作
某些工具需要特定权限:
# Ensure privileged mode is enabled in docker-compose.yml
privileged: true
cap_add:
- NET_ADMIN
- SYS_ADMIN
权限错误
# Fix permissions on shared volumes
chmod -R 755 ./shared ./wordlists
MCP连接问题
# Check if container is running
docker ps | grep kali-mcp
# Restart the container
docker-compose restart
# View container logs
docker logs kali-mcp-server -f
客户端未连接?
- 重新启动MCP客户端(Claude Desktop、Kiro等)
- 验证容器是否正在运行
docker ps - 检查MCP配置文件语法
- 确保Docker正在运行且可访问
发展
添加新工具
编辑 mcp_server.py 并添加到 self.tools 字典:
'new_tool': {
'func': self.new_tool_function,
'params': ['param1', 'param2']
}
然后执行以下功能:
async def new_tool_function(self, param1: str, param2: str) -> Dict[str, Any]:
return await self.execute_command(f'tool-command {param1} {param2}')
文件结构
kali-mcp-cli/
├── mcp_server.py # Main MCP server implementation
├── client.py # Python client for testing
├── Dockerfile # Container definition
├── docker-compose.yml # Docker Compose configuration
├── startup.sh # Container startup script
├── shared/ # Shared files volume
└── wordlists/ # Custom wordlists volume
演出
- Docker镜像大小:~26GB(包括全面的Kali工具包)
- 建造时间:60-180分钟(仅限第一次,取决于网速)
- 内存使用:<512MB,具体取决于活动工具
- 启动时间:容器初始化时间为30-60秒
备注:在未来的版本中,将优化大图像大小,以减少磁盘空间需求。
局限性
- 某些无线工具需要物理硬件访问
- 长时间运行的扫描可能会超时(默认值:300秒)
- 网络隔离可能会限制某些扫描功能
贡献
欢迎投稿!需要改进的地方:
- 其他工具集成
- 更好的错误处理
- 性能优化
- 文档改进
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
此项目仅用于教育和授权的安全测试目的。用户全权负责遵守所有适用的法律法规。
支持
对于问题和疑问:
- 检查故障排除部分
- 查看Docker和Kali Linux日志
- 确保安全测试的适当授权
- 验证网络连接和权限
免责声明:此工具仅用于授权的安全测试。在测试任何系统或网络之前,始终获得适当的授权。
