🔐 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代码副本
为VS代码安装MCP扩展
配置服务器URL: http://localhost:8080/mcp
设置运输: 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许可证-请参阅许可证文件
🤝 贡献
分叉存储库
创建特征分支
提交更改
推送到分支
打开拉取请求
📞 支持
打开bug问题
检查文档以了解使用情况
查看故障排除指南
专为安全专业人员和人工智能辅助渗透测试而设计。
⚠️ 负责任地合法使用。