Nmap 核心功能与关键参数
三、核心功能与关键参数
Nmap 的参数很多,按功能分组记忆更容易掌握。
| 功能组 | 参数 | 说明 |
|---|---|---|
| 主机发现 | -sn | 只做主机发现,不扫端口 |
| 主机发现 | -Pn | 跳过主机发现,假定目标在线 |
| 主机发现 | -PR | ARP 探测,仅限本地网段,最可靠 |
| 扫描类型 | -sS | SYN 半开扫描,速度快,需要权限 |
| 扫描类型 | -sT | Connect 全连接扫描,无需特权 |
| 扫描类型 | -sU | UDP 扫描,慢 |
| 扫描类型 | -sV | 服务与版本探测 |
| 扫描类型 | -O | 操作系统探测 |
| 扫描类型 | -A | 综合探测,等价于开启多项探测能力 |
| 端口范围 | -p | 指定端口,如 -p 80,443 或 -p 1-1024 |
| 端口范围 | -p- | 扫描全部端口,耗时显著增加 |
| 端口范围 | --top-ports N | 扫描最常见的 N 个端口 |
| 时序控制 | -T0 到 -T5 | 数字越大越快,也越容易被检测 |
| 时序控制 | --min-rate / --max-rate | 限制每秒发包数 |
| 时序控制 | --max-retries | 限制重传次数 |
| 脚本引擎 | --script | 指定脚本或脚本分类 |
| 脚本引擎 | --script-args | 向脚本传参 |
| 输出 | -oN / -oX / -oA | 普通、XML、全部格式 |
| 输出 | --open | 只显示开放的端口,输出更精简 |
| 输出 | --reason | 显示判定依据,便于复核 |
NSE 脚本的分类需要重点理解,因为它关系到扫描的侵入性。default 类在指定 -sC 或 -A 时执行,整体比较温和;safe 类是设计上不会影响目标正常运行的脚本;discovery 类用于信息收集;auth 类用于探测认证机制;brute 类会做口令尝试,属于高侵入性;vuln 类会主动验证漏洞,可能造成影响;intrusive 类明确标记为有侵入性。生产环境的合规扫描应当只使用 safe 与 discovery 类脚本,把 brute 与 intrusive 类的使用单独报批。
时序模板的选择也有讲究。-T4 是大多数内网扫描的常用档位,速度较快且相对稳定;-T5 更快但在丢包环境下容易得到不准确的结果;-T2 与 -T1 用于对目标极为敏感的场景。在跨广域网的扫描中,过快的速率会导致丢包,从而把开放的端口误判为 filtered,因此需要根据结果质量调整而不是一味求快。

