返回市场
渗透测试MCP服务器

渗透测试MCP服务器

作者:LayeSec0069 星标更新:2025-10-12

项目介绍

Pentest MCP Server

Python 3.10+ License: MIT Tests

一个生产就绪的模型上下文协议(MCP)服务器,使AI代理能够通过SSH在任何Linux发行版上执行自主渗透测试。该服务器使用持久tmux会话、智能触发器、自动重连和全面的资源管理构建。

🚀 关键差异点:与运行独立命令的其他MCP服务器不同,此服务器提供基于tmux的持久会话管理,支持复杂的交互工作流和长时间运行的操作。

📋 目录

👤 连接

🎥 视频教程: 观看完整的YouTube教程

LinkedIn: Abdallah Ndiaye

🖼️ 屏幕截图

截图1 截图2 截图3 截图4

🎯 核心能力

此MCP服务器通过SSH为AI代理提供了对任何Linux发行版的持久会话控制,支持:

  • 🌍 普遍兼容性:适用于Kali Linux、Parrot Security、BackBox以及任何Linux发行版
  • 🔓 零工具限制:运行目标系统上安装的任何工具——无限制
  • 🔄 持久会话:基于tmux的会话,即使断开连接或崩溃也能存活
  • 🤖 智能自动化:根据输出模式和触发器暂停/恢复AI
  • ⚡ 自动重连:具有指数退避的自动SSH重连
  • 📊 资源管理:对并发重型操作的智能限制
  • 🎯 交互式工具:完全支持msfconsole、mysql、反向shell和复杂的工作流程
  • 🛡️ 会话恢复:在网络问题或崩溃后恢复所有会话

🎯 主要功能

我们的核心优势:

  • 🔄 会话持久性:会话在断开连接或崩溃后仍然存活
  • 🎯 交互式工具支持:处理msfconsole、反向shell、复杂的工作流程
  • 🤖 智能自动化:带有智能触发器的AI暂停/恢复
  • ⚡ 自动重连:从网络问题中自动恢复
  • 📊 资源管理:智能限制和系统监控
  • 🌍 普遍兼容性:适用于任何Linux发行版

💡 优势: 我们的服务器提供持久会话管理,支持复杂的多步骤渗透测试工作流程,并且完全支持交互式工具。

🎯 现实影响

这实现了什么:

  • 复杂的工作流程:跨越数小时的多步骤渗透测试操作
  • 交互式工具:完全的Metasploit自动化、反向shell管理
  • 会话持久性:长时间扫描,即使遇到网络问题也能继续
  • 资源管理:对并发操作的智能限制
  • 普遍部署:适用于任何Linux发行版

用例:

  • 红队行动:自动侦察和利用
  • CTF挑战:复杂的多步骤问题解决
  • 安全研究:长时间的漏洞评估
  • AI辅助渗透测试:重复任务的智能自动化

🏗️ 架构

┌─────────────────────┐
│   AI代理            │
│   (Claude/ChatGPT)  │
└──────────┬──────────┘
           │ MCP协议
           ▼
┌─────────────────────┐
│   MCP服务器         │
│   (Python)          │
│                     │
│  ┌───────────────┐  │
│  │会话管理器     │  │
│  │自动重连       │  │
│  │资源管理       │  │
│  └───────────────┘  │
└──────────┬──────────┘
           │ SSH + PTY
           ▼
┌─────────────────────┐
│   渗透测试系统      │
│   (Kali/Parrot等)   │
│                     │
│  ┌───────────────┐  │
│  │    tmux       │  │
│  │  ┌─────────┐  │  │
│  │  │会话1    │  │  │
│  │  │会话2    │  │  │
│  │  │会话N    │  │  │
│  │  └─────────┘  │  │
│  └───────────────┘  │
└─────────────────────┘

🚀 快速开始

安装(5分钟)

# 1. 克隆仓库
git clone https://github.com/LayeSec006/pentest-mcp-server.git
cd pentest-mcp-server

# 2. 安装包
pip install -e .

# 3. 配置
cp .env.example .env
# 编辑.env文件以包含您的渗透测试操作系统详细信息

