cognis-digital/nmapdiff

GitHub: cognis-digital/nmapdiff

对比两次 nmap XML 扫描结果以发现新增主机、端口和服务的网络资产变更检测工具。

Stars: 0 | Forks: 0

NMAPDIFF # NMAPDIFF ### 对比两次扫描以发现新的主机/端口/服务 [![PyPI](https://img.shields.io/pypi/v/cognis-nmapdiff.svg?color=6b46c1)](https://pypi.org/project/cognis-nmapdiff/) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/93d4fa2181054229.svg)](https://github.com/cognis-digital/nmapdiff/actions) [![License: COCL 1.0](https://img.shields.io/badge/License-COCL%201.0-2b6cb0.svg)](LICENSE) [![Suite](https://img.shields.io/badge/Cognis-Neural%20Suite-6b46c1.svg)](https://github.com/cognis-digital) *Cognis Neural Suite 的一部分。*
``` pip install cognis-nmapdiff nmapdiff scan . # → prioritized findings in seconds ``` ## 用法 — 逐步指南 `nmapdiff` 通过对比两次 nmap XML 扫描来发现新的主机/端口/服务,用于防御性的变更检测。控制台命令:`nmapdiff`。 1. **安装**: pipx install nmapdiff # 或者:pip install nmapdiff 2. **生成扫描结果**:使用 nmap 的 XML 输出(`-oX`),例如一份已存储的基线文件和一次全新的扫描: nmap -oX baseline.xml -sV 10.0.0.0/24 # 之前捕获的扫描 nmap -oX current.xml -sV 10.0.0.0/24 # 今天的扫描 3. **将基线文件与当前扫描进行对比**: nmapdiff diff baseline.xml current.xml 退出码 `0` = 无变更,`1` = 检测到变更,`2` = 解析/IO 错误。 4. **以 JSON 格式读取 diff 结果**,用于告警或工单系统: nmapdiff diff baseline.xml current.xml --format json | jq '.diff' 5. **定期运行或在 CI 中运行**,以便针对新的攻击面发出告警: nmapdiff diff baseline.xml current.xml || echo "自上次基线以来出现了新的主机/端口/服务 — 请进行调查" ## 目录 - [为什么选择 nmapdiff?](#why) · [功能](#features) · [快速开始](#quick-start) · [示例](#example) · [架构](#architecture) · [AI stack](#ai-stack) · [对比](#how-it-compares) · [集成](#integrations) · [随处安装](#install-anywhere) · [相关工具](#related) · [贡献](#contributing) ## 为什么选择 nmapdiff? 变更检测 `nmapdiff` 专注于单一用途、可脚本化且支持自托管:将其指向目标,以您工作流中已有的格式(table · JSON · SARIF)获取优先级排序的结果,在 CI 中将其作为门禁,并允许 agent 通过 MCP 驱动它。
↑ 回到顶部
## 功能 - ✅ 解析扫描 - ✅ 解析扫描文件 - ✅ 对比扫描结果 - ✅ 可在 Linux/macOS/Windows · Docker · devcontainer 上运行 - ✅ 提供 Python、JavaScript、Go 和 Rust 端口 (`ports/`)
↑ 回到顶部
## 快速开始 ``` pip install cognis-nmapdiff nmapdiff --version nmapdiff scan . # scan current project nmapdiff scan . --format json # machine-readable nmapdiff scan . --fail-on high # CI gate (non-zero exit) ```
↑ 回到顶部
## 示例 ``` $ nmapdiff scan . [HIGH ] NMA-001 example finding (./src/app.py) [MEDIUM ] NMA-002 another signal (./config.yaml) 2 findings · risk score 5 · 38ms ```
↑ 回到顶部
## 架构 ``` flowchart LR IN[target / manifest] --> P[nmapdiff
checks + rules] P --> OUT[findings (JSON / SARIF)] ```
↑ 回到顶部
## 从任何 AI stack 中使用 `nmapdiff` 与所有主流的 AI 使用方式保持互操作: - **MCP server** — `nmapdiff mcp` (Claude Desktop, Cursor, Cognis.Studio, [uncensored-fleet](https://github.com/cognis-digital/uncensored-fleet)) - **OpenAI-compatible / JSON** — 将 `nmapdiff scan . --format json` 通过管道传递给任何 agent 或 LLM - **LangChain · CrewAI · AutoGen · LlamaIndex** — 将 CLI/JSON 封装为一行代码调用的工具 - **CI / 脚本** — 为非 AI 流水线提供退出码 + SARIF
↑ 回到顶部
## 对比 | | **Cognis nmapdiff** | ndiff | |---|:---:|:---:| | 可自托管,无需账号 | ✅ | 视情况而定 | | 单一命令,零配置 | ✅ | ⚠️ | | 适用于 CI 的 JSON + SARIF | ✅ | 视情况而定 | | MCP 原生(AI agent) | ✅ | ❌ | | 多语言端口(JS/Go/Rust) | ✅ | ❌ | | 开源许可证 | ✅ COCL | 视情况而定 | *秉承 **ndiff** 的精神,以 Cognis 的方式重新构建。遗漏了致谢?欢迎提交 PR。*
↑ 回到顶部
## 集成 可接入您的技术栈:用于代码扫描的 **SARIF**、适用于任何场景的 **JSON**、面向 AI agent 的 **MCP server** (`nmapdiff mcp`),以及用于 SIEM/Slack/Jira 的 webhook 转发器。请参阅 [`docs/INTEGRATIONS.md`](docs/INTEGRATIONS.md)。
↑ 回到顶部
## 安装 — 各种方式,全平台支持 ``` pip install "git+https://github.com/cognis-digital/nmapdiff.git" # pip (works today) pipx install "git+https://github.com/cognis-digital/nmapdiff.git" # isolated CLI uv tool install "git+https://github.com/cognis-digital/nmapdiff.git" # uv pip install cognis-nmapdiff # PyPI (when published) docker run --rm ghcr.io/cognis-digital/nmapdiff:latest --help # Docker brew install cognis-digital/tap/nmapdiff # Homebrew tap curl -fsSL https://raw.githubusercontent.com/cognis-digital/nmapdiff/main/install.sh | sh ``` | Linux | macOS | Windows | Docker | 云平台 | |---|---|---|---|---| | `scripts/setup-linux.sh` | `scripts/setup-macos.sh` | `scripts/setup-windows.ps1` | `docker run ghcr.io/cognis-digital/nmapdiff` | [DEPLOY.md](docs/DEPLOY.md) (AWS/Azure/GCP/k8s) |
↑ 回到顶部
## 相关的 Cognis 工具 - [`portfan`](https://github.com/cognis-digital/portfan) — 将 nmap XML 汇总并对比为优先级排序的、可利用的发现 - [`subhunt`](https://github.com/cognis-digital/subhunt) — 聚合并对来自多个来源的子域名枚举结果进行去重 - [`dirsight`](https://github.com/cognis-digital/dirsight) — 将 web 内容发现工具(ffuf/gobuster)的输出分析为按优先级排序的 endpoint - [`jwtinspect`](https://github.com/cognis-digital/jwtinspect) — 解码 JWT 并检测 alg=none、弱密钥以及缺失的 claim - [`corsaudit`](https://github.com/cognis-digital/corsaudit) — 从 header 或配置中检测宽松/错误配置的 CORS - [`headerscan`](https://github.com/cognis-digital/headerscan) — 根据响应转储对 HTTP 安全 header(CSP/HSTS/XFO)进行 A-F 评级 **探索套件 →** [🗂️ 全部 170+ 件工具](https://github.com/cognis-digital/cognis-neural-suite) · [⭐ awesome-cognis](https://github.com/cognis-digital/awesome-cognis) · [🔗 cognis-sources](https://github.com/cognis-digital/cognis-sources) · [🤖 uncensored-fleet](https://github.com/cognis-digital/uncensored-fleet) · [🧠 engram](https://github.com/cognis-digital/engram)
↑ 回到顶部
## 互操作性 `{}` 与包含 300+ 工具的 Cognis 套件无缝组合 — 通过 JSON 输入/输出和共享的 OpenAI-compatible `/v1` 主干。请参阅 **[INTEROP.md](INTEROP.md)** 以获取 套件图谱、组合模式以及参考技术栈。 ## 许可证 源代码可见,基于 **Cognis Open Collaboration License (COCL) v1.0** — 可免费用于个人、内部评估、研究和教育用途;**商业/生产环境使用需要许可证** (licensing@cognis.digital)。请参阅 [LICENSE](LICENSE)。
Cognis Digital · Cognis Neural Suite 中 170+ 工具之一 · 让明天更美好,从今天开始
标签:DevSecOps, Nmap, 上游代理, 可视化界面, 差异分析, 插件系统, 数据可视化, 日志审计, 虚拟驱动器, 请求拦截, 逆向工具, 防御监控