nmap详解

nmap

nmap思维导图下载链接

端口

端口扫扫描基础

  • open(开放的)
  • closed(关闭的)
  • filtered(被过滤的)
  • unfiltered(未被过滤的)
  • open|filtered(开放或者被过滤的)
  • closed|filtered(关闭或者被过滤的)

端口扫描技术

  • -sS (TCP SYN扫描)(半开放扫描,不打开完整TCP链接)可以明确可靠地区分open(开放的), closed(关闭的),和filtered(被过滤的) 状态(优选,隐秘)
  • -sT (TCP connect()扫描)UNIX系统上syslog留下记录
  • -sU (UDP扫描)巨大挑战是怎样使它更快速
  • -sN; -sF; -sX (TCP Null,FIN,and Xmas扫描)比SYN扫描还要隐秘,但不能辨别open(开放的)端口和一些特定的 filtered(被过滤的)端口,从而返回 open|filtered(开放或者被过滤的)。
  • -sA (TCP ACK扫描)不能确定open(开放的)或者 open|filtered(开放或者过滤的))端口用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的
  • -sW (TCP窗口扫描)不能永远相信它。不支持它的系统会通常返回所有端口closed。
  • -sM (TCP Maimon扫描)
  • –scanflags (定制的TCP扫描)
  • -sI (Idlescan)僵尸扫描
  • -sO (IP协议扫描)IP 协议扫描可以让您确定目标机支持哪些IP协议 (TCP,ICMP,IGMP,等等)
  • -b (FTP弹跳扫描)

端口扫描说明和扫描顺序

  • -p (只扫描指定的端口)
  • -F (快速 (有限的端口) 扫描)
  • -r (不要按随机顺序扫描端口)

服务和版本探测

  • -sV (版本探测)也可以用-A同时打开操作系统探测和版本探测
  • –allports (不为版本探测排除任何端口)Nmap版本探测会跳过9100 TCP端口,因为一些打印机简单地打印送到该端口的 任何数据,这回导致数十页HTTP get请求
  • –version-intensity (设置 版本扫描强度)1到9数值越高, 服务越有可能被正确识别,默认是7
  • –version-light (打开轻量级模式)版本扫描快许多,但它识别服务的可能性也略微小一点。
  • –version-all (尝试每个探测)–version-intensity 9的别名, 保证对每个端口尝试每个探测报文。
  • –version-trace (跟踪版本扫描活动)
  • -sR (RPC扫描)

操作系统探测

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

时间性能(Nmap开发的最高优先级是性能)

  • –min-hostgroup ; --max-hostgroup (调整并行扫描组的大小)–max-hostgroup选项用于说明使用最大的组,Nmap不 会超出这个大小。–min-hostgroup选项说明最小的组,Nmap 会保持组大于这个值
  • –min-parallelism ; --max-parallelism (调整探测报文的并行度)最常见的应用是–min-parallelism值大于1,这个值设为10较为合适,–max-parallelism选项通常设为1
  • –min-rtt-timeout , --max-rtt-timeout , --initial-rtt-timeout (调整探测报文超时)如果所有的主机都在本地网络,对于–max-rtt-timeout值来 说,100毫秒比较合适。如果存在路由,首先使用ICMP ping工具ping主机,或使用其 它报文工具如hpings,可以更好地穿透防火墙。查看大约10个包的最大往返时间,然后将 --initial-rtt-timeout设成这个时间的2倍,–max-rtt-timeout 可设成这个时间值的3倍或4倍。通常,不管ping的时间是多少,最大的rtt值不得小于100ms, 不能超过1000ms。
  • –host-timeout (放弃低速目标主机)
  • –scan-delay ; --max-scan-delay (调整探测报文的时间间隔)–scan-delay 设为1000,使Nmap低速运行,另一个用途是躲闭基于阈值的入侵检测和预防 系统(IDS/IPS)。
  • -T (设置时间模板)使用6个时间模板,使用时采用-T选项及数字(0 - 5) 或名称。模板名称有paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5)。前两种模式用于IDS躲避,Polite模式降低了扫描 速度以使用更少的带宽和目标主机资源。默认模式为Normal,因此-T3 实际上是未做任何优化。Aggressive模式假设用户具有合适及可靠的网络从而加速 扫描。Insane模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。如果用于有足够的带宽或以太网连接,仍然建议使用-T4选项。 有些用户喜欢-T5选项,但这个过于强烈。有时用户考虑到避免使主机 崩溃或者希望更礼貌一些会采用-T2选项。

