MCP-Nmap(或可译为“MCP网络映射工具”,具体翻译可能根据上下文有所调整,但“MCP-Nmap”本身通常作为专有名词使用)
模型上下文协议服务器,该服务器为AI助手提供了一组经过精心挑选的Nmap漏洞扫描功能。服务器封装了 nmap 带有防护栏的命令行界面(CLI),将XML输出解析为结构化的JSON,并总结最重要的发现,以便代理能够推理出主机加固步骤。
先决条件
- Node.js 20多个版本(或“20+版本的Node.js”)
nmap主机路径上可用的CLI(版本7.94或更高)
入门指南/开始使用
npm install
npm run build
npm start服务器通过标准输入输出(stdio)进行通信,使其与MCP(可能是指某种客户端协议或框架)感知的客户端兼容。使用 npm run dev 在开发过程中直接从TypeScript源代码运行。
默认情况下,扫描历史会持久保存至 data/scans.sqlite3通过设置覆盖位置 MCP_NMAP_DB_PATH=/custom/path.sqlite3 在启动服务器之前。
可用工具
nmap_list_profiles列出支持的扫描配置文件和管控措施。nmap_run_scan对已批准的目标执行经过验证的Nmap配置文件。nmap_list_scans检查最近的扫描及其状态。nmap_get_scan_result检索之前扫描的结构化输出和摘要。
扫描配置文件
服务器提供了五个经过精心配置的扫描配置文件,每个配置文件都针对不同的安全评估场景进行了优化:
1. 快速发现(fast-discovery)
目的: 快速主机发现和常用端口扫描 Nmap 参数: -T4 -F --min-rate 300 最大目标数: 32个主机 所需权限: 不
执行快速网络侦察以识别活跃主机和常见开放端口。使用激进的定时设置(T4)和快速扫描模式(-F)以获得快速反馈。非常适合初步网络映射和大型子网扫描。
2. 服务与脚本检测(service-detect)
目的: 详细的服务识别和漏洞枚举 Nmap 参数: -sV -sC -T4 最大目标数量: 8台主机 所需权限: 不
检测运行中的服务及其版本信息(-sV),并执行默认的NSE脚本(-sC)以收集有关服务、配置和潜在漏洞的更多详细信息。最适合对已知主机进行全面的服务配置分析。
3. 操作系统指纹识别(os-detect)
目的: 操作系统识别与版本检测 Nmap 参数: -O -T4 --osscan-limit 最大目标数量: 4台主机 所需权限: 是(以root/sudo身份)
使用TCP/IP栈指纹识别操作系统及其版本 --osscan-limit 该标志将操作系统检测限制为至少有一个开放端口和一个关闭端口的主机,以提高准确性。需要提升的权限。
4. 漏洞扫描(vuln-scan)
目的: 使用NSE脚本进行自动化漏洞检测 Nmap 参数: -sV -sC --script vuln -T4 最大目标数: 4个主机 所需权限: 不
运行来自NSE(Nmap Scripting Engine,Nmap脚本引擎)漏洞类别中的全面漏洞检测脚本。识别已知的CVE(Common Vulnerability and Exposure,通用漏洞和披露)漏洞、配置错误以及安全弱点。将服务检测与针对特定漏洞的检查相结合,以进行全面的安全评估。
5. 掠夺检测(exploit-scan)
目的: 检测可被主动利用的漏洞 Nmap 参数: -sV -sC --script exploit -T4 最大目标数: 2个主机 所需权限: 不
⚠️ 使用时务必极度小心! 执行NSE(Nmap Scripting Engine)漏洞利用脚本,这些脚本试图主动利用漏洞。仅在您拥有明确授权的系统上使用。限制为最多2个目标,以防止意外进行大规模测试。
扫描选项
所有扫描配置文件均支持额外的自定义选项:
- 港口要扫描的特定端口(例如。,
"22,80,443,8000-8100") - 顶级端口仅扫描最常见的N个端口(例如。,
1000) - 时间模板覆盖定时(
T0-T5(默认值根据配置文件而异) - 将主机视为在线状态跳过ping检测,将所有主机视为在线(
-Pn) - 积极服务检测启用密集服务检测
--version-all)
扫描结果
扫描结果包括:
- 原始的Nmap标准输出/标准错误。
- 解析了包含版本信息的主机/端口/服务数据。
- 基于脚本输出启发式方法,突出了关键性和信息性的发现。
- 结构化的JSON输出,便于集成和分析。
测试
npm testVitest 以线程池模式运行,以避免在受限环境中受到 fork 的限制。示例 Nmap XML 测试数据确保解析器和汇总器在测试期间不执行实际命令行界面(CLI)的情况下保持确定性。
集成测试将模拟的MCP工具调用与基于SQLite的服务相结合,以确保整个系统栈按预期运行。
安全须知
- 仅暴露了经过验证的Nmap标志子集;带有任意参数的请求将被拒绝。
- 用户在扫描前必须确认他们拥有目标资产。
- 长时间运行的扫描在配置的超时时间(默认5分钟)后将自动终止。
- 在AI层可以对敏感细节进行编辑——在公开结果前,请审查下游处理策略。
