Nmap 学习笔记(一)

Nmap 学习笔记之参数详解

      • Nmap特点:
      • Nmap用法:
        • 扫描目标规格参数:
        • 主机发现参数:
        • 端口扫描参数:
        • 端口规格与扫描顺序参数:
        • 版本侦查参数:
        • 脚本扫描参数:
        • 操作系统检测参数:
        • 时间和性能参数:
        • 防火墙/IDS躲避和哄骗:
        • 输出参数:
        • 其它参数:

Nmap(Network Mapper,网络映射器)是一款开源的网络探测和安全审核工具,它可以用来快速进行主机探测与发现、端口开放情况、操作系统与指纹识别、WAF(防火墙)识别及常见漏洞扫描。
Nmap官方中文链接:https://nmap.org/man/zh/index.html

Nmap特点:

  • 主机探测:探测网络上的主机;
  • 端口检测:探测目标主机所开发的端口;
  • 版本检测:探测目标主机的网络服务,判断其服务名称及版本号;
  • 系统检测:探测目标主机的操作系统及网络设备的硬件特性;
  • 支持探测脚本的编写:NSE(脚本引擎)和Lua编程;

Nmap用法:

nmap [扫描类型] [选项] {目标规范}

  • --help:显示帮助文档;

扫描目标规格参数:

  • -iL:从文件中导入目标主机或者目标网段;
  • -iR:随机选择目标主机;
  • --exclude:使主机/网段不在扫描范围内;
  • --excludefile:使导入文件中的主机或者网段不在扫描范围内;

主机发现参数:

  • -sL:List Scan(列表扫描),简单的列表扫描,仅列举指定目标的IP,不进行主机发现;
  • -sn:Ping Scan,只进行主机发现,不进行端口扫描;
  • -Pn:将所有指定的主机视作已开启,跳过主机发现的过程;
  • -PS/PA/PU/PY[portlist]:使用TCP SYN/ACK,UDP/SCTP发现给定端口;
  • -PE/PP/PM:使用ICMP echo、timestamp、netmask请求包发现主机;
  • -PO[protocol list]:使用IP协议包探测对方主机是否开启;
  • -n/-R:-n表示不进行DNS解析,-R表示总是进行DNS解析;
  • --dns-servers:指定自定义DNS服务器;
  • --system-dns:使用系统的DNS服务器;
  • --traceroute:追踪每个路由节点;

端口扫描参数:

  • -sS/sT/sA/sW/sM:指定使用TCP SYN/Connect()/ACK/Window/Maimon scans的方式对目标主机进行扫描;
  • -sU:指定使用UDP扫描;
  • -sN/sF/sX:指定使用TCP Null/FIN/Xmax scans秘密扫描的方式协助探测对方的TCP端口状态;
  • --scanflage:自定义TCP包的flags;
  • -sI:指定使用Idle scan的方式扫描目标主机(前提是需要知道适合的zombie host);
  • -sY/sZ:使用SCTP INIT/COOKIE-ECHO扫描SCTP协议端口的开放状况;
  • -sO:使用IP protocol扫描确定目标机支持的协议类型;
  • -b:使用FTP bounce scan 扫描方式;

端口规格与扫描顺序参数:

  • -p:扫描指定的端口;
  • --exclude-ports :从扫描中排除指定端口;
  • -F:Fast mode(快速模式),仅扫描TOP 100的端口;
  • -r:连续扫描端口,不进行端口随机打乱(如无该参数,Nmap会将要扫描的端口以随机顺序的方式进行扫描,让Nmap的扫描不易被对方防火墙检测到);
  • --top-ports:扫描开放概率最高的number个端口(默认情况下,Nmap会扫描最有可能的1000个TCP端口);
  • --port-ratio:扫描指定频率以上的端口,与上述–top-ports类似,这里以概率作为参数,概率大于–port-ratio的端口才被扫描,显然参数必须在0~1之间,想了解具备的概率范围可以查看nmap-services文件;

版本侦查参数:

  • -sV:指定让Nmap进行版本侦测;
  • --version-intensity:指定版本侦测的强度(0~9),默认为7,数值越高,探测出的服务越准确,但是运行时间会比较长;
  • --version-light:指定使用轻量级侦测方式(intensity 2);
  • --version-all:尝试使用所用的probes进行侦侧(intensity 9);
  • --version-trace:显示出详细的版本侦测过程信息;

脚本扫描参数:

  • sC:脚本默认扫描,相当于--script=default
  • --script=是一个逗号分隔的目录列表、脚本文件或脚本类别,使用某个脚本扫描;
  • --script-args=:该参数用于传递脚本里的参数,n1是参数名,v1是n1对应的参数,如果有多参数用逗号隔开;
  • --script-args-file=filename:使用文件为脚本提供参数;
  • --script-trace:显示脚本执行过程中的所有发送和接收的数据;
  • --script-updatedb:更新脚本数据库;
  • --script-help=:查看脚本详细介绍及其使用方式;

操作系统检测参数:

  • O:操作系统检测,也可以使用-A来同时启用操作系统检测和版本检测;
  • --osscan-limit:针对指定的目标进行操作系统检测;
  • --osscan-guess:推测操作系统检测结果;

时间和性能参数:

采用

  • -T<0-5>:设置时间模板(越高越快),(paranoid|sneaky|polite|normal|aggressive|insane);
  • --min-hostgroup/max-hostgroup :设置并行扫描组的大小;
  • --min-parallelism/max-parallelism :调整探测报文的并行度;
  • --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout :调整探测报文超时;
  • --max-retries :限制端口扫描探针的重发数量;
  • --host-timeout :放弃低速目标主机;
  • --scan-delay/--max-scan-delay :设置探测报文的时间间隔;
  • --min-rate :每秒发送数据包的速度不低于
  • --max-rate :每秒发送数据包的速度不高于

防火墙/IDS躲避和哄骗:

  • -f; --mtu -f为报文分段,--mtu为指定的MTU,将TCP头分段到几个包中,使得包过滤器、 IDS以及其它工具的检测更加困难;
  • -D :使用诱饵隐蔽扫描,常用的隐藏自身IP地址的有效技术;
  • -S :源地址哄骗;
  • -e : 使用指定的接口;
  • ---source-port ; -g :源端口哄骗;
  • --data-length :发送报文时附加随机数据;
  • --ttl :设置IP time-to-live域;
  • --randomize-hosts:对目标主机的顺序随机排列;
  • --spoof-mac :MAC地址哄骗;

输出参数:

  • -oN/-oX/-oS/-oG ::标准输出/XML输出/脚本小子输出(ScRipT KIdd|3 oUTpuT)/Grep输出;
  • -oA :输出至所有格式;
  • -v:提高输出信息的详细度;
  • -d [level]:提高或设置调试级别;
  • --packet-trace:跟踪发送和接收的报文;
  • --iflist:列举接口和路由;
  • --append-output:在输出文件中添加;
  • --resume:继续中断的扫描;
  • --stylesheet :设置XSL样式表,转换XML输出;
  • --no-stylesheet:忽略XML声明的XSL样式表;

其它参数:

  • -6:启用IPv6扫描;
  • -A:启用系统检测、版本检测、脚本扫描和跟踪路由;
  • --datadir :说明用户Nmap数据文件位置;
  • --send-eth/--send-ip:使用以太网帧或IP数据包发送;
  • --privileged:假定用户具有全部权限;
  • --unprivileged:假设用户缺少原始套接字特权;
  • -V:显示版本信息;
  • -h/-help:显示帮助文档;

你可能感兴趣的:(Nmap)