NMAP命令全集
Nmap 命令选项速查,按官方手册分类整理。
一、目标规格(Target Specification)
{target specification}直接指定目标,支持主机名、IP、网段。示例:scanme.nmap.org、microsoft.com/24、192.168.0.1、10.0.0-255.1-254-iL <inputfilename>从文件读取目标列表-iR <num hosts>随机生成指定数量的目标--exclude <host1[,host2],...>排除指定主机或网段--excludefile <exclude_file>从文件读取排除列表
二、主机发现(Host Discovery)
-sL列表扫描(仅列出目标,不发包)-snPing 扫描(禁用端口扫描)-Pn跳过主机发现,将所有主机视为在线-PS/PA/PU/PY[portlist]TCP SYN / TCP ACK / UDP / SCTP 发现探测-PE/PP/PMICMP 回显 / 时间戳 / 网络掩码请求探测-PO[protocol list]IP 协议 Ping-n从不进行 DNS 解析-R总是进行 DNS 解析(默认:有时解析)--dns-servers <serv1[,serv2],...>指定自定义 DNS 服务器--system-dns使用操作系统 DNS 解析器--traceroute追踪到每个主机的路由跳点
三、扫描技术(Scan Techniques)
-sSTCP SYN 扫描(半开扫描)-sTTCP Connect() 扫描-sATCP ACK 扫描-sWTCP 窗口扫描-sMTCP Maimon 扫描-sUUDP 扫描-sNTCP Null 扫描-sFTCP FIN 扫描-sXTCP Xmas 扫描--scanflags <flags>自定义 TCP 扫描标志位-sI <zombie host[:probeport]>空闲扫描(Idle Scan)-sYSCTP INIT 扫描-sZSCTP COOKIE-ECHO 扫描-sOIP 协议扫描-b <FTP relay host>FTP 弹跳扫描
四、端口规格与扫描顺序(Port Specification and Scan Order)
-p <port ranges>仅扫描指定端口。示例:-p22、-p1-65535、-p U:53,111,137,T:21-25,80,139,8080,S:9--exclude-ports <port ranges>排除指定端口-F快速模式(扫描比默认更少的端口)-r顺序扫描端口(不随机化)--top-ports <number>扫描最常用的 number 个端口--port-ratio <ratio>扫描出现频率高于 ratio 的端口
五、服务/版本检测(Service/Version Detection)
-sV探测开放端口的服务/版本信息--version-intensity <level>设置探测强度(0~9,0 最轻,9 最全)--version-light限制为最可能的探测(强度 2)--version-all尝试每一个探测(强度 9)--version-trace显示详细版本扫描活动(调试)
六、脚本扫描(Script Scan)
-sC等价于--script=default--script=<Lua scripts>指定脚本(目录、文件或类别,逗号分隔)--script-args=<n1=v1,[n2=v2,...]>为脚本提供参数--script-args-file=filename从文件读取 NSE 脚本参数--script-trace显示所有收发数据--script-updatedb更新脚本数据库--script-help=<Lua scripts>显示脚本帮助信息
七、操作系统检测(OS Detection)
-O启用操作系统检测--osscan-limit将 OS 检测限制在有希望的目标上--osscan-guess更积极地猜测操作系统
八、时间和性能(Timing and Performance)
时间参数可带单位:ms(毫秒)、s(秒)、m(分钟)、h(小时)。
-T<0-5>设置时间模板(数字越大越快)--min-hostgroup <size>/--max-hostgroup <size>并行主机扫描组大小--min-parallelism <numprobes>/--max-parallelism <numprobes>探测并行度--min-rtt-timeout <time>/--max-rtt-timeout <time>/--initial-rtt-timeout <time>RTT 超时设置--max-retries <tries>限制端口扫描探测的重传次数--host-timeout <time>超过该时间放弃目标--scan-delay <time>/--max-scan-delay <time>探测之间的延迟--min-rate <number>每秒至少发送 number 个包--max-rate <number>每秒最多发送 number 个包
九、防火墙/IDS 逃避与欺骗(Evasion and Spoofing)
-f分片发送数据包--mtu <val>使用指定的 MTU 进行分片-D <decoy1,decoy2[,ME],...>使用诱饵隐藏扫描源-S <IP_Address>伪造源地址-e <iface>使用指定网络接口-g/--source-port <portnum>使用指定源端口--proxies <url1,[url2],...>通过 HTTP/SOCKS4 代理中继连接--data <hex string>向发送的包附加自定义十六进制负载--data-string <string>向发送的包附加自定义 ASCII 字符串--data-length <num>向发送的包附加随机数据--ip-options <options>发送带有指定 IP 选项的包--ttl <val>设置 IP 生存时间(TTL)--spoof-mac <mac address/prefix/vendor name>伪造 MAC 地址--badsum发送带有错误 TCP/UDP/SCTP 校验和的包
十、输出(Output)
-oN <file>正常格式输出-oX <file>XML 格式输出-oS <file>脚本小子格式输出-oG <file>Grepable 格式输出-oA <basename>同时输出三种主要格式(正常、XML、Grepable)-v提高详细程度(-vv或更多可进一步增加)-d提高调试级别(-dd或更多)--reason显示端口处于特定状态的原因--open仅显示开放(或可能开放)的端口--packet-trace显示所有发送和接收的包--iflist打印主机接口和路由(调试用)--append-output追加到输出文件而不是覆盖--resume <filename>恢复中断的扫描--noninteractive禁止运行时键盘交互--stylesheet <path/URL>将 XML 输出转换为 HTML 的 XSL 样式表--webxml引用 Nmap.Org 的样式表(更便携的 XML)--no-stylesheet不在 XML 输出中关联 XSL 样式表
十一、杂项选项(Miscellaneous)
-6启用 IPv6 扫描-A启用 OS 检测、版本检测、脚本扫描和路由追踪--datadir <dirname>指定自定义 Nmap 数据文件位置--send-eth使用原始以太网帧发送--send-ip使用原始 IP 包发送--privileged假定用户拥有完全特权--unprivileged假定用户缺少原始套接字权限-V打印版本号-h打印本帮助信息
十二、常用示例
nmap -v -A scanme.nmap.org
nmap -v -sn 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -Pn -p 80