渗透测试工具集成服务

一个基于Docker容器的渗透测试工具集成服务,通过HTTP/SSE协议为AI助手提供70多种安全测试工具,包括网络扫描、Web枚举、AD攻击等功能。

  • by SanjayRagavendar
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 SanjayRagavendar/PentestMCP

使用说明

🔐 PentestMCP

人工智能渗透测试MCP服务器

一个全面的模型上下文协议(MCP)服务器,通过HTTP/SSE传输向AI助手(Claude、VS Code Copilot等)公开70多种渗透测试工具,在Docker容器中运行。

✨ 特性

  • 70+安全工具 -网络扫描、web枚举、AD攻击等
  • HTTP/SSE传输 -带有服务器发送事件的HTTP标准MCP协议
  • Docker容器 -隔离、可复制的环境,预装所有工具
  • 人工智能集成 -适用于Claude Desktop、VS Code Copilot和其他MCP客户端
  • 异步执行 -具有状态跟踪功能的非阻塞扫描
  • 输出管理 -具有解析支持的有序输出文件

🏗️ 建筑

┌──────────────────────────────────────────────────────────────┐
│                     MCP Client                               │
│            (Claude Desktop / VS Code Copilot)                │
└─────────────────────────┬────────────────────────────────────┘
                          │ HTTP/SSE
                          ▼
┌──────────────────────────────────────────────────────────────┐
│                   PentestMCP Server                          │
│                   (Docker Container)                         │
│  ┌────────────────────────────────────────────────────────┐  │
│  │  MCP Server (Python/FastAPI)                           │  │
│  │  - Tool Registration                                   │  │
│  │  - Request Handling                                    │  │
│  │  - Process Management                                  │  │
│  └────────────────────────────────────────────────────────┘  │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│  │   Network   │ │     Web     │ │   Active Directory      │ │
│  │    Tools    │ │    Tools    │ │        Tools            │ │
│  │  - Nmap     │ │  - Nuclei   │ │  - BloodHound           │ │
│  │  - Masscan  │ │  - Gobuster │ │  - Impacket             │ │
│  │  - RustScan │ │  - ffuf     │ │  - CrackMapExec         │ │
│  └─────────────┘ └─────────────┘ └─────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘

🚀 快速开始

1.从Docker Hub拉取(推荐)

# Pull the pre-built image
docker pull reaper3389/pentestmcp:latest

2.运行容器

# Using Docker Compose (recommended)
docker-compose up -d

# Or using Docker directly
docker run -d -p 8080:8080 --name pentestmcp \
  --cap-add=NET_ADMIN --cap-add=NET_RAW \
  reaper3389/pentestmcp:latest

替代方案:在当地建造

# Clone and build from source
cd /path/to/pentestMCP
docker build -t pentestmcp:latest .

4.配置MCP客户端

克劳德桌面

增添 ~/.config/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "pentestmcp": {
      "command": "docker",
      "args": ["run", "--rm", "-p", "8080:8080", "--cap-add=NET_ADMIN", "--cap-add=NET_RAW", "reaper3389/pentestmcp:latest"]
    }
  }
}

VS代码副本

  1. 为VS代码安装MCP扩展
  2. 配置服务器URL: http://localhost:8080/mcp
  3. 设置运输: streamable-http

5.开始使用

User: "Scan 192.168.1.1 for open ports"
Claude: [Uses run_nmap_scan tool]

User: "Find vulnerabilities on https://example.com"
Claude: [Uses run_nuclei tool]

User: "Enumerate Active Directory users"
Claude: [Uses ad_get_users tool]

🛠️ 可用工具

网络扫描(10个工具)

工具 功能 说明
run_nmap_scan 端口扫描 功能齐全的端口扫描仪
run_masscan 快速扫描 超快端口扫描仪
run_rustscan 快速发现 基于Rust的现代扫描仪
run_naabu 端口发现 基于Fast Go的扫描程序
run_arp_scan 本地发现 ARP网络扫描

DNS枚举(12个工具)

工具 功能 说明
run_subfinder 子域枚举 被动子域发现
run_amass 资产发现 OWASP子域工具
run_dnsx DNS解析 快速DNS工具包
run_dnsrecon DNS枚举 DNS枚举
run_dig DNS查询 DNS查找
run_whois WHOIS查询 域名注册信息

Web枚举(13个工具)

工具 功能 说明
run_httpx HTTP探测 Web服务器发现
run_nuclei Vuln扫描 基于模板的扫描程序
run_gobuster 目录枚举
run_feroxbuster 递归枚举 快速内容发现
run_ffuf 网络模糊 快速网络模糊器
run_nikto Web扫描仪 Web服务器扫描仪
run_whatweb 指纹 技术检测
run_katana 爬行 网络爬虫

SMB/Windows(4个工具)

工具 功能 说明
run_enum4linux Windows枚举 SMB枚举
run_smbmap 共享枚举 SMB共享映射
run_crackmapexec AD/SMB 瑞士军刀
run_nbtscan NetBIOS NetBIOS扫描

