Nmap和CVE漏洞扫描程序MCP服务器
一种模型上下文协议(MCP)服务器,将Nmap扫描与CVE智能相结合,以检测授权网络上的开放端口、服务和已知漏洞。
目的
此MCP服务器为AI助手提供了一个安全接口,用于对授权目标执行网络安全评估、端口扫描和漏洞识别。
特性
当前实施情况
quick_scan-通过服务检测和CVE检查快速扫描前1000个端口full_scan-全面扫描,包括操作系统检测、所有端口和详细的漏洞分析port_check-检查特定端口是否打开,并识别正在运行的服务vulnerability_scan-搜索特定服务/版本的已知CVE漏洞network_discovery-发现网络子网中的活动主机(仅限专用网络)
先决条件
- 启用MCP工具包的Docker桌面
- Docker MCP CLI插件(
docker mcp命令) - 可选:用于增强漏洞数据的Vulners API密钥
- 可选:NVD API密钥以获取更多CVE信息
安全功能
- 靶点确证:仅允许扫描:
- 私有IP范围(192.168.x.x、10.x.x.x、172.16-31.x.x)\[仅适用于nmap_vuln_server_safer.py(如果要使用更安全的版本,请将其重命名为nmap_vulin_server.py)\] - 本地主机(127.0.0.1,::1) - 链接本地地址
- 子网大小限制:网络发现限制为/24或更小(最多256台主机)
- 非根执行:在Docker中以无特权用户身份运行
- API密钥保护:存储在Docker secrets中的敏感密钥
安装
请参阅随文件提供的分步说明。
使用示例
在Claude Desktop中,您可以问:
- “扫描192.168.1.1以查找开放端口和漏洞”
- “检查10.0.0.5上的端口22是否打开”
- “查找Apache 2.4.41的漏洞”
- “发现我家庭网络中的所有活动设备192.168.1.0/24”
- “在我的本地服务器192.168.1.100上执行全面安全扫描”
- “哪些CVE会影响nginx 1.18.0版本?”
建筑
Claude Desktop → MCP Gateway → Nmap MCP Server → Nmap Scanner
↓
CVE Databases
(CIRCL, Vulners, NVD)
↓
Docker Desktop Secrets
(VULNERS_API_KEY, NVD_API_KEY)发展
局部测试
# Set environment variables for testing
export VULNERS_API_KEY="test-key"
export NVD_API_KEY="test-key"
# Run directly
python nmap_vuln_server.py
# Test MCP protocol
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | python nmap_vuln_server.py添加新工具
- 将该功能添加到
nmap_vuln_server.py - 用…装饰
@mcp.tool() - 用新的工具名称更新目录条目
- 重建Docker镜像
故障排除
工具未出现
- 验证Docker镜像构建成功
- 检查目录和注册表文件
- 确保Claude Desktop配置包括自定义目录
- 重新启动克劳德桌面
扫描失败
- 验证目标是否在专用IP范围内
- 检查网络连接
- 确保Nmap安装在容器中
- 查看Docker日志中的错误
无漏洞数据
- CVE搜索在没有API密钥的情况下工作(使用CIRCL)
- 为增强的数据添加Vulners API密钥
- 检查API调用的互联网连接
API密钥(可选)
Vulners API
- 注册地址:https://vulners.com
- 免费套餐可用
- 提供详细的漏洞数据
NVD API
- 注册地址:https://nvd.nist.gov/developers
- 免费政府数据库
- 全面的CVE信息
安全考虑
- 存储在Docker Desktop secrets中的所有机密
- 从不硬编码凭据
- 以非root用户身份运行
- 从未记录敏感数据
- 扫描仅限于专用网络
- 未经授权不得扫描公共IP
许可证
MIT许可证
