Sniffer,中文又可以翻译为嗅探器,是一种基于被动侦听原理的网络分析方式。使用这种技术方式,可以监视网络的状态、数据流动情况以及网络上传输的信息。Sniffer技术主要被广泛应用于网络故障诊断、协议分析、应用性能分析和网络安全保障等各个领域。
Sniffer pro软件是NAI公司推出的功能强大的协议分析软件。它包括捕获网络流量进行详细分析,利用专家分析系统诊断问题,实时监控网络活动,收集网络利用率和错误等多种强大的功能。
1.Sniffer工作原理
以太网的数据传输基于“共享”原理:所有的同一本地网范围内的计算机共同接收到相同的数据包,这意味着计算机所有的通信都是透明可见的。正是因为这样,以太网卡都构造了硬件的“过滤器”来忽略掉一切和自己无关的网络信息(事实上是忽略掉了与自身MAC地址不符合的信息)。网络嗅探程序主动关闭了过滤器,也就是设置了网卡“混杂模式”,此时,嗅探程序就能够接收到整个以太网内的网络数据信息。通过网络嗅探程序对得到的数据包进行一定的分析,可能得到许多有价值的信息,包括机密数据、账户密码等。得到有用信息的难易程度取决于许多因素,例如数据包的类型、加密程度等。
Sniffer通常运行在路由器或有路由器功能的主机上。这样就能对大量的数据进行监控。Sniffer属第二层次的攻击。通常是攻击者已经进入了目标系统,然后使用Sniffer这种攻击手段,以便得到更多的信息。通常Sniffer程序只看一个数据包的前200~300个字节的数据,就能发现像口令和用户名这样的信息。
Sniffer除了能得到口令或用户名外,还能得到更多的其他信息,比如在网上传送的金融信息等。Sniffer几乎能得到任何以太网上的传送的数据包。
有许多运行于不同平台上的Sniffer程序,可以从互联网上找到。
2.Sniffer pro的部署
尽管Sniffer pro集众多优秀功能于一身,但对软件部署却有一定的要求。首先,Sniffer pro只能嗅探到所在链路上“流经”的数据包,如果Sniffer pro被安装在交换网络中普通PC位置上不做任何设置,那么它仅仅能捕获本机数据。因此,Sniffer pro的部署位置决定了它所能嗅探到的数据包。它能嗅探到的数据包,又决定它所能分析的网络环境。
在以往HUB为中心的共享式网络中,Sniffer pro的部署非常简单,只需要将它安置在需要网段中的任意位置即可。但是随着LAN的发展,HUB也在近几年迅速的销声匿迹,网络也由以往共享式演变成以交换机为中心的交换式网络。在交换网络中,为了监测、分析网络性能,目前大多使用SPAN和TAP有效地获得数据。这两种技术在网络监测、分析时普遍应用,每一种技术都有其优缺点。所以两种技术在网络监测、分析任务中是根据需要来采用的。
图1-17 通过镜像端口连入嗅探器
镜像端口(Mirroring或Spanning):高级的网络交换机可以将交换机的一个或几个端口的数据包复制到一个指定的端口,分析仪可以接到镜像端口接收数据,如图1-17所示。
SPAN(Switch Port Analysis):经常说的端口镜像大多指SPAN。SPAN技术可以把交换机上想要监控的端口的数据镜像到被称为MIRROR的端口上,MIRROR端口连接安装有Sniffer pro程序或者专用嗅探硬件设备。
SPAN是交换机本身就提供的一种功能,所以只要在交换机上进行配置就可以了。但是这一功能会影响交换机的性能,当数据过载时还会造成数据包的丢失。除此之外,一般的设备只有两个SPAN口,无法同时满足多个需求。
●优点:免费,无需额外投资。
●缺点:①丢包问题(SPAN端口在交换机里的路由层级为低优先权;全双工监测通常无法实现;不能监测OSI第1.2层错误包);②对于避免网络攻击的隐蔽性有限;
③潜在网络故障点。
现在,在一些中小型的企业当中,由于网络规模不大,或者为了节省IT成本,只使用了一些非网管的交换机来构建局域网。对于非网管型的交换机,就不可能再使用端口汇聚功能来接入网络嗅探器了。那么,对于这种交换机构建的网络环境,又该使用什么样的方法来达到嗅探网络中的所有网络流量,或者只嗅探进出某台工作站之中的网络流量的目的呢?
就目前来说,在这样的交换机网络环境中可以使用下面的两种方法来实现:
1)专用流量分析接入设备TAP(Test Access Point)也称为分路器,是目前较流行的一种网络数据获取方法。TAP可以插入到半/全双工的10/100/1000 MB网络链路中,可将这条链路的全部数据信息复制到分析仪,可提供全面可视的网络数据流,对全线速的双向会话进行准确无误的监测,并且无丢包和延迟,即便是TAP电源掉电也不会中断网络连接。
第一种方法就是通过在交换机上接入一个Cable TAP接线盒,然后将网络嗅探器和所有需要被管理的工作站或服务器连接到Cable TAP接线盒上。由于它也是一种共享式网络连接设备,因而也就可以嗅探到使用它构建的整个局域网中传输的所有数据包了。只不过Cable-TAP接线盒的收发方式是独立进行的,因而它的带宽可以与交换机相似,但在使用时应用两根网线来分别连接它的收与发接口到交换机的独立端口中。Cable TAP可以作为一种固定的设备,永久地连入到网络结构当中而不影响网络的传输性能,因而可以在一开始的时候就将它加入到网络结构当中,以便在后续的网络管理过程中可以使用它。
图1-18 通过Cable TAP连入嗅探器
现在,已经有很多网络生产商生产Cable TAP接线盒,主要目的也是为了跟一些网络协议分析设备一起使用,以便网络分析设备可以监控和分析整个交换机网络环境中所有网络流量。例如,福禄克网络公司就生产这样的在线式TAP连接设备。图1-18就是通过Cable TAP接线盒方式连入网络嗅探器的拓扑图。
使用Cable TAP接线盒解决了使用集线器时的网络传输性能的问题,但是,却没有使用集线器这种方式灵活。在一个允许中断企业正常业务的网络问题解决过程中,可以使用集线器随意在需要分析网络流量的位置进行网络嗅探工作,然后在解决网络问题之后,重新恢复网络的原有结构。
2)第二种方法是通过在交换机上再接入一个小型集线器(HUB),然后将嗅探器和被嗅探的所有主机都连接到这个集线器中。这样,就使被嗅探的网络变成了共享式的以太网,在这个重新构建的共享式局域网中的所有数据包,将会以广播的方式发送到集线器的所有端口。如此一来,只需要将网络嗅探器的以太网网卡置于混杂模式,就可以嗅探到这个共享式局域网中传输的所有数据包。
但是,使用这种方式有它一定的局限性。一方面,将一个关键的网络段连接到集线器上,由于所有的工作站都是共享集线器的带宽的,接入的工作站过多就会影响到它们的网络性能。另一方面,如果在构建局域网时没有考虑到网络嗅探器的使用,也就不可能在一开始就连入了集线器。因而在局域网运行过程中再将集线器接入到交换机上时,就不得不中断网络,以及将它从交换机中退出时,也会中断一次网络。因此,这种接入网络嗅探器的方式只有当出现了某种严重的网络问题,需要用网络嗅探器来分析解决时才能使用。图1-19就是通过集线器连入网络嗅探器的拓扑图。
在没有专用TAP设备时,HUB是一个不错的折中方案。使用这种方式部署Sniffer,HUB将作为广播设备被放置在需要嗅探的中心接点位置上。这种方式之所以被称为折中“方案”或者“廉价方案”,是因为HUB本身属于共享设备从而对现有高速网络有影响。另外,当需要变动嗅探环境时,HUB的部署位置也需要变动,需要中断网络。
总体来讲,SPAN的方式使用简单、灵活,可以监控同一交换机上的多个VLAN环境或者多条链路;而TAP方式由于不需要硬件设备功能支持也备受喜爱,这就是常常见到很多协议分析人员随身携带HUB的原因。
图1-19 通过集线器连入嗅探器(www.xing528.com)
图1-17~图1-19是简单的Sniffer pro部署图例,可以作为参考。
3.特殊功能的网络嗅探器
如果在一个非网管的交换机网络环境中,坚决不可以中断企业业务及改变网络原有结构的方式来使用网络嗅探器,或者就算允许使用集线器,但是在使用时手上没有这样的网络设备。此时,又该如何将网络嗅探器接入到目标交换机网络,达到嗅探进出某台工作站或整个局域网中所有网络流量的目的呢?在这种情形之下,可以选择一些具有特殊功能的网络嗅探器来完成任务。
现在,有一些网络嗅探器软件具有在交换机网络环境中嗅探数据包功能,例如DSniff和Ettercap。使用这样的网络嗅探器软件就能在不需要特殊设备的情况下,得到局域网中进出某台主机的所有数据包。
实际上,这些可以在交换机网络环境中使用的网络嗅探软件,都是使用一些网络攻击手段来达到在交换网络环境中得到数据包的目的。下面就是这些软件可能会使用到的攻击方式。
(1)交换机地址表溢出(Switch Flooding)
交换机通过维护一张MAC地址表来将数据包正确地转发到指定的端口。当使用大量的假冒MAC地址填满交换机的地址空间时,交换机就会像一台普通的HUB一样,将所有多出来的通信广播到整个局域网当中的所有计算机当中。这样一来,当先通过网络嗅探器使用一些无用的MAC地址将交换机的MAC地址表填满后,就可以让交换机将所有数据包以广播的方式转发到整个局域网。此时,只需要将网络嗅探器的以太网网卡设为混杂模式,就可以嗅探到整个交换机网络环境中的所有数据包了。Dsniff软件包中的MACOF就是用来实施交换机MAC地址表溢出攻击的。
现在,这个问题在许多大型交换机当中已经不存在了。这些交换使用了一种方式来限制其MAC地址表被填满,当其MAC地址表容量到某种程度后就会关闭广播通信功能,或者关闭某些端口。
(2)ARP重定向(ARP Redirects)
当一台计算机需要另一台计算机的MAC地址时,它就会向对方发送一个ARP地址请求。每台计算机都会维护一张包含与它会话过的所有计算机的MAC地址的ARP表。只是,这些ARP表会在某段时间刷新一次,将一些超时的ARP项删除。ARP在交换机环境中也是被广播,这是由于这个ARP包中没有具体接收对象的MAC地址。当局域网中的某台工作站发送出一个ARP请求时,同一网段中的所有计算机都可以接收到,然后每台计算机按ARP中提供的IP地址查找自己的ARP地址表。如果找到相对应的,就给那台主机发送一个确认的ARP,此数据包中包含它的MAC地址。
因此,网络嗅探器就可以利用交换机的这个特性,使用ARP欺骗交换机达到可以嗅探某台工作站或所有网络流量的目的。例如,网络嗅探器通过发送一个定制的ARP包,它在包中申请作为某个网段的路由器,当所有计算机收到这个ARP包时,就会更新它们的ARP表,这样,所有的计算机都会将数据包发送到这台嗅探器。如此一来,为了不影响正常的网络业务,所有的网络流量都会通过网络嗅探器再次转发,这就要求网络嗅探器的网络性能要能保证数据包的正常转发。
有时,也可以只针对某台计算机进行ARP地址欺骗,告诉这台计算机网络嗅探器就是路由器,以此让这台计算机将数据包发给网络嗅探器进行转发。这样也就可以嗅探到交换机环境中任何一台想要嗅探的计算机发送出来的数据包了。但是,要注意的是ARP欺骗应该在同一个子网中进行,不然会收到错误的信息。
(3)ICMP重定向(ICMP Redirect)
在一些网络环境中,有时候连接到同一台交换机上的所有计算机虽然在物理上处于同一个网段,但是,它们在逻辑上却是处于不同的网段,也就是所说的存在不同的子网。例如,192.168.0.0/24这个网段,就可以分为192.168.1.0/24,182.168.2.0/24等子网。而且,还可以通过子网掩码来将同一个子网再划分为几个逻辑网段。
这样,就算在同一交换机网络环境中,一个子网中的计算机A要想与另一个子网中的计算机B进行会话,也得通过路由器来进行。当路由器在收到这样的数据包时,它心里明白这两台计算机接在同一台交换机中,它就会发送一个ICMP重定向数据包给计算机A,让它知道它可以直接将数据包发送到B。利用这种方式就可以发送一个伪装的ICMP数据给计算机A,让它将数据包发送到网络嗅探器了。
(4)ICMP路由公告(ICMP Router Advertisements)
ICMP路由公告用来告诉计算机哪台路由器可以使用,就可以先通过这种方式宣告网络嗅探器就是路由器。这样,所有的计算机就会将其数据包发送给网络嗅探器,然后再由它进行重新转发。
(5)MAC地址欺骗(MAC Address Spoofing)
网络嗅探器软件还可以通过MAC地址欺骗方式来冒充不同的计算机。网络嗅探器将包含欺骗的MAC地址的数据包发给交换机,这样就可以欺骗交换机认为它就是这个数据包的真正源地址,然后交换机就会将这个MAC地址保存到其地址表中,接着就会将所有发给真实MAC地址计算机的数据包全部转发给网络嗅探器。
但是,这种方式的前提就是要真正接收数据包的计算机不能运行,如果不这样的话,真实的计算机也会发送相关的包给交换机,交换机又会将其MAC地址表重新刷新。
在Linux系统中,要进行MAC地址欺骗是很容易的,可以通过下列的方式进行:
Ifdowneth0
Ifconfigeth0hwether00:00:ff:ee:09:00:00
Ifupeth0
这样,就用一个欺骗的MAC地址绑定到这块网卡当中,然后通过下列命令来通告网络中的所有计算机,让它们刷新其ARP地址表:
Ping-t192.168.1.255
这样所有的计算机都会收到这个广播Ping命令,然后将它们的ARP地址表刷新,这个ARP地址表中的MAC地址与IP地址的对应就是网络嗅探器的IP地址。这样一来,网络嗅探器就可以得到所有发送给受害计算机的数据包了。
但是有些交换机有一种应对MAC地址欺骗攻击的方式,就是将连接到某个端口上的计算机的MAC地址与具体的端口号绑定。还有一些交换机能够自动锁定第一次到达某个端口上的MAC地址,然后通过一种具体的方式来平衡管理进行具体的物理访问控制。对于这样的交换机必须在解除这些保护功能后才能实施MAC地址欺骗攻击方式的网络嗅探。
实际上,上述这几种网络攻击方式也是攻击者经常用来攻击某个目标网络的手段,因而在使用时应当得到企业领导的许可,并且在不影响正常业务的情况下才能进行。
总的来说,通过上面所述的这3种主要方法,在交换机网络环境中应用网络嗅探器来分析网络故障还是非常有效的。实际上,如果只想了解局域网中某台计算机上的网络连接情况,可以直接在此计算机系统上安装相应的网络嗅探器的方式来解决。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。