Kali MCP Pentest辅助平台
一个基于人工智能的渗透测试辅助平台,通过模型上下文协议(MCP)将Kali Linux安全工具与大型语言模型(LLM)相结合。该平台支持与200多种安全工具进行自然语言交互,为每个操作提供上下文感知、智能工具选择和详细解释。
特性
人工智能驱动的智能
- 自然语言指令:“扫描我的本地网络”,“在wlan0上启用监视模式”
- 情境意识:记住以前的命令和结果
- 智能工具选择:AI根据意图选择合适的工具
- 详细推理:解释为什么选择每个工具和选项
- 网络上下文检测:检测您的网络配置
技术能力
- 200+卡利工具:完整的渗透测试工具库
- 实时流媒体:带有进度跟踪的实时命令输出
- MCP架构:AI、工具和UI之间的清晰分离
- 本地LLM支持:与Ollama合作(注重隐私,无云)
- 手动覆盖:专家用户可以绕过人工智能,直接使用工具
接口
- 网络主题:具有矩阵效果的动画背景
- 实时执行:带定时器的实时输出流
- 命令历史记录:整个会话的完整对话记忆
- 停止控制:随时停止长时间运行的命令
- 阿森纳浏览器:搜索和筛选200+工具
🏗️ 建筑
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Web Browser │◄────►│ Flask Web Server │◄────►│ Ollama LLM │
│ (Port 5000) │ │ (Port 5000) │ │ (Port 11434) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ MCP Server │
│ (Port 3000) │
└──────────────────┘
│
▼
┌──────────────────┐
│ Kali Linux │
│ Security Tools │
└──────────────────┘组件
- MCP服务器 (Node.js)-端口3000
- 管理200多种Kali安全工具 - 以适当的权限执行命令 - 通过服务器发送事件(SSE)流式传输实时输出
- 网络服务器 (Python Flask)-端口5000
- 提供web界面 - 在UI和MCP之间路由请求 - 处理与Ollama的AI集成 - 管理对话历史和上下文
- AI引擎 (奥利马)-11434号港口
- 处理自然语言查询 - 提供智能工具选择 - 生成详细解释 - 维护对话上下文
📋 先决条件
- 操作系统:Kali Linux(推荐)或任何基于Debian的Linux
- Node.js:v18或更高版本
- python:3.8或更高
- 奥拉玛:具有兼容型号的最新版本
- 随机存取存储器:建议16GB+(用于LLM)
- 网络:用于扫描的本地网络访问
🚀 快速开始
1.克隆存储库
git clone https://github.com/ishanb9/kali-mcp-pentest.git
cd kali-mcp-pentest2.安装依赖项
# Install Node.js dependencies
npm install
# Install Python dependencies
pip3 install flask flask-cors requests netifaces --break-system-packages3.安装Olama和模型
# Install Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Pull a compatible model (choose one)
ollama pull mistral # Smaller, faster
ollama pull llama3.1:8b # Balanced
ollama pull qwen2.5:32b # Best quality
# Start Ollama service
ollama serve4.配置应用程序
# Edit web-server.py to set your Ollama configuration
nano web-server.py
# Update these lines:
OLLAMA_URL = "http://localhost:11434" # Change if Ollama is on different host
MODEL_NAME = "mistral" # Change to your model name5.配置Sudo(必填)
安全工具需要root访问权限。配置无密码sudo:
# Add your user to sudoers (replace 'kali' with your username)
echo "$USER ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/$USER
sudo chmod 440 /etc/sudoers.d/$USER
# Verify
sudo -n whoami # Should print 'root' without asking for password6.启动服务
选项A:手动(双端子)
终端1-MCP服务器:
sudo node mcp-server.js终端2-Web服务器:
python3 web-server.py选项B:启动脚本(后台)
chmod +x start-servers.sh
./start-servers.sh7.接入平台
打开浏览器并导航到:
http://localhost:5000或者从网络上的其他设备:
http://YOUR_KALI_IP:5000用法示例
自然语言指令
"show me my network interfaces"
→ AI selects: ifconfig
"scan my local network"
→ AI detects network (e.g., 192.168.11.0/24)
→ AI selects: nmap -sn 192.168.11.0/24
"enable monitor mode on wlan0"
→ AI selects: airmon-ng start wlan0
"scan wifi networks"
→ AI selects: airodump-ng wlan0mon背景跟进
User: "show my network interfaces"
AI: [runs ifconfig, shows eth0: 192.168.0.114]
User: "scan that network"
AI: [remembers 192.168.0.0/24 from ifconfig]
AI: [runs nmap -sn 192.168.0.0/24]
User: "the third host, scan it for open ports"
AI: [remembers 192.168.0.15 from previous scan]
AI: [runs nmap -sV 192.168.0.15]手动工具执行
- 点击 阿森纳 按钮
- 搜索工具(例如“nmap”)
- 点击工具自动填充
- 输入目标和选项
- 点击 执行
可用工具类别
- 信息收集 (33种工具):nmap、nikto、whois、dnsenum等。
- 无线攻击 (16种工具):aircrack-ng、wifite、reaver等。
- 网络应用 (20个工具):burpsuite、sqlmap、dirb等。
- 密码攻击 (18个工具):九头蛇、约翰、哈希猫等。
- 剥削 (15个工具):metasploit、牛肉xss等。
- 嗅探和欺骗 (15种工具):wireshark、ettercap等。
- 实施漏洞利用 (7种工具):weevely、mimikatz等。
- 法医学 (11种工具):尸检、波动性等。
- 还有100多个。..
配置
更改Olama模型
# In web-server.py
MODEL_NAME = "llama3.1:8b" # Change to your preferred model更改网络接口
平台会自动检测您的网络。要手动覆盖:
# In web-server.py, modify get_system_context() function自定义UI主题
/* In static/css/style.css */
:root {
--primary: #00d4ff; /* Change primary color */
--secondary: #0080ff; /* Change secondary color */
}故障排除
命令立即失败
症状:所有命令都以“终止”错误退出
解决方案:检查sudo配置
sudo -n whoami # Should work without password无法连接到Ollama
症状:“无法连接到Ollamahttp://..."
解决方案:
- 检查Ollama是否正在运行:
ps aux | grep ollama - 验证端口:
curl http://localhost:11434/api/tags - 更新
OLLAMA_URL在web-server.py
阿森纳没有工具
症状:阿森纳显示0工具
解决方案:检查MCP服务器是否正在运行
curl http://localhost:3000
# Should return 405 Method Not Allowed (server is running)浏览器显示“连接失败”
解决方案:检查两台服务器是否都在运行
sudo netstat -tlnp | grep -E '3000|5000'
# Should show both ports listening贡献
我们欢迎捐款!请看 贡献.md 作为指导方针。
快速贡献指南
- 分叉存储库
- 创建要素分支:
git checkout -b feature/amazing-feature - 进行更改
- 彻底测试
- 承诺:
git commit -m 'Add amazing feature' - 推:
git push origin feature/amazing-feature - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
第三方工具
该平台与Kali Linux安全工具对接。每个工具都有自己的许可证:
- Kali Linux工具:各种许可证(GPL、BSD等)
- 有关许可信息,请参阅各个工具文档
⚠️ 法律免责声明
此工具仅用于教育和授权测试
- 仅在您拥有或明确允许测试的网络/系统上使用
- 未经授权访问计算机系统是非法的
- 作者对滥用此软件不承担任何责任
- 用户有责任遵守所有适用法律
致谢
- Kali Linux团队 -用于全面的安全工具包
- 人类 -对于模型上下文协议规范
- Ollama团队 -用于本地LLM基础设施
- 开源社区 -对于所有令人惊叹的工具和库
路线图
- \[\]并行执行多个命令
- \[\]已保存的扫描配置文件和模板
- \[\]导出多种格式的报告(PDF、HTML、JSON)
- \[\]处理web枚举并利用上传功能
- \[\]自定义有效载荷创建或更改
- \[\]监听反向shell并从UI启动shell
- \[\]UI增强和定制
- \[\]协作团队功能
- \[\]处理Metasploit等工具的复杂性
