# 用法:nmap [扫描类型] [选项] {目标规范}
# 目标格式
可以传递主机名、IP 地址、网络等
例如:scanme.nmap.org, microsoft.com/24, 192.168.0.1, 10.0.0-255.1-254
-iL <inputfilename>: 从 hosts/networks 列表中输入
-iR <num hosts>: 选择随机目标
--exclude <host1[,host2][,host3],...>: 排除 hosts/networks
--excludefile <exclude_file>: 排除文件中的列表
# 主机发现
-sL: List Scan - 简单地列出目标去扫描
-sP: Ping Scan - 只确定主机是否在线
-P0: 将所有主机视为在线 - 跳过主机发现
-PS/PA/PU [portlist]: 对给定端口的 TCP SYN/ACK 或 UDP 发现探测
-PE/PP/PM: ICMP 回显、时间戳和网络掩码请求发现探测
-n/-R: 从不做 DNS 解析/总是解析 [默认:有时解析]
# 扫描技术
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
-sN/sF/sX: TCP Null、FIN 和 Xmas 扫描
--scanflags <flags>: 自定义 TCP 扫描标志
-sI <zombie host[:probeport]>: 空闲扫描
-sO: IP 端口扫描
-b <ftp relay host>: FTP bounce scan
# 端口格式和扫描顺序
-p <port ranges>: 仅扫描给定端口
Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
-F: Fast - 仅扫描 nmap-services 文件中列出的端口
-r: 连续扫描端口 - 不随机
# 服务/版本检测
-sV: 探测开放端口以确定服务/版本信息
--version-light: 限制最有可能的探针以加快识别速度
--version-all: 尝试每个探针进行版本检测
--version-trace: 显示详细的版本扫描活动(用于调试)
# 操作系统检测
-O: 启用操作系统检测
--osscan-limit: 将操作系统检测限制在有希望的目标上
--osscan-guess: 更积极地猜测操作系统
# 时间和性能
-T[0-6]: 设置时序模板(越高越快)
--min-hostgroup/max-hostgroup <msec>: 并行主机扫描组大小
--min-parallelism/max-parallelism <msec>: 探针并行化
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msec>: 指定探测往返时间
--host-timeout <msec>: Give up on target after this long
--scan-delay/--max-scan-delay <msec>: 调整探针之间的延迟
# 防火墙/IDS 逃避和欺骗
-f; --mtu <val>: 分段数据包 (optionally w/given MTU)
-D <decoy1,decoy2[,ME],...>: 用诱饵掩盖扫描
-S <IP_Address>: 欺骗源地址
-e <iface>: 使用指定接口
-g/--source-port <portnum>: 使用给定的端口号
--data-length <num>: 将随机数据附加到发送的数据包中
--ttl <val>: 设置 IP 生存时间字段
--spoof-mac <mac address, prefix, or vendor name>: 欺骗您的 MAC 地址
# 输出
-oN/-oX/-oS/-oG <file>: 将 normal、XML、s|<rIpt kIddi3 和 Grepable 格式的扫描结果分别输出到给定的文件名
-oA <basename>: 一次输出三种主要格式
-v: 增加详细程度(使用两次以获得更好的效果)
-d[level]: 设置或增加调试级别(最多 9 是有意义的)
--packet-trace: 显示所有发送和接收的数据包
--iflist: 打印主机接口和路由(用于调试)
--append-output: 附加到而不是破坏指定的输出文件
--resume <filename>: 恢复中止的扫描
--stylesheet <path/URL>: 用于将 XML 输出转换为 HTML 的 XSL 样式表
--no-stylesheet: 防止 Nmap 将 XSL 样式表与 XML 输出相关联
# 其它选项
-6: 启用 IPv6 扫描
-A: 启用操作系统检测和版本检测
--datadir <dirname>: 指定自定义 Nmap 数据文件位置
--send-eth/--send-ip: 使用原始以太网帧或 IP 数据包发送数据包
--privileged: 假设用户拥有完全特权
-V: 打印版本号
-h: 打印此帮助摘要页
# 示例
nmap -v -A scanme.nmap.org
nmap -v -sP 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -P0 -p 80