# 4. 在目标系统上安装tmux
ssh kali@<TARGET_HOST>

# 对于Debian/Ubuntu/Kali/Parrot:
sudo apt update && sudo apt install tmux

# 对于Arch/BlackArch:
sudo pacman -S tmux

# 对于RHEL/CentOS/Fedora:
sudo yum install tmux
# 或对于更新版本:
sudo dnf install tmux

# 对于Alpine Linux:
sudo apk add tmux

exit

# 5. 测试
python -m pytest tests/ -v

配置

创建一个.env文件,包含您的目标系统详细信息:

# SSH连接
TARGET_HOST=192.168.1.100
TARGET_PORT=22
TARGET_USER=kali
TARGET_PASSWORD=your_password
# 或使用SSH密钥代替
# TARGET_SSH_KEY=/path/to/private/key

# 资源限制
MAX_SESSIONS=20
MAX_HEAVY_TASKS=3

# 监控
POLL_INTERVAL=1.0
DEFAULT_TIMEOUT=300

🤖 AI平台集成

Claude桌面集成

添加到您的Claude桌面配置中:

Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "pentest-mcp": {
      "command": "python",
      "args": ["-m", "pentest_mcp_server"],
      "env": {
        "TARGET_HOST": "192.168.1.100",
        "TARGET_USER": "kali", 
        "TARGET_PASSWORD": "your_password"
      }
    }
  }
}

Windsurf集成

添加到您的Windsurf设置中:

{
  "mcpServers": {
    "pentest-mcp": {
      "command": "python",
      "args": ["-m", "pentest_mcp_server"],
     
      "env": {
        "TARGET_HOST": "192.168.1.100",
        "TARGET_USER": "kali",
        "TARGET_PASSWORD": "your_password"
      }
    }
  }
}

Cursor集成

添加到您的Cursor设置中:

{
  "mcpServers": {
    "pentest-mcp": {
      "command": "python",
      "args": ["-m", "pentest_mcp_server"],
      "env": {
        "TARGET_HOST": "192.168.1.100",
        "TARGET_USER": "kali",
        "TARGET_PASSWORD": "your_password"
      }
    }
  }
}

5ire集成

在5ire中:

  1. 点击主界面中的工具
  2. 点击本地按钮
  3. 填写“编辑工具(本地服务器)”表单:
    • 工具键: pentest-mcp
    • 名称: Pentest MCP(可选)
    • 描述: AI驱动的渗透测试服务器(可选)
    • 审批策略: 选择始终(推荐)
    • 命令: python -m pentest_mcp_server
    • 环境变量:
      • TARGET_HOST = 192.168.1.100
      • TARGET_USER = kali
      • TARGET_PASSWORD = your_password
  4. 查看配置预览确保正确
  5. 点击保存
  6. 启用工具: 将鼠标悬停在工具列表中的pentest-mcp条目上,点击右侧出现的切换按钮以启用它

Warp AI集成

在Warp终端中:

  1. 前往设置(⌘ + ,)
  2. 点击侧边栏中的AI
  3. 向下滚动找到管理MCP
  4. 点击添加MCP
  5. 粘贴以下JSON配置:
{
  "mcpServers": {
    "pentest-mcp": {
      "command": "python",
      "args": ["-m", "pentest_mcp_server"],
      "env": {
        "TARGET_HOST": "192.168.1.100",
        "TARGET_USER": "kali",
        "TARGET_PASSWORD": "your_password"
      }
    }
  }
}
  1. 点击保存
  2. 重启Warp

🔧 快速设置

设置步骤

# 1. 克隆并安装
git clone https://github.com/LayeSec006/pentest-mcp-server.git
cd pentest-mcp-server
pip install -e .

# 2. 配置
cp .env.example .env
# 编辑.env文件以包含您的目标系统详细信息

# 3. 测试配置
python -c "from pentest_mcp_server.config import Config; c = Config(); print('配置加载:', c.TARGET_HOST)"

🚀 高级功能

🎯 交互式工具支持

启动并交互使用如Metasploit框架这样的复杂工具:

{
  "tool": "execute",
  "args": {
    "session_id": "msf_session",
    "command": "msfconsole -q"
  }
}

