BugBounty MCP 服务器是一款全面的模型上下文协议(MCP)服务器,专为漏洞赏金狩猎和 Web 应用程序渗透测试而设计。借助该工具,你可以通过与大语言模型(LLM)进行自然语言对话,开展广泛的安全测试工作。
BugBounty MCP 服务器集成了模型上下文协议(MCP),能够与各种大语言模型应用程序无缝集成,实现自然语言渗透测试。以下是启动 MCP 服务器的不同方式:
使用 Docker 是最便捷的启动方式,它包含了所有依赖项和安全工具。
# 使用 Docker Compose 启动服务器
docker-compose up -d
# 实时查看日志
docker-compose logs -f bugbounty-mcp
# 停止服务器
docker-compose down
使用提供的 run.sh 脚本可轻松在本地启动服务器:
# 进入项目目录
cd bugbounty-mcp-server
# 启动 MCP 服务器
./run.sh serve
该脚本会自动激活虚拟环境,加载 .env 文件中的环境变量,显示服务器状态和可用工具,并启动 MCP 服务器以实现与大语言模型的集成。
# 列出所有可用命令
./run.sh --help
# 启动 MCP 服务器
./run.sh serve
# 列出所有 92 种以上可用工具
./run.sh list-tools
# 验证配置和工具可用性
./run.sh validate-config
# 执行快速安全扫描
./run.sh quick-scan --target example.com
# 下载安全字典
./run.sh download-wordlists --type subdomains
# 导出配置模板
./run.sh export-config --format yaml
bugbounty-mcp export-config --format yaml -o config.yaml
使用 Docker 是开始使用该工具的最简单方法,它包含了所有依赖项和安全工具。
git clone https://github.com/gokulapap/bugbounty-mcp-server.git
cd bugbounty-mcp-server
# 复制环境模板
cp env.example .env
# 使用你的 API 密钥编辑 .env 文件
nano .env
# 构建并启动容器
docker-compose up --build -d
# 查看日志
docker-compose logs -f bugbounty-mcp
# 停止容器
docker-compose down
# 构建 Docker 镜像
docker build -t bugbounty-mcp:latest .
# 运行容器
docker run -d \
--name bugbounty-mcp-server \
-v $(pwd)/output:/app/output \
-v $(pwd)/data:/app/data \
-v $(pwd)/.env:/app/.env:ro \
bugbounty-mcp:latest
# 查看日志
docker logs -f bugbounty-mcp-server
# 进入容器 shell 进行调试
docker exec -it bugbounty-mcp-server /bin/bash
# 停止并移除容器
docker stop bugbounty-mcp-server
docker rm bugbounty-mcp-server
你可以直接将 API 密钥和配置传递给 Docker:
docker run -d \
--name bugbounty-mcp-server \
-e SHODAN_API_KEY="your_shodan_key" \
-e VIRUSTOTAL_API_KEY="your_vt_key" \
-e GITHUB_TOKEN="your_github_token" \
-e LOG_LEVEL="INFO" \
-v $(pwd)/output:/app/output \
bugbounty-mcp:latest
git clone https://github.com/gokulapap/bugbounty-mcp-server.git
cd bugbounty-mcp-server
# 使运行脚本可执行
chmod +x run.sh
# 自动安装所有内容
./install.sh
或者手动安装: 3. 创建虚拟环境:
python3 -m venv venv
source venv/bin/activate # 在 Windows 上:venv\Scripts\activate
pip install -r requirements.txt
pip install -e .
# 在 Ubuntu/Debian 上
sudo apt update
sudo apt install nmap masscan nikto dirb sqlmap
# 在 macOS 上使用 Homebrew
brew install nmap masscan nikto dirb sqlmap
# 安装基于 Go 的工具
go install github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install github.com/projectdiscovery/httpx/cmd/httpx@latest
go install github.com/OJ/gobuster/v3@latest
go install github.com/ffuf/ffuf@latest
# 复制环境模板
cp env.example .env
# 使用你的 API 密钥编辑 .env 文件
nano .env
# 下载所有字典(推荐)
./run.sh download-wordlists
# 或者下载特定类型的字典
./run.sh download-wordlists --type subdomains
./run.sh download-wordlists --type directories
./run.sh download-wordlists --type parameters
./run.sh download-wordlists --type files
# 查看可用选项
./run.sh download-wordlists --help
./run.sh validate-config
# 启动 MCP 服务器
./run.sh serve
# 列出所有可用工具
./run.sh list-tools
# 验证配置和工具可用性
./run.sh validate-config
# 执行快速安全扫描
./run.sh quick-scan --target example.com
import asyncio
from mcp.client.session import ClientSession
from mcp.client.stdio import stdio_client
async def use_bugbounty_mcp():
async with stdio_client(["./run.sh", "serve"]) as (read, write):
async with ClientSession(read, write) as session:
# 初始化会话
await session.initialize()
# 列出可用工具
tools = await session.list_tools()
print(f"可用工具数量: {len(tools)}")
# 调用工具
result = await session.call_tool(
"subdomain_enumeration",
{"domain": "example.com", "passive_only": True}
)
print(result)
# 运行客户端
asyncio.run(use_bugbounty_mcp())
BugBounty MCP 服务器实现了模型上下文协议(MCP),可与各种大语言模型应用程序无缝集成,实现自然语言渗透测试。
将以下内容添加到你的 Claude Desktop 配置文件中:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json对于 Docker(推荐):
{
"mcpServers": {
"bugbounty-mcp": {
"command": "docker",
"args": ["exec", "-i", "bugbounty-mcp-server", "bugbounty-mcp", "serve"],
"env": {
"DOCKER_HOST": "unix:///var/run/docker.sock"
}
}
}
}
对于原生安装:
{
"mcpServers": {
"bugbounty-mcp": {
"command": "/Users/your-username/Documents/bugbounty-mcp-server/run.sh",
"args": ["serve"],
"env": {
"PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
}
}
}
}
要在 VS Code 中使用 BugBounty MCP 服务器并集成 GitHub Copilot:
前提条件:
配置步骤:
# 启动容器并自动启动 MCP 服务器
docker-compose up --build -d
# 验证服务器在端口 3001 上是否可访问
nc -z localhost 3001 && echo "MCP 服务器已就绪"
然后,打开 VS Code 设置(Cmd/Ctrl + ,)并添加以下内容:
{
"mcp.servers": {
"bugbounty-docker": {
"command": "nc",
"args": ["localhost", "3001"],
"description": "在 Docker 中运行的 BugBounty MCP 服务器",
"env": {
"LOG_LEVEL": "info"
}
}
}
}
或者使用直接的 Docker exec 进行替代配置:
{
"mcp.servers": {
"bugbounty-docker": {
"command": "docker",
"args": ["exec", "-i", "bugbounty-mcp-server", "bugbounty-mcp", "serve"],
"description": "通过 Docker exec 运行的 BugBounty MCP 服务器",
"env": {
"DOCKER_HOST": "unix:///var/run/docker.sock"
}
}
}
}
{
"mcp.servers": {
"bugbounty-native": {
"command": "/Users/your-username/Documents/bugbounty-mcp-server/run.sh",
"args": ["serve"],
"description": "原生安装的 BugBounty MCP 服务器",
"env": {
"PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
}
}
}
}
# 检查容器是否正在运行且健康
docker-compose ps
# 测试网络连接
nc -z localhost 3001 || echo "端口 3001 不可访问"
# 检查容器日志
docker-compose logs -f bugbounty-mcp
# 验证 MCP 服务器响应
echo '{"jsonrpc": "2.0", "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0"}}, "id": 1}' | nc localhost 3001
import asyncio
from mcp.client.session import ClientSession
from mcp.client.stdio import stdio_client
async def use_bugbounty_mcp():
async with stdio_client(["./run.sh", "serve"]) as (read, write):
async with ClientSession(read, write) as session:
# 初始化会话
await session.initialize()
# 列出可用工具
tools = await session.list_tools()
print(f"可用工具数量: {len(tools)}")
# 调用工具
result = await session.call_tool(
"subdomain_enumeration",
{"domain": "example.com", "passive_only": True}
)
print(result)
# 运行客户端
asyncio.run(use_bugbounty_mcp())
启动服务器并进行测试:
# 终端 1:启动 MCP 服务器
./run.sh serve
# 终端 2:使用任何 MCP 客户端进行测试
# 服务器将在标准输入输出上监听 MCP 协议消息
大语言模型对话示例:
用户: "请对 example.com 进行全面的安全评估"
大语言模型: 我将使用 BugBounty MCP 工具帮助你进行全面的安全评估。让我先收集目标的相关信息。
[大语言模型将自动使用以下工具:]
- 子域名枚举以发现子域名
- 端口扫描以识别开放服务
- 漏洞扫描以检测安全问题
- Web 目录扫描以发现隐藏文件
- 以及根据需要使用 90 多种其他安全工具
如果服务器在 Claude Desktop 中无法启动: 对于 Docker 部署:
docker ps | grep bugbounty-mcp
# 应该显示正在运行的容器
docker logs bugbounty-mcp-server
docker exec bugbounty-mcp-server bugbounty-mcp --help
# 应该显示帮助输出
ls -la /var/run/docker.sock
# 应该可以访问
对于原生部署:
# 获取绝对路径
pwd
# 在 claude_desktop_config.json 中使用此完整路径
chmod +x run.sh
./run.sh serve
# 应该显示 "BugBounty MCP 服务器已成功启动"
~/Library/Logs/Claude/%LOCALAPPDATA%\Claude\logs\# 构建包含调试工具的开发镜像
docker build -t bugbounty-mcp:dev --target builder .
# 使用卷挂载进行实时开发
docker run -it --rm \
-v $(pwd):/app \
-v $(pwd)/output:/app/output \
bugbounty-mcp:dev bash
# 运行特定工具
docker exec bugbounty-mcp nmap --version
docker exec bugbounty-mcp nuclei -version
docker exec bugbounty-mcp subfinder -version
# 使用增加的资源运行
docker run -d \
--name bugbounty-mcp \
--cpus="2.0" \
--memory="4g" \
-v $(pwd)/output:/app/output \
bugbounty-mcp:latest
# 监控资源使用情况
docker stats bugbounty-mcp
# 创建数据卷备份
docker run --rm \
-v bugbounty-data:/data \
-v $(pwd)/backup:/backup \
alpine tar czf /backup/data-backup-$(date +%Y%m%d).tar.gz -C /data .
# 恢复数据卷
docker run --rm \
-v bugbounty-data:/data \
-v $(pwd)/backup:/backup \
alpine tar xzf /backup/data-backup-XXXXXXXX.tar.gz -C /data
为了更方便地管理 Docker,使用包含的 docker.sh 脚本:
# 使脚本可执行(仅第一次需要)
chmod +x docker.sh
# 一键构建并运行
./docker.sh build && ./docker.sh run --api-keys
# 快速操作
./docker.sh logs --follow # 查看实时日志
./docker.sh shell # 进入容器 shell
./docker.sh validate # 验证设置
./docker.sh restart --force # 强制重启
./docker.sh clean --force # 清理所有内容
# 数据管理
./docker.sh backup # 备份容器数据
./docker.sh restore backup/file.tar.gz # 恢复数据
# 开发
./docker.sh build --dev # 构建开发镜像
./docker.sh run --dev # 运行并挂载源代码
# bugbounty_mcp_config.yaml
api_keys:
shodan: "your_shodan_api_key"
virustotal: "your_virustotal_api_key"
github: "your_github_token"
tools:
nmap_path: "nmap"
nuclei_path: "nuclei"
max_concurrent_scans: 10
default_timeout: 30
scanning:
default_ports: ["21", "22", "23", "25", "53", "80", "443", "8080", "8443"]
max_crawl_depth: 3
max_pages_to_crawl: 100
output:
output_dir: "output"
report_format: "json"
create_html_report: true
safety:
safe_mode: true
allowed_targets: ["*.example.com", "192.168.1.0/24"]
blocked_targets: ["*.gov", "*.mil"]
与大语言模型集成后,你可以通过对话进行安全测试:
"使用被动和主动方法对 example.com 进行子域名枚举"
"检查 example.com 是否使用 CDN 并尝试找到源服务器"
"在 GitHub 上搜索提及 example.com 且可能包含敏感信息的仓库"
"测试 https://example.com/login 登录表单的 SQL 注入漏洞"
"扫描 https://example.com 所有输入参数的 XSS 漏洞"
"检查 https://example.com 是否存在 CORS 配置错误"
"对 example.com 进行全面的安全评估,包括:
- 子域名发现
- 端口扫描
- Web 应用程序测试
- SSL/TLS 分析
- 生成详细报告"
"调查 Example Corp 公司:
- 员工信息
- 技术栈
- 近期数据泄露情况
- 社交媒体存在情况"
| 变量 | 描述 | 是否必需 |
|---|---|---|
SHODAN_API_KEY |
用于设备发现的 Shodan API 密钥 | 否 |
VIRUSTOTAL_API_KEY |
用于威胁情报的 VirusTotal API 密钥 | 否 |
CENSYS_API_ID |
用于证书/主机搜索的 Censys API ID | 否 |
CENSYS_API_SECRET |
Censys API 密钥 | 否 |
GITHUB_TOKEN |
用于仓库搜索的 GitHub 令牌 | 否 |
SECURITYTRAILS_API_KEY |
用于 DNS 历史记录的 SecurityTrails API 密钥 | 否 |
HUNTER_IO_API_KEY |
用于邮箱发现的 Hunter.io API 密钥 | 否 |
BINARYEDGE_API_KEY |
用于互联网扫描的 BinaryEdge API 密钥 | 否 |
服务器会自动检测系统路径中的工具,但你也可以指定自定义路径:
tools:
nmap_path: "/usr/local/bin/nmap"
masscan_path: "/opt/masscan/bin/masscan"
nuclei_path: "/home/user/go/bin/nuclei"
# ... 其他工具
safety:
safe_mode: true # 启用安全检查
allowed_targets: # 允许的目标白名单
- "*.example.com"
- "192.168.1.0/24"
- "10.0.0.0/8"
blocked_targets: # 禁止的目标黑名单
- "*.gov"
- "*.mil"
- "*.edu"
rate_limit_enabled: true # 启用速率限制
requests_per_second: 10.0 # 请求速率限制
bugbounty-mcp-server/
├── bugbounty_mcp_server/
│ ├── __init__.py
│ ├── server.py # 主 MCP 服务器
│ ├── config.py # 配置管理
│ ├── utils.py # 实用函数
│ ├── cli.py # 命令行界面
│ └── tools/
│ ├── __init__.py
│ ├── base.py # 基础工具类
│ ├── recon.py # 信息侦察工具
│ ├── scanning.py # 扫描工具
│ ├── vulnerability.py # 漏洞评估工具
│ ├── webapp.py # Web 应用程序工具
│ ├── network.py # 网络安全工具
│ ├── osint.py # 开源情报收集工具
│ ├── exploitation.py # 漏洞利用工具
│ └── reporting.py # 报告工具
├── wordlists/ # 用于扫描的字典
├── output/ # 扫描结果和报告
├── data/ # 持久化数据存储
├── pyproject.toml # 项目配置
├── README.md # 本文件
├── LICENSE # MIT 许可证
└── SECURITY.md # 安全指南
本工具仅用于授权的安全测试。用户必须:
用户独自负责确保其使用本工具符合适用的法律法规。Gokul(apgokul008@gmail.com)不对本软件的任何滥用或损害负责。
我们欢迎贡献!请查看我们的 贡献指南 了解详细信息。
git clone https://github.com/gokulapap/bugbounty-mcp-server.git
cd bugbounty-mcp-server
pip install -e ".[dev]"
pre-commit install
pytest
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
run.sh 脚本文档⚠️ 重要提示
本工具仅用于授权的安全测试。未经授权对未拥有或未获得明确许可的系统进行测试是非法和不道德的行为。