防火墙/IDS躲避和哄骗

  • -f (报文分段); --mtu (使用指定的MTU)
  • -D (使用诱饵隐蔽扫描)使用逗号分隔每个诱饵主机,也可用自己的真实IP作为诱饵,这时可使用 ME选项说明如果不使用ME选项,Nmap 将真实IP放在一个随机的位置,也可 使用IP地址代替主机名(被诱骗的网络就不可能在名字服务器日志中发现,使用过多的诱饵没有任何价值,反而导致扫描变慢并且结果不准确。
  • -S (源地址哄骗) -e选项常在这种情况下使用,也可采用-P0选项。
  • -e (使用指定的接口)
  • –source-port ; -g (源端口哄骗)仅依赖于源端口号就信任数据流是一种常见的错误配置
  • –data-length (发送报文时 附加随机数据)操作系统检测(-O)包不受影响, 但大部分ping和端口扫描包受影响,这会使处理变慢,但对扫描的影响较小。
  • –ttl (设置IP time-to-live域)
  • –randomize-hosts (对目标主机的顺序随机排列)
  • –spoof-mac (MAC地址哄骗)选项隐含了 --send-eth选项,以保证Nmap真正发送以太网包。MAC地址有几 种格式。如果简单地使用字符串“0”,Nmap选择一个完全随机的MAC 地址。如果给定的字符品是一个16进制偶数(使用:分隔),Nmap将使用这个MAC地址。 如果是小于12的16进制数字,Nmap会随机填充剩下的6个字节。如果参数不是0或16进 制字符串,Nmap将通过nmap-mac-prefixes查找 厂商的名称(大小写区分),如果找到匹配,Nmap将使用厂商的OUI(3字节前缀),然后 随机填充剩余的3个节字。正确的–spoof-mac参数有, Apple, 0,01:02:03:04:05:06, deadbeefcafe,0020F2, 和Cisco.

其他选项

-6 (启用IPv6扫描)

-A (激烈扫描模式选项)目前,这个选项启用了操作系统检测(-O) 和版本扫描(-sV),以后会增加更多的功能。 目的是启用一个全面的扫描选项集合,不需要用户记忆大量的 选项。这个选项仅仅启用功能,不包含用于可能所需要的 时间选项(如-T4)或细节选项(-v)。

–datadir (说明用户Nmap数据文件位置)

–send-eth (使用原以太网帧发送)默认方式下,Nmap选择最适合其运行平台的方式,原套接 字(IP层)是UNIX主机最有效的方式,而以太网帧最适合Windows操作 系统,因为Microsoft禁用了原套接字支持。

–send-ip (在原IP层发送)

–privileged (假定用户具有全部权限)

-V; --version (打印版本信息)

-h; --help (打印帮助摘要面)

输出

Nmap输出格式

  • -oN (标准输出)要求将标准输出直接写入指定 的文件
  • -oX (XML输出)
  • -oS (ScRipT KIdd|3 oUTpuT)
  • -oG (Grep输出)
  • -oA (输出至所有格式)

细节和调试选项

  • -v (提高输出信息的详细度)
  • -d [level] (提高或设置调试级别)当详细模式也不能为用户提供足够的数据时,使用调试可以得到更 多的信息,-d9设定级别9。这是 最高的级别,将会产生上千行的输出,除非只对很少的端口和目标进行简单扫描。
  • –packet-trace (跟踪发送和接收的报文)为避免输出过 多的行,可以限制扫描的端口数,如-p20-30。 如果只需进行版本检测,使用–version-trace。
  • –iflist (列举接口和路由)

其它输出选项

  • –append-output (在输出文件中添加)将结果添加在现有文件后面,但对于XML(-oX)扫描输出 文件无效,无法正常解析,需要手工修改。
  • –resume (继续中断的扫描)
  • 运行Nmap的管理员可以因其它原因取消运行,按下ctrl-C 即可。从头开始启动扫描可能令人不快,幸运的是,如果标准扫描 (-oN)或Grep扫描(-oG)日志 被保留,用户可以要求Nmap恢复终止的扫描,只需要简单地使用选项 --resume并说明标准/Grep扫描输出文件,不允许 使用其它参数,Nmap会解析输出文件并使用原来的格式输出。使用方式 如nmap --resume 。 Nmap将把新地结果添加到文件中,这种方式不支持XML输出格式,原因是 将两次运行结果合并至一个XML文件比较困难。
  • –stylesheet (设置XSL样式表,转换XML输出)
  • –no-stylesheet (忽略XML声明的XSL样式表)

主机发现

-sL (列表扫描)

-sP (Ping扫描)

-P0 (无ping)

-PS [portlist] (TCP SYN Ping)

-PA [portlist] (TCP ACK Ping)

-PU [portlist] (UDP Ping)

-PE; -PP; -PM (ICMP Ping Types)

-PR (ARP Ping)

-n (不用域名解析)

-R (为所有目标解析域名)

–system-dns (使用系统域名解析器)

目标说明

-iL (从列表中输入)

-iR (随机选择目标)

–exclude (排除主机/网络)

–excludefile (排除文件中的列表)

你可能感兴趣的:(nmap详解)