Nmap网络探测和安全审核工具指南:时间和性能

Nmap开发的最高优先级是性能。在本地网络对一个主机的默认扫描(nmap host">name)需要1/5秒。而仅仅眨眼的时间,就需要扫描上万甚至几十万的主机。此外,一些特定的扫描选项会明显增加扫描时间,如UDP扫描和版本检测。同样,防火墙配置以及特殊的响应速度限制也会增加时间。Nmap使用了并行算法和许多先进的算法来加速扫描,用户对Nmap如何工作有最终的控制权。高级用户可以仔细地调整Nmap命令,在满足时间要求的同时获得他们所关心的信息。

改善扫描时间的技术有:忽略非关键的检测、升级最新版本的Nmap(性能增强不断改善)。 优化时间参数也会带来实质性的变化,这些参数如下。

--min-hostgroup <milliseconds>; --max-hostgroup <milliseconds> (调整并行扫描组的大小)

Nmap具有并行扫描多主机端口或版本的能力,Nmap将多个目标IP地址空间分成组,然后在同一时间对一个组进行扫描。通常,大的组更有效。缺点是只有当整个组扫描结束后才会提供主机的扫描结果。如果组的大小定义为50,则只有当前50个主机扫描结束后才能得到报告(详细模式中的补充信息除外)。

默认方式下,Nmap采取折衷的方法。开始扫描时的组较小,最小为5,这样便于尽快产生结果;随后增长组的大小,最大为1024。确切的大小依赖于所给定的选项。为保证效率,针对UDP或少量端口的TCP扫描,Nmap 使用大的组。

--max-hostgroup选项用于说明使用最大的组,Nmap不会超出这个大小。--min-hostgroup选项说明最小的组,Nmap 会保持组大于这个值。如果在指定的接口上没有足够的目标主机来满足所指定的最小值,Nmap可能会采用比所指定的值小的组。这两个参数虽然很少使用,但都用于保持组的大小在一个指定的范围之内。

这些选项的主要用途是说明一个最小组的大小,使得整个扫描更加快速。通常选择256来扫描C类网段。对于端口数较多的扫描,超出该值没有意义。对于端口数较少的扫描,2048或更大的组大小是有帮助的。

--min-parallelism <milliseconds>; --max-parallelism <milliseconds> (调整探测报文的并行度)

这些选项控制用于主机组的探测报文数量,可用于端口扫描和主机发现。默认状态下, Nmap基于网络性能计算一个理想的并行度,这个值经常改变。如果报文被丢弃, Nmap降低速度,探测报文数量减少。随着网络性能的改善,理想的探测报文数量会缓慢增加。这些选项确定这个变量的大小范围。默认状态下,当网络不可靠时,理想的并行度值可能为1,在好的条件下,可能会增长至几百。

最常见的应用是--min-parallelism值大于1,以加快性能不佳的主机或网络的扫描。这个选项具有风险,如果过高则影响准确度,同时也会降低Nmap基于网络条件动态控制并行度的能力。这个值设为10较为合适,这个值的调整往往作为最后的手段。

--max-parallelism选项通常设为1,以防止Nmap在同一时间向主机发送多个探测报文,和选择--scan-delay同时使用非常有用,虽然这个选项本身的用途已经很好。

--min_rtt_timeout <milliseconds>, --max-rtt-timeout <milliseconds>, --initial-rtt-timeout <milliseconds> (调整探测报文超时)

Nmap使用一个运行超时值来确定等待探测报文响应的时间,随后会放弃或重新发送探测报文。Nmap基于上一个探测报文的响应时间来计算超时值,如果网络延迟比较显著和不定,这个超时值会增加几秒。初始值的比较保守(高),而当Nmap扫描无响应的主机时,这个保守值会保持一段时间。

这些选项以毫秒为单位,采用小的--max-rtt-timeout值,使 --initial-rtt-timeout值大于默认值可以明显减少扫描时间,特别是对不能ping通的扫描(-P0)以及具有严格过滤的网络。如果使用太小的值,使得很多探测报文超时从而重新发送,而此时可能响应消息正在发送,这使得整个扫描的时间会增加。

如果所有的主机都在本地网络,对于--max-rtt-timeout值来说,100毫秒比较合适。如果存在路由,首先使用ICMP ping工具ping主机,或使用其它报文工具如hpings,可以更好地穿透防火墙。查看大约10个包的最大往返时间,然后将 --initial-rtt-timeout设成这个时间的2倍,--max-rtt-timeout 可设成这个时间值的3倍或4倍。通常,不管ping的时间是多少,最大的rtt值不得小于100ms,不能超过1000ms。     --min_rtt_timeout这个选项很少使用,当网络不可靠时, Nmap的默认值也显得过于强烈,这时这个选项可起作用。当网络看起来不可靠时,Nmap仅将超时时间降至最小值,这个情况是不正常的,需要向namp-dev邮件列表报告bug。

--host-timeout <milliseconds> (放弃低速目标主机)

由于性能较差或不可靠的网络硬件或软件、带宽限制、严格的防火墙等原因,一些主机需要很长的时间扫描。这些极少数的主机扫描往往占据了大部分的扫描时间。因此,最好的办法是减少时间消耗并且忽略这些主机,使用 --host-timeout选项来说明等待的时间(毫秒)。通常使用1800000 来保证Nmap不会在单个主机上使用超过半小时的时间。需要注意的是,Nmap在这半小时中可以同时扫描其它主机,因此并不是完全放弃扫描。超时的主机被忽略,因此也没有针对该主机的端口表、操作系统检测或版本检测结果的输出。

--scan-delay <milliseconds>; --max_scan-delay <milliseconds> (调整探测报文的时间间隔)

这个选项用于Nmap控制针对一个主机发送探测报文的等待时间(毫秒),在带宽控制的情况下这个选项非常有效。Solaris主机在响应UDP扫描探测报文报文时,每秒只发送一个ICMP消息,因此Nmap发送的很多数探测报文是浪费的。--scan-delay 设为1000,使Nmap低速运行。Nmap尝试检测带宽控制并相应地调整扫描的延迟,但并不影响明确说明何种速度工作最佳。

--scan-delay的另一个用途是躲闭基于阈值的入侵检测和预防系统(IDS/IPS)。

-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> (设置时间模板)

上述优化时间控制选项的功能很强大也很有效,但有些用户会被迷惑。此外,往往选择合适参数的时间超过了所需优化的扫描时间。因此,Nmap提供了一些简单的方法,使用6个时间模板,使用时采用-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。

时间: 2024-10-10 14:32:16

Nmap网络探测和安全审核工具指南:时间和性能的相关文章

Nmap网络探测和安全审核工具指南:概述

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

Nmap网络探测和安全审核工具指南:主机发现

任何网络探测任务的最初几个步骤之一就是把一组IP范围(有时该范围是巨大的)缩小为 一列活动的或者您感兴趣的主机.扫描每个IP的每个端口很慢,通常也没必要. 当然,什么样的主机令您感兴趣主要依赖于扫描的目的.网管也许只对运行特定服务的 主机感兴趣,而从事安全的人士则可能对一个马桶都感兴趣,只要它有IP地址:-).一个系统管理员 也许仅仅使用Ping来定位内网上的主机,而一个外部入侵测试人员则可能绞尽脑汁用各种方法试图 突破防火墙的封锁. 由于主机发现的需求五花八门,Nmap提供了一箩筐的选项来定制

