漏洞扫描服务器

一个结合Nmap扫描和CVE情报的MCP服务器,用于检测授权网络上的开放端口、服务和已知漏洞。

  • by aryanrangapur
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aryanrangapur/Nmap-and-CVE-Vulnerability-Scanner-MCP-Server

使用说明

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

添加新工具

  1. 将该功能添加到 nmap_vuln_server.py
  2. 用…装饰 @mcp.tool()
  3. 用新的工具名称更新目录条目
  4. 重建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许可证