项目发现MCP服务器
集成了模型上下文协议(MCP)的服务器 项目发现 用于自动漏洞赏金侦察和漏洞扫描的安全工具。
特性
此MCP服务器提供全面的安全侦察功能:
个人工具
- 子指示器 -使用被动源发现子域
- dnsx -DNS解析和探测
- 邻居 -快速端口扫描
- httpx -HTTP/HTTPS探测和分析
- 武士刀 -Web爬行和端点发现
- 核 -使用YAML模板进行漏洞扫描
自动化工作流程
- Bug Hunting工作流程 -将所有工具连接在一起的端到端侦察管道
工作流程图
Target Domain
│
▼
┌─────────────────────────────────────────────┐
│ Step 1: Subdomain Discovery (subfinder) │
│ Find all subdomains via passive sources │
└──────────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Step 2: DNS Resolution (dnsx) │
│ Resolve domains to IP addresses │
└──────────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Step 3: Port Scanning (naabu) [OPTIONAL] │
│ Scan top ports on resolved hosts │
└──────────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Step 4: HTTP Probing (httpx) │
│ Identify live web services │
└──────────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Step 5: Web Crawling (katana) [OPTIONAL] │
│ Discover endpoints & paths │
└──────────────────┬──────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Step 6: Vulnerability Scan (nuclei) │
│ Test for known vulnerabilities │
└──────────────────┬──────────────────────────┘
│
▼
Comprehensive Report
├─ Attack surface mapping
├─ Open ports & services
├─ Live web applications
├─ Discovered endpoints
└─ Security vulnerabilities执行时间: 约2分钟(因目标大小而异)
输出: JSON报告包含:
- 子域总数、已解析主机数、开放端口数
- 带有状态代码和标题的实时HTTP服务
- 爬网端点和路径
- 按严重程度分类的漏洞(严重/高/中/低)
先决条件
在使用此MCP服务器之前,您必须安装ProjectDiscovery工具:
# Install Go (required)
# On Ubuntu/Debian
sudo apt update
sudo apt install golang-go
# On macOS
brew install go
# Install ProjectDiscovery tools
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest
go install -v github.com/projectdiscovery/naabu/v2/cmd/naabu@latest
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
go install -v github.com/projectdiscovery/katana/cmd/katana@latest
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# Update Nuclei templates
nuclei -update-templates
# Ensure tools are in PATH
export PATH=$PATH:$(go env GOPATH)/bin安装
# Clone the repository
git clone https://github.com/intelligent-ears/pd-tools-mcp
cd pd-tools-mcp
# Install dependencies
npm install
# Build the server
npm run build用法
使用克劳德桌面
添加到您的Claude Desktop配置(claude_desktop_config.json):
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"projectdiscovery": {
"command": "node",
"args": ["/absolute/path/to/pdmcp/build/index.js"]
}
}
}使用VS代码
创建或更新 .vscode/mcp.json 在您的工作空间中:
{
"projectdiscovery": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/pdmcp/build/index.js"]
}
}独立测试
npm start可用工具
1.亚沉子
发现目标域的子域。
输入:
domain(字符串,必填):目标域(例如“example.com”)silent(布尔值,可选):在输出中仅显示子域
例子:
{
"domain": "example.com",
"silent": true
}2.dnsx
解析域的DNS记录。
输入:
domains(字符串数组,必填):要解析的域列表recordType(字符串,可选):DNS记录类型(A、AAAA、CNAME等)
例子:
{
"domains": ["example.com", "sub.example.com"],
"recordType": "A"
}3. 邻居
扫描主机上的开放端口。
输入:
hosts(字符串数组,必填):要扫描的主机列表ports(字符串,可选):要扫描的端口(例如,“80443”或“1-1000”)topPorts(数字,可选):扫描前N个端口
例子:
{
"hosts": ["example.com"],
"topPorts": 100
}4.httpx
探测HTTP/HTTPS服务器。
输入:
urls(字符串数组,必填):URL或主机列表followRedirects(布尔值,可选):遵循HTTP重定向screenshot(布尔值,可选):截图
例子:
{
"urls": ["https://example.com"],
"followRedirects": true
}5.卡塔纳
抓取网站并发现端点。
输入:
urls(字符串数组,必填):要爬网的URL列表depth(数字,可选):爬行深度(默认值:2)scope(字符串,可选):爬网范围正则表达式模式
例子:
{
"urls": ["https://example.com"],
"depth": 3
}6.细胞核
使用模板扫描漏洞。
输入:
targets(字符串数组,必填):目标列表templates(字符串数组,可选):要使用的特定模板severity(字符串数组,可选):按严重性(严重、高、中、低、信息)筛选
例子:
{
"targets": ["https://example.com"],
"severity": ["critical", "high"]
}7.漏洞搜寻工作流程
执行完整的自动化侦察工作流程。
输入:
domain(字符串,必填):目标域portScan(布尔值,可选):包括端口扫描(默认值:true)crawl(布尔值,可选):包括网络爬行(默认值:true)vulnerabilityScan(布尔值,可选):包括漏洞扫描(默认值:true)severityFilter(字符串数组,可选):核严重性过滤器
速率限制选项:
maxCrawlUrls(数字,可选):要爬网的最大URL数(默认值:10)maxScanUrls(数字,可选):使用Nuclei扫描的最大URL数(默认值:20)maxTopPorts(数字,可选):Naabu的最大顶部端口数(默认值:100)batchSize(数字,可选):DNS/HTTP请求的批大小(默认值:50)delayBetweenBatches(数字,可选):批之间的延迟(毫秒)(默认值:1000)crawlDepth(数字,可选):Katana的爬行深度(默认值:2)
例子:
{
"domain": "example.com",
"portScan": true,
"crawl": true,
"vulnerabilityScan": true,
"severityFilter": ["critical", "high"],
"maxCrawlUrls": 50,
"maxScanUrls": 100,
"maxTopPorts": 200,
"batchSize": 25,
"delayBetweenBatches": 2000,
"crawlDepth": 3
}示例(保守速率限制):
{
"domain": "example.com",
"maxCrawlUrls": 5,
"maxScanUrls": 10,
"delayBetweenBatches": 5000
}工作流程步骤:
- 子域发现 -查找所有子域
- DNS解析 -将子域解析为IP
- 端口扫描 -识别开放端口(可选)
- HTTP探测 -查找实时网络服务
- 网络爬虫 -发现端点(可选)
- 漏洞扫描 -检测安全问题(可选)
速率限制
漏洞赏金工作流程包括可配置的速率限制,以防止目标基础设施不堪重负,并尊重负责任的披露实践。
速率限制参数
| 参数 | 默认值 | 说明 |
|---|---|---|
maxCrawlUrls | 10 | 使用Katana抓取的最大URL数 |
maxScanUrls | 20 | 使用Nuclei扫描的最大URL数量 |
maxTopPorts | 100 | 使用Naabu扫描的最大顶级端口数 |
batchSize | 50 | 每批要处理的项目数量 |
delayBetweenBatches | 1000 | 批处理之间的延迟(毫秒) |
crawlDepth | 2 | 网络爬行的最大深度 |
使用示例
积极扫描(负责任地使用):
{
"domain": "example.com",
"maxCrawlUrls": 100,
"maxScanUrls": 200,
"maxTopPorts": 1000,
"batchSize": 100,
"delayBetweenBatches": 500,
"crawlDepth": 3
}保守扫描(建议用于生产现场):
{
"domain": "example.com",
"maxCrawlUrls": 5,
"maxScanUrls": 10,
"maxTopPorts": 50,
"batchSize": 10,
"delayBetweenBatches": 5000,
"crawlDepth": 1
}隐形扫描(最小占用空间):
{
"domain": "example.com",
"maxCrawlUrls": 3,
"maxScanUrls": 5,
"maxTopPorts": 20,
"batchSize": 5,
"delayBetweenBatches": 10000,
"crawlDepth": 1
}最佳实践
- 开始保守:从下限开始,逐渐增加
- 尊重目标基础设施:使用适当的延迟来避免服务器不堪重负
- Bug赏金计划:始终遵守项目的参与规则
- 生产系统:使用延长的延迟和较低的批量
- 监控日志:检查stderr输出的速率限制状态消息
示例用法
一旦配置了像Claude Desktop这样的MCP客户端,您就可以使用自然语言:
“使用bug_bounty_workflow工具扫描example.com的漏洞”
“使用subfinder查找hackerone.com的所有子域”
“使用naabu扫描example.com上的前100个端口”
“爬行https://example.com并使用katana找到所有端点”
发展
# Watch mode for development
npm run dev
# Build
npm run build
# Run
npm start鸣谢
内置:
贡献
欢迎投稿!请随时提交拉取请求。
