项目简介

这是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在为大型语言模型(如支持MCP的AI助手)提供与 Tenable Nessus 漏洞扫描器交互的能力。它允许AI通过标准化的协议执行漏洞扫描、管理扫描任务和分析漏洞信息。

主要功能点

  • 漏洞扫描: 启动和监控针对特定目标的漏洞扫描。
  • 扫描管理: 列出所有扫描任务、跟踪扫描状态、获取已完成扫描的结果。
  • 漏洞分析: 按关键词搜索漏洞,或根据漏洞ID获取详细信息。
  • 模拟模式: 提供一个无需真实Nessus API密钥即可测试服务器功能的完整模拟模式。

安装步骤

  1. 准备环境: 确保您的系统已安装 Node.js (版本 16 或更高) 和 npm。
  2. 克隆仓库: 使用 Git 克隆本项目到本地目录。
    git clone https://github.com/Cyreslab-AI/nessus-mcp-server.git
    cd nessus-mcp-server
  3. 安装依赖: 在项目根目录执行以下命令安装所需的依赖包。
    npm install
  4. 构建项目: 运行构建命令编译 TypeScript 代码。
    npm run build
    构建完成后,可执行文件将在 'build/index.js' 生成。

服务器配置

MCP服务器通过标准输入/输出(stdio)与客户端(如支持MCP的AI助手)通信。您不需要手动运行服务器,而是在MCP客户端的配置中指定如何启动这个服务器程序。

以下是配置此Nessus MCP服务器的关键信息,您需要将其添加到您的MCP客户端(例如 Claude for Desktop)的配置文件中。具体的配置文件位置和格式请参考您的MCP客户端的文档。通常配置会包含服务器的名称、启动命令及其参数。

  • 服务器名称: 'nessus' (客户端用此名称引用此服务器)
  • 启动命令 (command): 'node' (执行 Node.js 程序)
  • 启动参数 (args): '/path/to/nessus-mcp-server/build/index.js' (替换为您的实际路径)
  • 环境变量 (env):
    • 'NESSUS_URL': 'https://your-nessus-instance:8834' (您的Nessus实例地址,连接真实Nessus时需要)
    • 'NESSUS_ACCESS_KEY': 'your-access-key' (您的Nessus API访问密钥,连接真实Nessus时需要)
    • 'NESSUS_SECRET_KEY': 'your-secret-key' (您的Nessus API秘密密钥,连接真实Nessus时需要)
    • 提示: 如果您想使用模拟模式进行测试,可以省略 'env' 部分。

配置示例(JSON格式,请参考您的MCP客户端文档进行实际配置):

{
  "mcpServers": {
    "nessus": {
      "command": "node",
      "args": ["/path/to/nessus-mcp-server/build/index.js"],
      "env": {
        "NESSUS_URL": "https://your-nessus-instance:8834",
        "NESSUS_ACCESS_KEY": "your-access-key",
        "NESSUS_SECRET_KEY": "your-secret-key"
      }
    }
  }
}

基本使用方法

一旦服务器在您的MCP客户端中配置并启动,您可以通过与LLM客户端交互来使用它提供的功能(工具)。LLM会根据您的指令自动调用相应的工具。

例如,在聊天界面中,您可以尝试以下类型的指令:

  • “列出所有可用的扫描模板。” (对应 'list_scan_templates' 工具)
  • “对目标 192.168.1.1 执行一次基础网络扫描。” (对应 'start_scan' 工具,LLM会解析目标和扫描类型参数)
  • “检查扫描 ID scan-1234567890 的状态。” (对应 'get_scan_status' 工具)
  • “获取扫描 ID scan-1234567890 的完整结果。” (对应 'get_scan_results' 工具)
  • “搜索关于 log4j 漏洞的信息。” (对应 'search_vulnerabilities' 工具)
  • “获取漏洞 CVE-2021-44228 的详细信息。” (对应 'get_vulnerability_details' 工具)

LLM会使用MCP协议与此服务器通信,调用相应的工具,并将返回的结果(扫描状态、结果、漏洞信息等)呈现给您。

信息

分类

AI与计算