VulneraMCP
基于人工智能的漏洞赏金狩猎平台 -用于安全测试、漏洞研究和漏洞赏金狩猎的综合模型上下文协议(MCP)服务器。
  ](https://nodejs.org/)
VulneraMCP与行业标准安全工具(ZAP、Caido、Burp Suite)集成,为侦察、JavaScript分析、安全测试和漏洞检测提供AI驱动的自动化。所有发现都会自动存储在PostgreSQL中以供分析和报告。
🌟 特性
🔍 侦察工具
- 子域发现:Subfinder,Amass集成
- 实时主机检测:用于检查活动端点的HTTPx
- DNS解析:DNS记录枚举(A、AAAA、CNAME、MX、TXT)
- 完整的侦察工作流程:自动化多工具侦察
🔐 安全性测试
- XSS测试:自动跨站点脚本检测
- SQL注入:使用sqlmap回退进行SQLi漏洞测试
- IDOR检测:不安全的直接对象引用测试
- CSP分析:内容安全策略配置错误检测
- 绕过身份验证:身份验证绕过尝试测试
- CSRF测试:采用先进技术进行跨站点请求伪造检测
📜 JavaScript分析
- JS下载:下载并分析JavaScript文件
- 代码美化:格式化和美化缩小的JS
- 端点提取:在JS中查找API端点和URL
- 秘密侦查:启发式API密钥和令牌提取
- 全面分析:组合下载、美化和分析工作流程
🕷️ 整合
- 蜘蛛扫描:自动网络爬行
- 主动扫描:漏洞扫描
- 代理集成:通过ZAP代理处理请求
- 警报管理:检索和分析安全警报
- 上下文管理:定义扫描上下文
💾 数据库集成
- PostgreSQL:存储发现、测试结果和分数
- 瑞迪斯:工作内存和缓存(可选)
- 寻找管理:保存和检索错误发现
- 测试结果存储:使用统计数据跟踪所有安全测试
🖼️ 渲染工具
- 截图:使用Puppeteer截取网页截图
- DOM提取:提取并分析页面结构
- 表单提取:查找和分析web表单
- JavaScript执行:在页面上下文中执行JS
🤖 人工智能训练与模式匹配
- 训练数据导入:从HTB、PortSwigger实验室进口
- 模式匹配:从成功的漏洞中学习
- 撰写分析:从bug赏金报告中提取模式
- CSRF模式:预加载CSRF利用模式
📊 Web仪表板
- 实时统计:查看测试结果和发现
- 寻找管理:浏览和分析发现的漏洞
- 可视化分析:跟踪测试进度和成功率
🚀 快速开始
先决条件
- Node.js 20+和npm
- PostgreSQL 18+(或Docker)
- 瑞迪斯 (可选,用于缓存)
- 扎普 (可选,用于主动扫描)
- Caido (可选,用于流量分析)
安装
# Clone the repository
git clone https://github.com/telmonmaluleka/VulneraMCP.git
cd VulneraMCP
# Install dependencies
npm install
# Build the project
npm run build配置
- 复制环境模板:
cp mcp.json.example mcp.json- 配置环境变量:
- 设置PostgreSQL连接详细信息 - 配置Caido API令牌(如果使用) - 设置ZAP API URL(默认值:http://localhost:8081)
- 初始化数据库:
node init-db.js运行服务器
# Start the MCP server
npm start
# Start the dashboard (in another terminal)
npm run dashboard
# Access dashboard at http://localhost:3000Docker设置
# Start all services with Docker Compose
docker-compose up -d
# Or use the startup script
./start-services.sh📖 用法
通过MCP客户端(光标、克劳德桌面等)
服务器提供可通过任何MCP兼容客户端调用的MCP工具:
侦察:
recon.subfinder domain: example.com
recon.httpx input: example.com,subdomain.example.com
recon.full domain: example.com安全测试:
security.test_xss url: https://example.com/search?q=
security.test_sqli url: https://example.com/user?id=1
security.test_csrf url: https://example.com/profile/updateJavaScript分析:
js.analyze url: https://example.com/static/app.js
js.extract_secrets source: ZAP集成:
zap.start_spider url: https://example.com
zap.start_active_scan url: https://example.com
zap.get_alerts baseURL: https://example.comCaido集成:
caido.query httpql: "req.host.cont:\"example.com\" AND req.path.cont:\"api\""
caido.agent_discover_endpoints host: example.com利率限制和最佳实践
在测试漏洞赏金计划时,始终遵守费率限制:
// Example: 2 requests/second limit
const rateLimiter = require('./hunting/rate-limiter');
const limiter = rateLimiter(2); // 2 req/sec
await limiter();
// Make your request🏗️ 项目结构
VulneraMCP/
├── src/
│ ├── integrations/ # External service integrations
│ │ ├── zap.ts # OWASP ZAP integration
│ │ ├── caido.ts # Caido integration
│ │ ├── postgres.ts # PostgreSQL database
│ │ └── redis.ts # Redis caching
│ ├── tools/ # MCP tools (recon, security, etc.)
│ ├── mcp/ # MCP server implementation
│ └── index.ts # Main entry point
├── public/ # Dashboard frontend
├── hunting/ # Bug bounty hunting scripts
├── dist/ # Compiled TypeScript output
└── dashboard-server.js # Dashboard API server🔧 配置
MCP服务器配置(mcp.json)
{
"name": "vulneramcp",
"command": "node",
"args": ["dist/index.js"],
"env": {
"POSTGRES_HOST": "localhost",
"POSTGRES_PORT": "5433",
"POSTGRES_USER": "postgres",
"POSTGRES_DB": "bugbounty"
}
}环境变量
# PostgreSQL
POSTGRES_HOST=localhost
POSTGRES_PORT=5433
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your_password
POSTGRES_DB=bugbounty
# ZAP
ZAP_API_URL=http://localhost:8081
# Caido
CAIDO_API_TOKEN=your_token
# Redis (optional)
REDIS_HOST=localhost
REDIS_PORT=6379📊 仪表盘
web仪表板提供:
- 统计:测试结果、成功率、漏洞分布
- 研究结果:发现漏洞的详细视图
- 搜索和筛选:按目标、类型、严重程度查找具体发现
访问地址: http://localhost:3000
🤝 贡献
欢迎投稿!请随时提交拉取请求。
- 复刻仓库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
📝 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
⚠️ 免责声明
此工具仅用于授权的安全测试。始终:
- 测试前获得适当授权
- 遵守费率限制和服务条款
- 遵循负责任的披露做法
- 切勿在您不拥有或没有明确测试权限的系统上使用
🙏 致谢
- ZAP用于漏洞扫描
- bug赏金社区提供灵感和反馈
📚 文档
🐛 问题
发现bug了吗?有功能请求吗?请打开一个问题 .
📧 联系
- github: @telmonmaluleka
- 问题:
