samaypatel27/pentest-mcp
GitHub: samaypatel27/pentest-mcp
基于 MCP 协议让 Claude AI 动态编排专业渗透测试工具链的自动化网站漏洞扫描平台,帮助中小企业以低成本完成安全评估。
Stars: 1 | Forks: 2
# BlindSpot
**在线演示:** [blindspot-scan.vercel.app](https://blindspot-scan.vercel.app)
BlindSpot 是一款自动化渗透测试工具,专为快速交付产品却忽略安全防护的中小企业和初创公司打造。Claude 充当推理层,负责决定运行哪些安全工具及其执行顺序。这些工具本身运行在一个独立的 MCP 服务器上——该协议允许 Claude 像调用内部功能一样调用外部工具。Claude 会获取可用工具列表,选择其中一个运行,读取原始输出,并不断循环。每一次的结果都会成为 Claude 下一步决策的输入,这就是为什么这里没有硬编码的执行序列。
大多数专业安全工作都在 Linux 上进行。Kali Linux 是安全工程师使用的标准发行版。我们在这里自动化的工具——nmap、Gobuster、Hydra、Metasploit——与专业白帽黑客在终端中手动运行的工具完全相同。我们将每个工具封装为 MCP 工具,以便 Claude 可以直接调用它们,读取其终端输出,并决定接下来链式调用哪个工具——这正是安全工程师手动执行的工作流,现已实现全自动化。
## 架构
```
[ React 19 + Vite + Tailwind CSS — Frontend ]
|
| HTTP + SSE
v
[ FastAPI Orchestrator — MCP Client + Anthropic API ]
|
| Model Context Protocol (stdio)
v
[ FastMCP Server — Linux Security Tools as MCP Tools ]
|
| subprocess
v
[ nmap · Nikto · Gobuster · FFuF · Hydra · Metasploit
WhatWeb · SearchSploit · Shodan API · NVD API · dig · whois ]
```
AI 推理层扮演两个角色:
1. **编排器 (Orchestrator)** — 读取每个工具的原始输出,并根据发现的内容决定下一步调用的工具
2. **报告生成器 (Report writer)** — 将所有发现综合成一份按严重程度评分(1-10分)的结构化漏洞报告
## 扫描管道
```
Start: Target + Authorization
|
+-------+--------+
| |
PASSIVE ACTIVE
(no contact) (direct scan)
| |
Shodan NMAP port scan
WhatWeb |
DNS & WHOIS +----+----+
| | |
Web DB SSH
tools tools tools
| |
+--------+-------+
|
NVD CVE Lookup
SearchSploit
|
v
AI: Correlate + Report
```
## 文件结构
```
pentest-mcp/
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Home.jsx # Landing page with terminal intro
│ │ │ ├── Scan.jsx # Dashboard + chat interface
│ │ │ ├── Guide.jsx # User guide (dev + non-dev modes)
│ │ │ └── ScanNew.jsx # Scan configuration modal
│ │ ├── components/
│ │ │ ├── homepage/
│ │ │ │ ├── ShaderBackground.jsx
│ │ │ │ ├── ScanFeed.jsx
│ │ │ │ ├── HeroPanel.jsx
│ │ │ │ └── AuthModal.jsx
│ │ │ └── WarningModal.jsx
│ │ ├── lib/
│ │ │ ├── supabase.js # Supabase client
│ │ │ └── AuthContext.jsx # Google OAuth session
│ │ └── main.jsx
│ ├── .env.example
│ └── package.json
│
├── backend/
│ ├── orchestrator.py # FastAPI app — MCP client + Anthropic API
│ ├── server.py # FastMCP server — tools exposed via MCP
│ ├── tools/
│ │ ├── active/ # nmap, nikto, gobuster, hydra, metasploit
│ │ └── passive/ # shodan, whatweb, whois, dig, nvd
│ ├── .env.example
│ └── requirements.txt
│
├── CLAUDE.md # Claude Code project context
└── README.md
```
## 设置
### 前置条件
- Node.js 18+
- Python 3.11+
- Kali Linux 或 Ubuntu(后端必须运行在 Linux 上)
安装安全工具:
```
sudo apt install nmap nikto gobuster hydra whatweb metasploit-framework
```
### 1. 克隆
```
git clone https://github.com/samaypatel27/pentest-mcp.git
cd pentest-mcp
```
### 2. 后端
```
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
```
填写 `.env`:
```
ANTHROPIC_API_KEY=sk-ant-...
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
SHODAN_API_KEY=your-shodan-key
NVD_API_KEY=your-nvd-key
```
### 3. 前端
```
cd ../frontend
npm install
cp .env.example .env
```
填写 `.env`:
```
VITE_BACKEND_URL=http://localhost:5000
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key
```
## 运行
需要开启两个终端。后端必须运行在 Linux 上。
**终端 1 — 后端:**
```
cd backend
source venv/bin/activate
uvicorn orchestrator:app --host 127.0.0.1 --port 5000 --reload
```
**终端 2 — 前端:**
```
cd frontend
npm run dev
```
应用运行地址为 `http://localhost:5173`
## 部署
| 层级 | 平台 |
|---|---|
| 前端 | Vercel — 在 `/frontend` 目录下运行 `vercel --prod` |
| 后端 | 安装了安全工具的 Linux VPS (DigitalOcean, Linode) |
| 数据库 | Supabase (PostgreSQL + Google OAuth) |
## 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | React 19, Vite, Tailwind CSS, Framer Motion |
| 后端 | Python, FastAPI, FastMCP |
| AI | Anthropic Claude (via MCP) |
| 协议 | Model Context Protocol (MCP) |
| 数据库 | Supabase — PostgreSQL |
| 认证 | Google OAuth via Supabase |
| 安全工具 | nmap, Nikto, Gobuster, Hydra, Metasploit, WhatWeb, SearchSploit, Shodan, NVD API |
## 故障排除
| 问题 | 解决方案 |
|---|---|
| `ANTHROPIC_API_KEY is not set` | 填写 `backend/.env` |
| 扫描时出现 `Network error` | 后端未运行或 `VITE_BACKEND_URL` 配置错误 |
| `ModuleNotFoundError: No module named 'mcp'` | 在虚拟环境中运行 `pip install -r requirements.txt` |
| 找不到安全工具 | 运行 `sudo apt install nmap nikto gobuster hydra` |
| 浏览器出现 CORS 错误 | 确认后端正在运行,并且 CORS 来源包含前端 URL |
| `Credit balance too low` | 在 console.anthropic.com/billing 充值 |
## 作者
最初在俄亥俄州立大学的 Claude Hacks 2026 黑客马拉松期间构建。之后,我们对项目进行了修改,并将其准备好以供部署。
标签:AI智能体, AMSI绕过, AV绕过, CI/CD安全, CISA项目, Claude AI, FastAPI, FastMCP, FFuF, FTP漏洞扫描, GPT, Hydra, IT安全, Llama, LLM安全工具, MCP协议, meg, Nikto, NVD, Python, React 19, SearchSploit, Tailwind CSS, TypeScript, Vite, WhatWeb, XXE攻击, 中小企业安全, 人工智能安全, 代码生成, 信息安全, 加密, 反取证, 合规性, 威胁检测, 威胁模拟, 安全插件, 安全编排, 安全评估, 插件系统, 攻击模拟, 攻击路径可视化, 无后门, 测试用例, 渗透测试工具, 漏洞扫描器, 漏洞管理, 结构化查询, 网站安全检测, 网站漏洞扫描, 网络安全, 网络安全审计, 网络安全扫描, 自动化安全, 自动化渗透测试, 自定义脚本, 逆向工具, 隐私保护, 驱动签名利用, 黑客工具, 黑客松项目