如果在一个非网管的交换机网络环境中,坚决不可以中断企业业务及改变网络原有结构的方式来使用网络嗅探器,或者就算允许使用集线器,但是在使用时手上没有这样的网络设备。此时,我们又该如何将网络嗅探器接入到目标交换机网络,达到嗅探进出某台工作站或整个局域网中所有网络流量的目的呢?在这种情形之下,我们就可以选择一些具有特殊功能的网络嗅探器来完成任务。
现在,有一些网络嗅探器软件具有在交换机网络环境中嗅探数据包功能,例如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地址欺骗是很容易的,可以通过下列的方式来进行:
- Ifdown eth0
- Ifconfig eth0 hw ether 00:00:ff:ee:09:00:00
- Ifup eth0
这样,就用一个欺骗的MAC地址绑定到了这块网卡当中,然后通过下列命令来通告网络中的所有计算机,让它们刷新其ARP地址表:
- Ping –t 192.168.1.255
这样所有的计算机都会收到这个广播Ping命令,然后将它们的ARP地址表刷新,这个ARP地址表中的MAC地址与IP地址的对应就是网络嗅探器的IP地址。这样一来,网络嗅探器就可以得到所有发送给受害计算机的数据包了。
但是有些交换机有一种应对MAC地址欺骗攻击的方式,就是将连接到某个端口上的计算机的MAC地址与具体的端口号绑定。还有一些交换机能够自动锁定第一次到达某个端口上的MAC地址,然后通过一种具体的方式来平衡管理进行具体的物理访问控制。对于这样的交换机必需在解除这些保护功能后才能实施MAC地址欺骗攻击方式的网络嗅探。
实际上,上述这几种网络攻击方式也是攻击者经常用来攻击某个目标网络的手段,因而我们在使用时应当得到了企业领导的许可,并且在不影响正常业务的情况下才能进行。
总的来说,通过本文所述的这3种主要方法,在交换机网络环境中应用网络嗅探器来分析网络故障还是非常用效的。实际上,如果我们只想了解局域网中某台计算机上的网络连接情况,完全可以直接在此计算机系统上安装相应的网络嗅探器的方式来解决。本文的目的只想让大家对在交换机环境中如何接入网络嗅探器有一个全面的了解。只有了解了在交换机网络结构中接入网络嗅探器的方式,我们才能知道在具体的交换机网络中如何去应用它来解决各种网络问题。