①NMAP

功能:扫描网络上的存活主机或主机开放的端口,开放的服务,以及主机所使用操作系统的版本.总体来说就是信息收集的一个工具.

Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个 主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上 有哪些主机,那些 主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息), 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。虽然Nmap通常用于安全审核, 许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息, 管理服务升级计划,以及监视主机和服务的运行。

  • 扫描框架
  • ①发现主机
  • nmap -iL <filename>以文件的方式输入目标
  • nmap -iR <随机目标树木>扫描全球随机目标
  • –exclude <host1, host 2>排除目标主机/网络
  • –excludefile <file> 从文件中选取目标
  • 扫描方式:
  • -sL (scan List) :列出即将进行要扫描的目标
  • -sn:ping的方式进行扫描-禁用端口扫描
  • -Pn(ping none):不进行探测主机是否在线,直接对主机进行后续操作.一般和其他操作一起使用.
  • -PS/PA/PU/PY[portlisr] :(ping syn,ping utp,ping sctp)用指定的方式进行ping扫描,探测主机是否在线.
  • -PE/PP/PM :icmp echo,ping timestamp,ping mask.使用ICMP回显,时间戳和网络掩码进行发现探测.
  • 以上两条分别是使用三次握手中syn,ack 以及icmp协议对客户端的回复来确认主机是否存活.
  • -PO [协议列表]:IP 协议ping
  • -n/-R :不要进行dns解析,/总是解决{默认:有时}
  • –system-dns;使用操作系统的dns解析器
  • –dns-servers 制定操作系统的dns解析器
  • –traceroute:跟踪每个主机的跳转路径
  • 端口扫描的技术
  • -sS/sT/sA/sW/sM:使用tcp中syn,ack,window/maimon connection()扫描,他永远不会进行回应,也称之为半开放扫描 SYN/ACK表示端口在监听 (开放),而 RST (复位)表示没有监听者。如果数次重发后仍没响应, 该端口就被标记为被过滤。如果收到ICMP不可到达错误 (类型3,代码1,2,3,9,10,或者13),该端口也被标记为被过滤。
  • -sU:以udp的方式进行端口扫描
  • -sN/sF/sX:tcp null .FIN .Xmax方式进行端口扫描这些扫描的关键优势是它们能躲过一些无状态防火墙和报文过滤路由器。 另一个优势是这些扫描类型甚至比SYN扫描还要隐秘一些。但是别依赖它 — 多数 现代的IDS产品可以发现它们。一个很大的不足是并非所有系统都严格遵循RFC 793。 许多系统不管端口开放还是关闭,都响应RST。 这导致所有端口都标记为closed(关闭的)。 这样的操作系统主要有Microsoft Windows,许多Cisco设备,BSDI,以及IBM OS/400。 但是这种扫描对多数UNIX系统都能工作。这些扫描的另一个不足是 它们不能辨别open(开放的)端口和一些特定的 filtered(被过滤的)端口,从而返回 open|filtered(开放或者被过滤的)。
  • –scanflags <flags>自定义tcp扫描标识
  • -sI<zombie host [:probeport]>这种高级的扫描方法允许对目标进行真正的TCP端口盲扫描 (意味着没有报文从您的真实IP地址发送到目标)。相反,side-channel攻击 利用zombie主机上已知的IP分段ID序列生成算法来窥探目标上开放端口的信息。 IDS系统将显示扫描来自您指定的zombie机(必须运行并且符合一定的标准)。
  • -p:仅扫描指定端口(-p22, -p1-222 ,-p u:22-33,-p T:220)
  • -F:快速扫描,扫描比默认少的端口
  • –top-ports <numbre> :扫描常见的端口
  • –port-ratio
  • ③版本检测
  • -sV:探测打开端口以确定服务/版本信息
  • –version-intensity <level>当进行版本扫描(-sV)时,nmap发送一系列探测报文 ,每个报文都被赋予一个1到9之间的值。 被赋予较低值的探测报文对大范围的常见服务有效,而被赋予较高值的报文 一般没什么用。强度水平说明了应该使用哪些探测报文。数值越高, 服务越有可能被正确识别。 然而,高强度扫描花更多时间。强度值必须在0和9之间。 默认是7。当探测报文通过nmap-service-probes ports指示符 注册到目标端口时,无论什么强度水平,探测报文都会被尝试。这保证了DNS 探测将永远在任何开放的53端口尝试, SSL探测将在443端口尝试,等等。
  • -sC:相当于–script = default
  • –script = <LUA scritps>:<Lua scripts>是一个逗号分隔的列表目录
  • –script-args=<n1=v1..>为脚本提供参数
  • –script-updatedb:更新脚本数据库
  • ④探测操作系统
  • -O:启用操作系统检测
  • ⑤时间和性能
  • 采取<time>的选项以秒为单位,或者追加ms(毫秒),m,h,
  • -T <0-5>设置时间模板,
  • 模板名称有paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4)和insane (5)。前两种模式用于IDS躲避,Polite模式降低了扫描 速度以使用更少的带宽和目标主机资源。默认模式为Normal,因此-T3 实际上是未做任何优化。Aggressive模式假设用户具有合适及可靠的网络从而加速 扫描。Insane模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。用户可以根据自己的需要选择不同的模板,由Nmap负责选择实际的时间值。 模板也会针对其它的优化控制选项进行速度微调。例如,-T4 针对TCP端口禁止动态扫描延迟超过10ms,-T5对应的值为5ms。 模板可以和优化调整控制选项组合使用,但模板必须首先指定,否则模板的标准值 会覆盖用户指定的值。建议在扫描可靠的网络时使用 -T4,即使 在自己要增加优化控制选项时也使用(在命令行的开始),从而从这些额外的较小的优化 中获益。如果用于有足够的带宽或以太网连接,仍然建议使用-T4选项。 有些用户喜欢-T5选项,但这个过于强烈。有时用户考虑到避免使主机 崩溃或者希望更礼貌一些会采用-T2选项。他们并没意识到-T Polite选项是如何的慢,这种模式的扫描比默认方式实际上要多花10倍的时间。默认时间 选项(-T3)很少有主机崩溃和带宽问题,比较适合于谨慎的用户。不进行 版本检测比进行时间调整能更有效地解决这些问题。虽然-T0和-T1选项可能有助于避免IDS告警,但 在进行上千个主机或端口扫描时,会显著增加时间。对于这种长时间的扫描,宁可设定确切的时间 值,而不要去依赖封装的-T0和-T1选项。T0选项的主要影响是对于连续扫描,在一个时间只能扫描一个端口, 每个探测报文的发送间隔为5分钟。T1和T2选项比较类似, 探测报文间隔分别为15秒和0.4秒。T3是Nmap的默认选项,包含了并行扫描。 T4选项与 –max-rtt-timeout 1250 –initial-rtt-timeout 500 等价,最大TCP扫描延迟为10ms。T5等价于 –max-rtt-timeout 300 –min-rtt-timeout 50 –initial-rtt-timeout 250 –host-timeout 900000,最大TCP扫描延迟为5ms。
  • –min-hostgroup/max-hostgroup 并行主机扫描组大小
  • –min-rtt-timeout/max-rrt-timeout /initial-rrt-timeout<time>:制定探测往返时间
  • ⑥防火墙/IDS逃逸/spoof欺骗
  • -F –mtu:以指定大小的mtu进行数据包分片
  • -D (使用诱饵隐蔽扫描 ):用http/socks4代理的中继.为使诱饵扫描起作用,需要使远程主机认为是诱饵在扫描目标网络。 IDS可能会报个某个IP的5-10个端口扫描,但并不知道哪个IP在扫描以及 哪些不是诱饵。但这种方式可以通过路由跟踪、响应丢弃以及其它主动 机制在解决。这是一种常用的隐藏自身IP地址的有效技术。使用逗号分隔每个诱饵主机,也可用自己的真实IP作为诱饵,这时可使用 ME选项说明。如果在第6个位置或 更后的位置使用ME选项,一些常用 端口扫描检测器(如Solar Designer’s excellent scanlogd)就不会报告 这个真实IP。如果不使用ME选项,Nmap 将真实IP放在一个随机的位置注意,作为诱饵的主机须在工作状态,否则会导致目标主机的SYN洪水攻击。 如果在网络中只有一个主机在工作,那就很容易确定哪个主机在扫描。也可 使用IP地址代替主机名(被诱骗的网络就不可能在名字服务器日志中发现)。诱饵可用在初始的ping扫描(ICMP、SYN、ACK等)阶段或真正的端口扫描 阶段。诱饵也可以用于远程操作系统检测(-O)。在进行版 本检测或TCP连接扫描时,诱饵无效。使用过多的诱饵没有任何价值,反而导致扫描变慢并且结果不准确。 此外,一些ISP会过滤哄骗的报文,但很多对欺骗IP包没有任何限制。
  • -S<ip_address> :欺骗源地址
  • -g:使用给定的端口号

完整全面的扫描:nmap -T4 -A -v targethost



nmap 下载