Active Directory(15+工具)

工具 功能 说明
ad_bloodhound_collect 数据收集 血猎犬摄入
ad_get_users 用户枚举 AD用户枚举
ad_asreproast AS-REP烘焙 预认证攻击
ad_kerberoast Kerberoast 服务票攻击
ad_secretsdump 信任转储 秘密提取
ad_ldap_search LDAP查询 AD LDAP查询
ad_certipy ADCS枚举 证书服务
ad_kerbrute 用户枚举 Kerberos枚举

数据库(4个工具)

工具 功能 说明
run_sqlmap SQL注入 自动化SQLi测试

SNMP(2个工具)

工具 功能 说明
run_snmpwalk SNMP枚举 SNMP枚举
run_onesixtyone 社区暴力 SNMP暴力

OSINT(2个工具)

工具 功能 说明
run_theharvester OSINT收集 电子邮件/域OSINT
run_gau URL发现 历史URL

实用工具

工具 功能 说明
run_curl HTTP请求 自定义HTTP请求
run_shell_command Shell访问 运行Shell命令
check_tool_available 工具检查 验证工具可用性
get_scan_status 状态检查 检查背景扫描
list_output_files 文件列表 列出输出文件
read_output_file 文件读取 读取扫描输出

📂 项目结构

pentestMCP/
├── Dockerfile              # Container definition
├── docker-compose.yml      # Docker Compose config
├── requirements.txt        # Python dependencies
├── start_services.sh       # Startup script
├── pentestMCP-sse.py       # Main MCP server
│
├── tools/                  # Tool modules
│   ├── __init__.py
│   ├── nmap.py            # Nmap wrapper
│   ├── nuclei.py          # Nuclei wrapper
│   ├── curl_tool.py       # HTTP requests
│   ├── web_tools.py       # Web scanning tools
│   ├── ad_tools.py        # Active Directory tools
│   ├── network_tools.py   # Network scanning
│   └── dns_tools.py       # DNS enumeration
│
├── utils/                  # Utility modules
│   ├── __init__.py
│   ├── parser.py          # Output parsing
│   ├── logger.py          # Logging
│   ├── credentials.py     # Credential storage
│   └── state.py           # State management
│
└── output/                 # Scan outputs

🔒 安全注意事项

⚠️ 警告:此工具提供强大的渗透测试功能。

法律要求

  • 仅在您拥有或拥有的系统上使用 明确的书面授权 测试
  • 遵守所有适用的法律法规
  • 测试前的文件授权

操作安全

  • 在隔离的网段中运行
  • 启用审核日志记录
  • 监控资源使用情况
  • 仔细审查所有结果

推荐设置

  • 使用VLAN进行隔离
  • 使用防火墙限制端口访问
  • 启用Docker日志记录
  • 定期工具更新

🔧 配置

环境变量

变量 默认值 描述
MCP_HOST 0.0.0.0 服务器绑定地址
MCP_PORT 8080 服务器端口

资源限制(docker compose.yml)

deploy:
  resources:
    limits:
      cpus: '4.0'
      memory: 4G

📖 API终点

端点 方法 描述
/ 获取 包含信息的主页
/health GET 健康检查
/info GET 服务器信息
/mcp GET/POST MCP SSE端点

🔄 示例工作流

外部侦察

1. run_subfinder("example.com")      # Find subdomains
2. run_httpx(subdomains_file)        # Probe HTTP services
3. run_nuclei(live_hosts)            # Vulnerability scan
4. run_gau("example.com")            # Historical URLs

内部网络评估

1. run_nmap_scan("192.168.1.0/24")   # Network scan
2. run_enum4linux("192.168.1.100")   # Windows enum
3. run_smbmap("192.168.1.100")       # Share enum
4. run_crackmapexec("smb", ...)      # Domain enum

Active Directory攻击

1. ad_get_users(dc, domain, user, pass)         # User enum
2. ad_asreproast(dc, domain)                    # AS-REP roast
3. ad_kerberoast(dc, domain, user, pass)        # Kerberoast
4. ad_bloodhound_collect(dc, domain, user, pass) # BloodHound

🐛 故障排除

集装箱问题

# Check container status
docker ps

# View logs
docker logs pentestmcp

# Enter container
docker exec -it pentestmcp /bin/bash

连接问题

# Test health endpoint
curl http://localhost:8080/health

# Check port mapping
docker port pentestmcp

工具问题

# Check if tool is available (via MCP)
User: "Check if nmap is available"

📄 许可证

MIT许可证-请参阅许可证文件

🤝 贡献

  1. 分叉存储库
  2. 创建特征分支
  3. 提交更改
  4. 推送到分支
  5. 打开拉取请求

📞 支持

  • 打开bug问题
  • 检查文档以了解使用情况
  • 查看故障排除指南

专为安全专业人员和人工智能辅助渗透测试而设计。

⚠️ 负责任地合法使用。