0xBugatti/AwesomeNmap
GitHub: 0xBugatti/AwesomeNmap
一个整合了 Nmap NSE 脚本、CVE 情报工具和自动化侦察流程的精选知识库,为安全从业者提供从扫描到报告的完整参考。
Stars: 6 | Forks: 2
## 📑 目录
- [概述](#-overview)
- [仓库结构](#-repository-structure)
- [核心 NSE 脚本更新](#-core-nse-script-updates)
- [替代方案:Vulscan 集成](#-alternative-vulscan-integration)
- [NSE 脚本合集](#-nse-script-collections)
- [CVE 搜索 CLI 工具](#-cve-search-cli-tools)
- [仪表盘与可视化](#-dashboard--visualization)
- [报告与通知](#-reporting--notifications)
## 🎯 概述
**Awesomenmap** 是一个知识库仓库,将最有价值的 Nmap NSE 脚本、CVE 搜索工具和扫描后报告流程集中到一个组织良好的参考中。安全从业者无需在数十个 GitHub 仓库和论坛帖子中搜寻,可以将本项目作为所有 Nmap 相关内容的权威索引和自动化中心。
该仓库有意保持轻量——结构化的 `README` 文件、共享资源和上游参考。第三方脚本从其原始来源拉取,并通过简单的同步过程保持更新。
| 能力 | 描述 |
|---|---|
| **脚本管理** | 从可信的上游来源拉取并更新最新的漏洞、默认账户和版本检测 NSE 脚本 |
| **CVE 情报** | 直接在命令行搜索已知 CVE 和漏洞利用,无需离开终端 |
| **自动化扫描** | 仪表盘驱动的工作流分配扫描目标,使用精选脚本集执行 Nmap,并生成结构化输出 |
| **丰富报告** | 为每次完成的扫描生成 HTML 扫描报告和兼容 Graphviz 的网络拓扑图 |
| **实时告警** | 将关键发现推送到 Telegram Bot 以获得即时可见性 |
## 📂 仓库结构
```
Awesomenmap/
│
├── README.md
├── LICENSE
├── .gitignore
│
├── scripts/
│ ├── nse/ # Curated NSE scripts
│ │ ├── vulners.nse # Vulners.com vulnerability detection
│ │ ├── nndefaccts.nse # Default account credential checker
│ │ ├── vicarius-nmap/ # Vicarius CVE mapping scripts
│ │ ├── vulscan/ # Vulscan alternative engine
│ │ ├── log4shell_nse.nse # Log4Shell (CVE-2021-44228) detector
│ │ ├── ms-exchange-version.nse # MS Exchange version enumeration
│ │ └── gitlab-version.nse # GitLab version enumeration
│ │
│ └── cli/ # CVE & exploit search tools
│ ├── getsploit/ # Vulners.com exploit downloader
│ └── search_vulns/ # Multi-source CVE searcher
│
└── visualize/
├── nmap-dashboard.xsl # XSLT stylesheet for HTML reports
└── nmap-formatter/ # Graphviz network topology generator
```
## 🔧 核心 NSE 脚本更新
这些脚本构成了漏洞检测工作流的支柱。通过从其官方上游仓库拉取来保持更新。
### 1. Vulners — 漏洞检测
查询 [Vulners.com](https://vulners.com/) API,将检测到的服务版本与综合漏洞数据库进行匹配。实时返回相关 CVE、CVSS 评分和可用的漏洞利用参考。
```
cd scripts/nse/
git clone https://github.com/vulnersCom/nmap-vulners.git
cp nmap-vulners/vulners.nse ./
```
```
nmap -sV --script vulners.nse --script-args vulnersdebug=1
```
### 2. Default Accounts — 凭证审计
使用广泛且定期更新的默认用户名/密码字典检查网络服务的默认或已知凭证。涵盖路由器、摄像头、IoT 设备、工业控制器和企业软件——在初始侦察期间非常有用,用于识别使用出厂默认认证的服务。
```
cd scripts/nse/
git clone https://github.com/nnposter/nndefaccts.git
cp nndefaccts/nndefaccts.nse ./
```
```
nmap -p 22,23,80,443,8080 --script nndefaccts.nse
```
### 3. Vicarius Nmap — CVE 映射
一种替代的 CVE 映射引擎,将检测到的软件版本与 Vicarius 漏洞数据库进行交叉引用。通过提供关于 CVE 覆盖范围的第二意见并揭示差异,补充 Vulners 脚本。对于检测在较不常见或小众软件包中的已知漏洞特别有效,这些软件包可能不会在大型数据库中立即得到覆盖。
```
cd scripts/nse/
git clone https://github.com/VicariusInc/vicarius-nmap.git
cp -r vicarius-nmap/scripts/* ./
```
```
nmap -sV --script vicarius-cve
```
## 🔄 替代方案:Vulscan 集成
一个独立的、支持离线的替代方案,用于替代依赖 API 的 Vulners 脚本。附带本地漏洞数据库,并可通过自定义 CSV/JSON 源进行扩展。针对其捆绑的数据库执行版本字符串匹配,使其成为隔离环境或执行期间互联网访问受限或不可取的扫描的理想选择。
```
cd scripts/nse/
git clone https://github.com/scipag/vulscan.git
```
```
nmap -sV --script=vulscan/vulscan.nse
```
## 📦 NSE 脚本合集
社区维护的合集,扩展了 Nmap 超越官方脚本库的检测能力。每个都经过质量和相关性审查——定期拉取最新版本以保持最新。
| 合集 | 来源 | 重点 |
|---|---|---|
| **nmap-extra-nse** | [sighook/nmap-extra-nse](https://github.com/sighook/nmap-extra-nse) | 尚未合并到官方 Nmap 发行版中的通用辅助脚本——自定义服务探测、暴力破解模块和侦察辅助工具 |
| **NSE_scripts** | [icarot/NSE_scripts](https://github.com/icarot/NSE_scripts/tree/master) | 专为 Web 应用程序审计和服务枚身定制的漏洞检测和信息收集脚本 |
| **Custom-Nse** | [ibrahmsql/Custom-Nse](https://github.com/ibrahmsql/Custom-Nse) | 针对特定漏洞、不常见协议和新兴威胁领域单独打造的 NSE 脚本 |
| **log4shell_nse** | [righel/log4shell_nse](https://github.com/righel/log4shell_nse) | 专用的 Log4Shell (CVE-2021-44228) 检测器,用于基于 Java 的服务——同时执行基于 Header 和基于 DNS 的验证 |
| **ms-exchange-version** | [righel/ms-exchange-version-nse](https://github.com/righel/ms-exchange-version-nse) | 精确的 Microsoft Exchange Server 版本指纹识别——对于评估 Patch Tuesday 合规性和 ProxyShell/ProxyLogon 暴露情况至关重要 |
| **gitlab-version** | [righel/gitlab-version-nse](https://github.com/righel/gitlab-version-nse) | GitLab 实例版本检测及关联 CVE 识别——有助于优先修复自托管 DevOps 基础设施 |
| **Official Nmap Scripts** | [nmap/nmap/scripts](https://github.com/nmap/nmap/tree/master/scripts) | 权威的上游仓库——务必确保您的本地脚本至少与此树一样新 |
## 🔎 CVE 搜索 CLI 工具
用于搜索 CVE 和漏洞利用的命令行工具,无需离开终端。它们集成到 Shell 脚本、CI 流水线和 Awesomenmap 自动化工作流中。
### GetSploit — Vulners.com 漏洞查找器
一个轻量级的 Python CLI,用于查询 Vulners.com 数据库以获取漏洞利用代码、shellcode 和概念验证实现。返回漏洞利用源代码的直接链接以及发布日期、漏洞利用平台和可靠性评级等元数据。
```
pip install getsploit
getsploit -s "Apache Struts 2"
getsploit -s CVE-2021-44228
```
### search_vulns — 多源 CVE 搜索
将来自多个漏洞数据库(NVD、ExploitDB、Vulners 等)的结果聚合到一个统一的、去重的输出中。当您需要全面了解特定产品的所有已知漏洞而无需手动检查每个数据库时特别有用。
```
git clone https://github.com/ra1nb0rn/search_vulns.git
cd search_vulns && pip install -r requirements.txt
python search_vulns.py -q "OpenSSH 7.2"
```
## 📊 仪表盘与可视化
### Nmap DID WHAT? — Nmap → Grafana 仪表盘
由 [HackerTarget](https://hackertarget.com/) 提供的轻量级两部分工具,可将原始 Nmap XML 扫描结果转换为可视化的、交互式的 **Grafana** 仪表盘。它由一个将扫描数据加载到 SQLite 的零依赖 Python 解析器和一个预配置了 13 个现成可视化面板的 Grafana Docker 容器组成——无需手动构建仪表盘。
**工作原理:**
```
┌──────────────┐ -oX ┌───────────────────┐ SQLite ┌──────────────────┐
│ Nmap │ ──────────────▶ │ nmap-to-sqlite.py │ ────────────────▶ │ Grafana Docker │
│ (scanner) │ XML output │ (Python parser) │ nmap_results.db │ (Dashboard) │
└──────────────┘ └───────────────────┘ └──────────────────┘
```
**从 Nmap XML 解析的数据:**
| 数据点 | 来源 |
|---|---|
| 主机 IP 和主机名 | `` / `` 元素 |
| OS 指纹识别 | `` 元素,回退到 `service_ostype` |
| 端口状态 (open/closed/filtered) | 每个主机的 `` |
| 服务名称、产品、版本 | `` 元素 (需要 `-sV`) |
| HTTP 页面标题 | Nmap `http-title` 脚本输出 (需要 `-sC`) |
| SSL 证书 CN 和颁发者 | Nmap `ssl-cert` 脚本输出 (需要 `-sC`) |
| 扫描元数据 | Nmap 版本、命令行、时间戳、耗时 |
**仪表盘面板(共 13 个):**
| 面板 | 类型 | 显示内容 |
|---|---|---|
| Hosts Up | Stat | 发现的存活主机总数 |
| Open Ports | Stat | 所有主机的开放端口总数 |
| Unique Ports | Stat | 发现开放的不同端口号 |
| Scans | Stat | 加载到数据库的扫描总数 |
| Operating Systems | Pie Chart | 发现主机中的操作系统分布 |
| Unidentified Services | Pie Chart | 服务未知的开放端口 |
| Open Ports Found | Bar Chart | 按频率排名的端口 |
| Live Hosts & Open Ports over Time | Time Series | 多次运行的扫描趋势 |
| Port Tested Per Second | Bar Gauge | 每台主机的扫描性能 |
| Identified Services | Table | 服务名称、产品、版本详情 |
| Open Services | Table | 所有带服务信息的开放端口 |
| Hosts | Table | 包含操作系统和端口计数的单主机细分 |
| Scans Loaded | Table | 每次导入扫描的元数据 |
**设置:**
```
# 1. Clone
git clone https://github.com/hackertarget/nmap-did-what.git
cd nmap-did-what
# 2. 使用 XML 输出运行您的 Nmap 扫描
nmap -sV -sC -O -oX scan_results.xml
# 3. 将 XML 解析为 SQLite(零外部 Python 依赖)
cd data/
python nmap-to-sqlite.py scan_results.xml
# → 创建 data/nmap_results.db
# 4. 通过 Docker 启动 Grafana 仪表板
cd ../grafana-docker/
docker-compose up -d
```
打开 `http://localhost:3000` — 登录 `admin`/`admin`。仪表盘自动配置了所有 13 个面板。
**多次扫描随时间积累**在同一个 SQLite 数据库中,因此 Grafana 的时间范围过滤器允许您比较扫描运行之间的趋势——非常适合跟踪网络攻击面在评估之间的演变。
## 📄 报告与通知
### 报告生成
扫描结果使用包含的 XSLT 样式表转换为精美、交互式的 HTML 报告——可与利益相关者共享或存档以符合合规目的。
- 包含总主机数、开放端口和严重性分布的执行摘要
- 包含服务 Banner 和检测到的漏洞的每主机详细发现
- 带有 CVSS 评分和漏洞利用可用性指标的 CVE 参考链接
- 可排序和过滤的表格,用于高效分类
```
xsltproc -o scan_out.html nmap-dashboard.xsl outscan.xml
```
### Graphviz 网络图
原始 Nmap XML 输出转换为 Graphviz DOT 文件,渲染为网络拓扑图——使哪些主机互联、哪些服务暴露以及漏洞如何在目标网络中聚类一目了然。
```
./nmap-formatter dot ../../out-ex.xml --file ../../out-.dot --html-dark-mode
cat ../../out-.dot | dot -Tsvg > diagram.svg
```
### Telegram Bot 通知
```
telegram:
bot_token: "YOUR_BOT_TOKEN"
chat_id: "YOUR_CHAT_ID"
severity_threshold: "high" # Only notify for high/critical
include_cve_links: true
report_base_url: "https://your-dashboard.example.com/reports/"
```
标签:CTI, CVE情报, Docker, Grafana, Lua, Nmap, NSE脚本, Python, rizin, Ruby, 安全防御评估, 密码管理, 应用安全, 插件系统, 数据展示, 数据统计, 无后门, 无线安全, 时间线生成, 知识库, 端口扫描, 红队, 网络安全, 网络安全审计, 自动化侦察, 虚拟驱动器, 请求拦截, 逆向工具, 隐私保护