Nmap使用说明
语法:
nmap [扫描类型] [选项] [目标规范]
目标规范
可以传递主机名、IP地址、域名等。可以指定单个IP或IP段 eg:192.168.1.0/24、192.168.1.1,2,3-15
- -iL :从文件中导入扫描目标,eg:nmap ip.txt
- -iR :随机选择目标,参数指定Nmap要生成的IP数量,eg:nmap -iR 5
- –exclude :排除指定参数值的主机,以逗号分隔目标列表
- –excludefile :从文件中排除主机
主机发现
- -sL:列表探测-只列出要扫描的目标
- -sN:无端口探测-发现主机存活后禁止端口扫描
- -Pn:禁ping探测-跳过主机发现
- -PS:TCP SYN Ping探测-向目标发送建立连接请求,如果端口关闭则返回RST,如果端口打开,则响应SYN/ACK数据包。该扫描将完成三次握手建立完整连接,类似Telnet请求。
- -PA:TCP ACK Ping探测-和SYN扫描类型,差别在于设置TCP ACK标志而不是SYN标志,故为半开连接。可利用此扫描绕过防火墙。
- -PU:UDP Ping探测
- -PY:SCTP INIT Ping探测-发送最小INIT块的SCTP数据包。
- -PE;-PP;-PM:ICMP Ping探测
- -P0:IP协议Ping探测
- -PR:ARP Ping探测
- -n / -R:不进行DNS解析/始终解析DNS
- –dns-server :指定自定义DNS服务器
- –system-dns:使用系统DNS解析器
- –traceroute:跟踪路由跳转路径
端口扫描技术
端口状态:open(打开)、closed(关闭)、filtered(过滤:有防火墙)、unfiltered(未经过滤:可以访问端口但无法判断是否打开)、open/filtered(开放|过滤:无法判断端口是打开还是已过滤)、closed|filtered(关闭|过滤:无法判断端口是关闭还是已过滤)
- -sS:TCP SYN扫描(半开扫描)-nmap默认扫描项,不建立完整连接
- -sT:TCP连接扫描-完整连接扫描,和telent端口类似
- -sU:UDP扫描
- -sY:SCTP INIT扫描-SCTP是TCP和UDP相对较新的替代方案,结合了TCP和UDP大多数特性,是TCP SYN扫描的SCTP等效物。
- -sN;-sF;-sX:空扫描、FIN扫描、Xmas扫描
- -sA:TCP ACK扫描
- -sW:TCP窗口扫描
- -sM:TCP Maimom扫描
- -sO:IP协议扫描-探测目标支持哪些IP协议
端口设置及扫描顺序
默认情况下,nmap会扫描每个协议的最常见的1000个端口
- -p :指定扫描的端口范围
- –exclude-ports :从扫描中排除指定的端口
- -F:快速模式-扫描比默认扫描更少的端口,减少到100个端口
- -r:连续扫描端口-不要随机化
服务版本检测
- -sV:版本探测-探测开放端口的版本信息
- –version-intensity :设置版本扫描强度,范围为0-9,数字越大,正确性越高,但时间更长,默认为7。
- –version-trace:跟踪版本扫描活动-会打印扫描版本的大量调试信息
操作系统检测
- -O:启用OS检测
脚本引擎NSE
- -sC:使用默认脚本执行脚本扫描-相当于
--script=default
- –script=:以逗号分隔的列表目录、脚本
- –script-args = <n1 = v1,[n2 = v2,…]>:为脚本提供参数
- –script-args-file = filename:在文件中提供NSE脚本args
- –script-trace:显示发送和接受的所有数据
- –script-updatedb:更新脚本数据库
- –script-help=:显示有关脚本的帮助
时间和性能
- -T <0-5>:设置时序模板(越高越快)-建议-T4(禁止TCP端口动态扫描超过10ms),-T5(mns)。-T1和-T2用来躲避IDS报警。
输出
- -oN :正常输出
- -oX :XML输出
- -oA:输出所有格式
- -v :设置详细程度- -v1 -v2 -v3
- -d :设置调试级别- -d1到-d9
- –reason:显示主机和端口状态原因- 此选项显示确定端口或主机状态的数据包的类型
- –open:仅显示打开(可能打开)的端口
- –packet-trace:显示发送和接收的所有数据包
- –resum :恢复中止扫描
杂项
- -A:启用操作系统检测,版本检测,脚本扫描和跟踪路由
- -6:启用IPv6扫描
- -V:显示版本信息
- -h:显示帮助信息