项目简介
这是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在为大型语言模型(如支持MCP的AI助手)提供与 Tenable Nessus 漏洞扫描器交互的能力。它允许AI通过标准化的协议执行漏洞扫描、管理扫描任务和分析漏洞信息。
主要功能点
- 漏洞扫描: 启动和监控针对特定目标的漏洞扫描。
- 扫描管理: 列出所有扫描任务、跟踪扫描状态、获取已完成扫描的结果。
- 漏洞分析: 按关键词搜索漏洞,或根据漏洞ID获取详细信息。
- 模拟模式: 提供一个无需真实Nessus API密钥即可测试服务器功能的完整模拟模式。
安装步骤
- 准备环境: 确保您的系统已安装 Node.js (版本 16 或更高) 和 npm。
- 克隆仓库: 使用 Git 克隆本项目到本地目录。
git clone https://github.com/Cyreslab-AI/nessus-mcp-server.git cd nessus-mcp-server - 安装依赖: 在项目根目录执行以下命令安装所需的依赖包。
npm install - 构建项目: 运行构建命令编译 TypeScript 代码。
构建完成后,可执行文件将在 'build/index.js' 生成。npm run build
服务器配置
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与计算