Nmap网络探测和安全审核工具指南:服务和版本探测

把Nmap指向一个远程机器,它可能告诉您 端口25/tcp,80/tcp,和53/udp是开放的.使用包含大约2,200个著名的服务的 nmap-services数据库, Nmap可以报告那些端口可能分别对应于一个http://www.aliyun.com/zixun/aggregation/12489.html">邮件服务器 (SMTP),web服务器(HTTP),和域名服务器(DNS). 这种查询通常是正确的 -- 事实上,绝大多数在TCP端口25监听的守护进程是邮件 服务器.然而,您

Nmap网络探测和安全审核工具指南:端口扫描基础

虽然Nmap这些年来功能越来越多, 它也是从一个高效的端口扫描器开始的,并且那仍然是它的http://www.aliyun.com/zixun/aggregation/17626.html">核心功能. nmap target这个简单的命令扫描主机target上的超过 1660个TCP端口. .许多传统的端口扫描器只列出所有端口是开放还是关闭的, Nmap的信息粒度比它们要细得多. 它把端口分成六个状态: open(开放的), closed(关闭的),filtered(被过滤的), unf

Nmap网络探测和安全审核工具指南:端口扫描技术

作为一个修车新手,我可能折腾几个小时来摸索怎样把基本工具(锤子,胶带,扳子等) 用于手头的任务.当我惨痛地失败,把我的老爷车拖到一个真正的技师那儿的时候,他总是在他的工具箱里翻来翻去,直到拽出一个完美的工具然后似乎不费吹灰之力搞定它.端口扫描的艺术和这个类似.专家理解成打的扫描技术,选择最适合的一种 (或者组合)来完成给定的任务. 另一方面,没有经验的用户和刚入门者总是用默认的SYN扫描解决每个问题.既然Nmap是免费的,掌握端口扫描的唯一障碍就是知识.这当然是汽车世界所不能比的,在那里,可能需

