(Network Mapper,网络映射器)是一款功能强大的免费开源工具,常用于网络发现和安全审计。无论是扫描大型网络还是对单个主机进行详尽侦察,Nmap 都因其灵活性和详尽性而成为渗透测试和网络管理员的必备工具。
核心功能速览
Nmap 通过发送特殊构造的数据包并分析响应来工作,其核心功能包括:
-
主机发现:确定网络上哪些主机是活跃的。
-
端口扫描:识别目标主机上开放的端口。
-
服务和版本识别:识别端口上运行的具体服务(如 HTTP、SSH)及其版本号。
-
操作系统识别:通过分析数据包响应的特征,推断目标主机的操作系统类型。
-
脚本引擎(NSE):Nmap 自带的脚本引擎,用于自动化执行多种任务,例如漏洞检测和配置错误检查。
基础使用方法
Nmap 是一款命令行工具,使用起来非常直观。
-
扫描单个 IP 地址
nmap 192.168.1.1
这会执行一个默认的 TCP SYN 扫描,快速探测目标主机上的上千个常用端口。
-
扫描一个 IP 段
nmap 192.168.1.1/24
这会扫描整个 C 类子网中的所有活跃主机。
-
扫描指定端口
nmap -p 80,443,8080 192.168.1.1
使用
-p
参数指定要扫描的端口,可以加快扫描速度。
高级选项
Nmap 的强大之处在于其丰富的命令行参数,通过组合不同的参数可以实现复杂的扫描任务。
参数 | 描述 | 示例 |
---|---|---|
-sS |
TCP SYN 扫描(半开式扫描),默认且最常用的扫描类型,速度快且隐蔽。 | nmap -sS 192.168.1.1 |
-sV |
服务及版本识别,用于获取端口上运行的服务的详细信息。 | nmap -sV 192.168.1.1 |
-O |
操作系统识别,用于推断目标主机的操作系统类型。 | nmap -O 192.168.1.1 |
-A |
综合扫描,等同于 -sV -O -sC ,包含了版本、操作系统识别和默认脚本扫描。 |
nmap -A 192.168.1.1 |
-sC |
默认脚本扫描,执行 Nmap 自带的常用脚本。 | nmap -sC 192.168.1.1 |
-Pn |
不进行 Ping 探测,直接对所有目标进行扫描,用于绕过防火墙的 ICMP 限制。 | nmap -Pn 192.168.1.1 |
-T<0-5> |
扫描速度控制,数字越大速度越快。-T4 是常用的快速扫描选项。 |
nmap -T4 192.168.1.1 |
-oA |
全格式输出,将结果同时保存为 .xml , .gnmap 和 .nmap 三种格式。 |
nmap -A 192.168.1.1 -oA scan_result |
常用命令组合
命令组合 | 解释 |
---|---|
nmap -A -T4 -Pn 192.168.1.1 |
快速综合侦察:-A 进行服务、系统和脚本的综合扫描,-T4 提高扫描速度,-Pn 确保绕过防火墙。 |
nmap --script "http-enum,http-vuln-cve2017-5638" -p 80 192.168.1.100 |
定向漏洞侦察:当你发现目标主机开放了 Web 服务后,可以使用 --script 参数加载特定的 NSE 脚本,进行更深层次的分析。 |
nmap -sS -p 1-1000 -T0 192.168.1.100 |
隐蔽性扫描:-sS 使用半开式扫描,隐蔽性强;-T0 将扫描速度降到最低,用于规避 IDS/IPS 的检测。 |