目标规范:
可以通过主机名,IP地址,网络等
例:scanme.nmap.org, dream4.org/24, 192.168.0.1; 10.0.0-255.1-254
-iL <inputfilename>: 从指定文件获取主机或网络
-iR <num hosts>: 随机选择主机,(0 不限制扫描主机数)
--exclude <host1[,host2][,host3],...>: 排除指定主机或网络
--excludefile <exclude_file>: 从指定文件获取被排除的主机或网络
主机发现:
-sL: 列表扫描- 简单列出被扫描的目标(不发送任何报文至目标主机)
-sP: Ping 扫描- 仅仅进行ping扫描来发现目标主机,不做其他操作
-PN: 将所有主机设置为在线状态-- 跳过主机状态检测
-PS/PA/PU [portlist]: 指定SYN(TCP SYN Ping)/ACK(TCP ACK Ping)/UPD(UDP Ping) 方式扫描指定的端口
-PE/PP/PM: 探测ICMP回显,时间标记,网络掩码
-PO [protocol list]: 探测主机支持的网络协议
-n/-R: 从不进行DNS解析[默认: sometimes]
--dns-servers <serv1[,serv2],...>: 自定义DNS服务器
--system-dns: 使用操作系统DNS解析
端口扫描技术:
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon 扫描
-sU: UDP 扫描
-sN/sF/sX: TCP null 不设置任何标志位(tcp标志头是0),FIN(只设置TCP FIN标志位),Xmas(设置FIN,PSH,和URG标志位)扫描
--scanflags <flags>: 自定义扫描标志
-sI <zombie host[:probeport]>: 闲置扫描
-sO: IP协议扫描,确定目标机支持哪些IP协议(TCP,ICMP,IGMP,等等)
-b <FTP relay host>: FTP中转扫描
--traceroute: 路由追踪,追踪到每台主机的跳转地址
--reason: 显示每个端口的特定状态
端口项详细说明和扫描实例:
-p <port ranges>: 仅扫描指定端口
例:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
-F: 快速模式- 扫描常见端口
-r: 不按随机顺序扫描端口
--top-ports <number>: 扫描<数量> 最常见的端口
--port-ratio <ratio>: 扫描最常见的端口<比率>
服务/版本探测:
-sV: 从开放的端口探测服务/版本信息
--version-intensity <level>: 设置扫描强度0 (高) to 9 (尝试所有探测)
--version-light: 打开轻量级模式(intensity 2)
--version-all: 保证每个端口尝试所有探测方式
--version-trace: 显示正在进行扫描的任务的调试信息
脚本扫描:
-sC: 等同于使用默认脚本--script=default
--script=<Lua scripts>: <Lua scripts> 以逗号分隔名单、目录列表、脚本文件或脚本类
--script-args=<n1=v1,[n2=v2,...]>: 提供脚本参数
--script-trace: 显示所有发送和接受的数据
--script-updatedb: 更新脚本数据库.
操作系统探测:
-O: 启用操作系统探测
--osscan-limit: 针对指定的目标操作系统进行探测
--osscan-guess: 猜测最匹配的操作系统
时间和性能:
选项是以毫秒为单位,除非你追加's'(秒),'m'(分),或者'h'(小时)
-T[0-5]: 设置时间模板(越搞速度越快)
--min-hostgroup/max-hostgroup <size>: 调整并行扫描组的大小
--min-parallelism/max-parallelism <time>: 调整探测报文的并行度
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: 指定探针超时时间
--max-retries <tries>: 指定最大重试次数
--host-timeout <time>: 目标在指定时间内未响应,则放弃
--scan-delay/--max-scan-delay <time>: 调整探测延迟
--min-rate <number>: 发送数据包不低于<number>每秒
--max-rate <number>: 发送数据包不高于<number>每秒
防火墙/IDS 规避和欺骗:
-f; --mtu <val>: 报文分段(使用指定的MTU)
-D <decoy1,decoy2[,ME],...>: 使用诱饵隐蔽扫描
-S <IP_Address>: 源地址欺骗
-e <iface>: 使用指定接口
-g/--source-port <portnum>: 源端口欺骗
--data-length <num>: 附件随机数据包并发送
--ip-options <options>: 发送数据包与指定的IP选项
--ttl <val>: 设置IP time-to-live域
--spoof-mac <mac address/prefix/vendor name>: MAC地址欺骗
--badsum: 发送伪造的TCP/UDP数据包
输出:
-oN/-oX/-oS/-oG <file>: 将扫描报告标准输出, XML输出, s|<rIpt kIddi3, 和Grep输出,分别指定文件名
-oA <basename>: 输出至所有格式
-v: 提高输出信息的详细度
-d[level]: 提高或设置调试级别(推荐设置9 )
--open: 只显示打开的端口
--packet-trace: 显示所有发送和接受的数据包
--iflist: 列举接口和路由(调试)
--log-errors: 将错误记录/警告保存至指定的文件
--append-output: 追加至指定输出文件
--resume <filename>: 继续暂停的扫描
--stylesheet <path/URL>: 设置XSL样式表,转换XML输出
--webxml: 参考由Nmap.Org提供的WEBXML样式表
--no-stylesheet: 忽略XML声明的XSL样式表
杂项:
-6: 启用IPv6扫描
-A:高强度扫描模式选项
--datadir <dirname>: 指定用户Nmap数据文件位置
--send-eth/--send-ip: 使用原以太网帧或原IP成发送数据包
--privileged: 假定用户拥有全部权限
--unprivileged: 假定用户不拥有原始套接字特权
-V: 显示版本号
-h: 输出帮助信息
实例:
nmap -v -A scanme.dream4.org
nmap -v -sP 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -PN -p 80