Nmap网络探测和安全审核工具指南:防火墙/IDS躲避和哄骗

很多Internet先驱们设想了一个全球开放的网络,使用全局的IP 地址空间,使得任何两个节点之间都有虚拟连接.这使得主机间可以作为真正的对等体,相互间提供服务和获取信息.人们可以在工作时访问家里所有的系统.调节空调温度.为提前到来的客人开门.随后,这些全球连接的设想受到了地址空间短缺和安全考虑的限制.在90年代早期,各种机构开始部署防火墙来实现减少连接的目的,大型网络通过代理.NAT和包过滤器与未过滤的Internet隔离.不受限的信息流被严格控制的可信通信通道信息流所替代. 类似防火墙的网络

Nmap网络探测和安全审核工具指南:目标说明

除了选项,所有出现在Nmap命令行上的都被视为对目标主机的说明.最简单的情况是指定一个目标IP地址或主机名. 有时候您希望扫描整个网络的相邻主机.为此,Nmap支持CIDR风格的地址.您可以附加一个/numbit在一个IP地址或主机名后面, Nmap将会扫描所有和该参考IP地址具有 numbit相同比特的所有IP地址或主机.例如,192.168.10.0/24将会扫描192.168.10.0 (二进制格式: 11000000 10101000 00001010 00000000)和192.168

Nmap网络探测和安全审核工具指南:输出

任何安全工具只有在输出结果时才是有价值的,如果没有通过组织和 易于理解的方式来表达,复杂的测试和算法几乎没有意义.Nmap提供了一些 方式供用户和其它软件使用,实际上,没有一种方式可以使所有人满意. 因此Nmap提供了一些格式,包含了方便直接查看的交互方式和方便软件处理 的XML格式. 除了提供输出格式外,Nmap还提供了选项来控制输出的细节以及调试信息.输出内容可发送给标准输出或命名文件,可以追加或覆盖.输出文件还可被用于继续中断的扫描. Nmap提供5种不同的输出格式.默认的方式是inter

Nmap网络探测和安全审核工具指南:端口说明和扫描顺序

除了所有前面讨论的扫描方法, Nmap提供选项说明那些端口被扫描以及扫描是随机还是顺序进行. 默认情况下,Nmap用指定的协议对端口1到http://www.aliyun.com/zixun/aggregation/12560.html">1024以及nmap-services 文件中列出的更高的端口在扫描. -p <port ranges> (只扫描指定的端口) 该选项指明您想扫描的端口,覆盖默认值. 单个端口和用连字符表示的端口范围(如 1-1023)都可以. 范围的开始以