数量
7.991 新增了 8 个 DICOM 脚本,NSE 脚本达到 620 个。7.96 版本曾达到 612 个。
版本 7.991
主机发现、TCP 与 UDP 端口状态、服务版本、操作系统推测,以及 620 个 NSE 脚本。Zenmap 在窗口中显示同样的结果。Ncat、Ndiff 和 Nping 随套件一起提供。
下面的说明使用程序中的参数和界面名称。请只扫描你获准测试的系统。安装问题见故障排查指南。
主机
ping 扫描(-sn)询问哪些地址在线,并跳过端口列表。在本地以太网网段上,Nmap 可以使用 ARP。检查经过路由的网络时,它也可以使用 ICMP echo、TCP 和 UDP 探测。
这张截图中的深入扫描先做 ping,然后对 1,000 个端口做 SYN 扫描,并加载 NSE。Zenmap 显示的命令是 nmap -T4 -A -v -PE -PS22,25,80 -PA21,23,80,3389。-A 会开启操作系统检测、版本检测、默认脚本和 traceroute。
如果在 Windows 上扫描你自己的电脑失败,常见原因是缺少 Npcap 驱动。参见Windows 上的 localhost 扫描。
端口
端口状态可以是开放、关闭、被过滤、未被过滤、开放|被过滤,或关闭|被过滤。开放表示应用程序接受了探测。关闭表示主机有应答且没有程序在监听。被过滤表示过滤器丢弃了探测,因此 Nmap 无法判断。
| 技术 | 参数 | 你能得知什么 |
|---|---|---|
| TCP SYN | -sS | TCP 端口是否接受握手的开始。这是允许原始数据包时的常用扫描。 |
| TCP connect | -sT | 通过操作系统套接字 API 问同样的问题。它不需要 Npcap 也能工作。在 Windows 上,7.96 不再把许多关闭端口标成被过滤。 |
| UDP | -sU | UDP 端口是否有响应。它比 TCP 慢。当 DNS、SNMP 或类似服务重要时使用它。 |
| TCP ACK | -sA | 端口看起来是否未被过滤。它本身不能告诉你服务是否开放。 |
| 仅 ping | -sn | 哪些主机在线,不做端口扫描。 |
| 跳过发现 | -Pn | 把每个目标都视为在线。当 ICMP 被阻断而你已经知道主机存在时有用。 |
更多探测类型写在随 Nmap 安装的手册页中。本页不讲解防火墙规避。
服务
-sV 会与开放端口通信,并在横幅被识别时打印服务名称和版本。在截图中,22 端口是带有 OpenSSH 字符串的 ssh,53 端口是带有 ISC BIND 的 domain,80 端口是带有 Apache httpd 的 http。25 端口和 113 端口为关闭。
-O 把应答与指纹库比较。截图说明操作系统匹配不够理想,因为没有收到 UDP 应答。这是正常结果,不是安装失败。Nmap 7.99 新增了一大批 IPv4 和 IPv6 操作系统指纹,并更新了服务指纹。
--version-light 是此处所示快速扫描增强配置所使用的较轻量版本探测。
脚本
Nmap Scripting Engine 针对你选择的服务运行 Lua 脚本。脚本分属 default、discovery、auth 和 vuln 等类别。你可以运行默认集合、一个类别或一个脚本。-A 包含默认集合。
7.991 新增了 8 个 DICOM 脚本,NSE 脚本达到 620 个。7.96 版本曾达到 612 个。
脚本线程如果运行超过 5 秒且不让出执行,例如没有套接字调用,就会被终止。
超过 400 MB 的分配会抛出错误。项目表示这些限制以后可能会改变。
请在你获准测试的主机上使用 NSE。脚本可以登录、枚举或触碰服务,所以添加之前请先阅读它的名称。
图形界面
Zenmap 是官方界面。目标框、配置菜单和命令行位于窗口顶部。标签页为 Nmap 输出、端口 / 主机、拓扑、主机详情和扫描。截图中的配置包括快速扫描、快速扫描增强和深入扫描。按下 Scan 会运行 Command 字段中的命令,因此你可以先阅读它。
7.96 在 Profile 下增加了深色模式,菜单项为 Toggle Dark Mode。7.991 修复了已保存命令含有百分号时配置编辑器崩溃的问题,以及 KeyError: 'vl_6_logo' 崩溃和配置编辑器中的 DuplicateSectionError。如果较旧的 Zenmap 仍然会关闭,请更新并阅读 Zenmap 指南。
安装程序
Windows 安装程序是 Nullsoft 安装包。它会询问文件夹以及要保留哪些部分:Nmap 核心文件、PATH 注册、数据包驱动、Zenmap、Ncat 和 Ndiff。Nping 也是套件的一部分。
这张截图比较旧。它仍列出 WinPcap。当前安装程序改为安装 Npcap。不要在 7.991 上寻找 WinPcap 复选框。文件大小和 SHA-256 位于下载页面。
套件的其余部分
Ncat 在网络上读写数据,并且可以使用 TLS。它是杀毒产品最常标记的工具,因为它可以把程序接到连接上。7.991 修复了 Ncat 的 HTTP 代理代码在 connect 和 listen 两种模式下消耗内存并挂起的问题。listen 模式不再向整个进程组发送终止信号。在 Windows 上,Ncat 在读取 stdin 时大约 2 分钟后退出的缺陷也已修复。
比较两次扫描结果,从而看出发生变化的主机或端口。7.991 修复了在 Python 3.12 及更新版本上的 make check-ndiff。
生成数据包并显示应答。--rate 选项拒绝高于每秒 1,000 个数据包的速率,因为 Nsock 计时器以毫秒为单位。如果需要取消上限,请使用 --delay 0。在没有 Npcap 的 Windows 上,Nping 可以回退到 TCP connect 模式。
速度
模板改变探测发出的速度。在生产局域网中,更快并不总是更好。
偏执与隐秘。非常慢。资产清点很少需要它们。
礼貌。当你不能挤占链路时,这是更从容的选择。
正常。不传入 -T 时的默认值。
激进。截图中的快速扫描和深入扫描配置使用 -T4。
疯狂。容易触发监控,也容易失去准确性。把它留在实验室。
文件
你在 Nmap 输出标签页中看到的文本。-oN 把它写入文件。
-oX 是包括 Ndiff 在内的其他工具所期望的格式。
-oG 是便于快速搜索的单行风格。XML 是更好的存档格式。
-oA 从一次扫描写出普通、XML 和可 grep 文件。7.991 还让 --stats-every 在没有终端时与 --noninteractive 一起打印进度。