nmap在实际工作中常用的命令
一、主机发现(存活探测)
| 命令 |
注释 |
nmap -sn 192.168.1.0/24 |
Ping 扫描,探测网段内哪些主机在线(不扫描端口) |
nmap -Pn 192.168.1.1 |
跳过主机发现,将所有目标视为在线(适用于防火墙拦截 ping 的情况) |
nmap -PS22,80,443 192.168.1.1 |
TCP SYN Ping,探测指定端口是否响应 |
nmap -PA3389 192.168.1.1 |
TCP ACK Ping,常用于绕过无状态防火墙 |
nmap -PR 192.168.1.1 |
ARP Ping,局域网内最快速、最准确的主机发现 |
nmap -n -sn 192.168.1.0/24 |
不进行反向域名解析,加快扫描速度 |
nmap -sL 192.168.1.0/24 |
列表扫描,只列出目标 IP,不发送探测包 |
二、端口扫描
| 命令 |
注释 |
nmap 192.168.1.1 |
默认扫描,扫描 1000+ 常用 TCP 端口 |
nmap -p 80,443 192.168.1.1 |
扫描指定端口(单个或逗号分隔) |
nmap -p 1-1000 192.168.1.1 |
扫描端口范围 |
nmap -p U:53,T:80,443 192.168.1.1 |
同时扫描 UDP 53 和 TCP 80、443 |
nmap -F 192.168.1.1 |
快速扫描(仅扫描 services 文件中的前 100 个端口) |
nmap --top-ports 100 192.168.1.1 |
扫描最常用的 100 个端口 |
nmap -sS 192.168.1.1 |
TCP SYN 半开扫描(默认,需 root 权限,速度快且隐蔽) |
nmap -sT 192.168.1.1 |
TCP Connect 扫描(无需 root,但易被记录) |
nmap -sU 192.168.1.1 |
UDP 扫描(常用于 DNS、SNMP、DHCP 等服务) |
nmap -sN / -sF / -sX 192.168.1.1 |
NULL/FIN/Xmas 扫描,用于绕过部分无状态防火墙 |
nmap -sA 192.168.1.1 |
TCP ACK 扫描,探测防火墙规则(区分有状态/无状态) |
三、版本探测与操作系统识别
| 命令 |
注释 |
nmap -sV 192.168.1.1 |
服务版本探测(识别端口上运行的服务及版本) |
nmap -O 192.168.1.1 |
操作系统探测(需 root,通过 TCP/IP 栈指纹识别) |
nmap -A 192.168.1.1 |
全面扫描(启用 OS 检测、版本检测、脚本扫描、路由追踪) |
nmap -sV --version-light 192.168.1.1 |
轻量级版本探测(强度 2,速度更快) |
nmap -sV --version-intensity 8 192.168.1.1 |
调整版本探测强度(1~9,数值越高越准确但越慢) |
nmap -O --osscan-guess 192.168.1.1 |
推测操作系统,输出最接近的匹配 |
四、脚本扫描(NSE)
| 命令 |
注释 |
nmap --script default 192.168.1.1 |
运行默认脚本集(安全、常见服务检测) |
nmap --script vuln 192.168.1.1 |
运行漏洞检测脚本 |
nmap --script brute -p 21,22,3306 192.168.1.1 |
对指定端口进行暴力破解(如 FTP、SSH、MySQL) |
nmap -p 445 --script smb-vuln-* 192.168.1.1 |
检测 SMB 相关已知漏洞(如 EternalBlue) |
nmap -p 80 --script http-headers 192.168.1.1 |
获取 HTTP 响应头 |
nmap -p 443 --script ssl-enum-ciphers 192.168.1.1 |
枚举 SSL/TLS 支持的加密套件 |
nmap --script dns-brute domain.com |
对域名进行 DNS 子域名暴力枚举 |
nmap --script whois-domain domain.com |
查询域名的 WHOIS 信息 |
五、防火墙/IDS 逃逸
| 命令 |
注释 |
nmap -f 192.168.1.1 |
将 IP 包分段,绕过简单包过滤器 |
nmap -D RND:10 192.168.1.1 |
随机生成 10 个诱饵 IP 进行欺骗扫描 |
nmap -D 192.168.1.1,192.168.1.2,ME 192.168.1.3 |
手动指定诱饵 IP,ME 表示真实 IP |
nmap --source-port 53 192.168.1.1 |
源端口欺骗(使用 53 端口发送探测包) |
nmap --spoof-mac Cisco 192.168.1.1 |
MAC 地址欺骗(使用 Cisco 厂商前缀) |
nmap -T2 192.168.1.1 |
降低扫描速度(T0-T5,T2 较慢但更谨慎) |
nmap --max-scan-delay 1s 192.168.1.1 |
设置探测包发送间隔,避免触发阈值检测 |
六、性能与时间控制
| 命令 |
注释 |
nmap -T4 192.168.1.0/24 |
激进时间模板(适合内网或高速网络) |
nmap -T5 192.168.1.1 |
疯狂模式(极快但可能丢包,准确性下降) |
nmap --min-hostgroup 50 --max-hostgroup 200 192.168.1.0/24 |
控制并行扫描的主机组大小,提高效率 |
nmap --host-timeout 10m 192.168.1.1 |
单个主机扫描超时 10 分钟,跳过慢速主机 |
nmap --min-parallelism 10 192.168.1.1 |
最小并行探测数,提高扫描速度 |
七、输出与日志
| 命令 |
注释 |
nmap -oN result.txt 192.168.1.1 |
标准格式输出到文件 |
nmap -oX result.xml 192.168.1.1 |
XML 格式输出(便于程序解析) |
nmap -oG result.gnmap 192.168.1.1 |
Grep 格式输出(便于 grep/awk 处理) |
nmap -oA result 192.168.1.1 |
同时输出三种格式(.nmap, .xml, .gnmap) |
nmap -v -d 192.168.1.1 |
提高详细程度(-v 增加信息,-d 开启调试) |
nmap --packet-trace -p 20-30 192.168.1.1 |
跟踪发送和接收的每个报文,用于调试 |
八、实用组合示例
| 命令 |
注释 |
nmap -A -T4 192.168.1.1 |
常用全面扫描(OS + 版本 + 脚本 + 路由) |
nmap -sS -sU -p- -T4 192.168.1.1 |
全端口 TCP SYN + UDP 扫描(非常耗时) |
nmap -Pn -p 80,443 --script vuln 192.168.1.1 |
跳过 ping,仅扫描 Web 端口并运行漏洞脚本 |
nmap -sn 192.168.1.0/24 -oA ips |
扫描在线主机并保存结果到文件 |
nmap -sV -O -T4 --osscan-guess 192.168.1.1 |
快速探测服务版本和操作系统(推测模式) |