与正在运行的工具交互:

{
  "tool": "send_input",
  "args": {
    "session_id": "msf_session",
    "input": "use exploit/multi/handler"
  }
}

🔄 反向shell管理

无缝处理传入的反向shell:

{
  "tool": "execute",
  "args": {
    "session_id": "reverse_shell",
    "command": "nc -lvp 4444"
  }
}

与连接的shell交互:

{
  "tool": "send_input",
  "args": {
    "session_id": "reverse_shell",
    "input": "whoami"
  }
}

📊 复杂工作流自动化

支持多步骤渗透测试工作流:

  1. 网络侦察(nmap、masscan)
  2. Web应用扫描(gobuster、nikto、dirb)
  3. 漏洞利用(metasploit、自定义漏洞)
  4. 后利用(meterpreter、权限提升)
  5. 数据外泄(文件操作、隧道)

🛡️ 会话持久性和恢复

会话在网络中断或崩溃后仍然存活:

{
  "tool": "recover_sessions",
  "args": {}
}

关键优势:

  • 即使SSH连接丢失,会话也会继续运行
  • 具有指数退避的自动重连
  • 跨网络问题的状态保留
  • 完整恢复交互式会话

🛠️ MCP工具

会话管理

工具描述目的
create_session创建新的持久tmux会话开始隔离的工作空间进行渗透测试任务
list_sessions列出所有活动会话监控运行的操作
kill_session终止特定会话清理已完成的任务

create_session

创建一个新的持久tmux会话,用于隔离的渗透测试操作。

参数:

{
  "session_id": "scan_network",
  "shell": "bash"
}

list_sessions

列出所有活动的tmux会话及其状态。

参数:

{}

kill_session

终止特定会话并清理资源。

参数:

{
  "session_id": "scan_network"
}

命令执行

工具描述目的
execute在持久会话中执行命令运行渗透测试工具和脚本
read_output获取会话的当前输出监控命令进度和结果
send_input向交互式工具发送输入控制交互式应用程序

execute

在持久会话中执行命令。

{
  "session_id": "scan_network",
  "command": "nmap -sV 192.168.1.0/24",
  "background": false
}

read_output

获取会话的当前输出。

{
  "session_id": "scan_network",
  "lines": 50
}

send_input

向交互式工具发送输入。

{
  "session_id": "msf_session",
  "input": "use exploit/multi/handler",
  "press_enter": true
}

系统管理

get_system_status

获取系统资源使用情况和会话状态。

{}

recover_sessions

重新连接后恢复孤立的会话。

{}

文件操作

upload_file

通过SFTP上传文件到您的系统。

{
  "local_path": "/path/to/local/file",
  "remote_path": "/tmp/uploaded_file"
}

download_file

通过SFTP从您的系统下载文件。

{
  "remote_path": "/tmp/scan_results.xml",
  "local_path": "/path/to/local/results.xml"
}

工具输出解析

parse_tool_output

解析常见的渗透测试工具输出(nmap XML、JSON等)。

{
  "tool": "nmap",
  "file_path": "/tmp/scan.xml",
  "format": "xml"
}

💡 使用示例

基本网络扫描

AI: 我需要扫描网络192.168.1.0/24

工具:create_session
参数:{"session_id": "network_scan"}

工具:execute  
参数:{
  "session_id": "network_scan",
  "command": "nmap -sV 192.168.1.0/24 -oX /tmp/scan.xml"
}

工具:read_output
参数:{"session_id": "network_scan"}

交互式Metasploit使用

AI: 让我启动Metasploit并设置一个处理器

工具:create_session
参数:{"session_id": "metasploit"}

工具:execute
参数:{
  "session_id": "metasploit", 
  "command": "msfconsole -q"
}

工具:send_input
参数:{
  "session_id": "metasploit",
  "input": "use exploit/multi/handler"
}

工具:send_input  
参数:{
  "session_id": "metasploit",
  "input": "set PAYLOAD linux/x64/meterpreter/reverse_tcp"
}

工具:send_input
参数:{
  "session_id": "metasploit", 
  "input": "exploit"
}

并行操作

AI: 我将