1.6.6 欺骗交换机
正如前面介绍的,在网络中使用交换机会使嗅探更困难。从理论上说,连接到交换机上的计算机应该只能看见发给自己的网络流量,不过,却有一些技术可绕过该技术限定。下面简要列举攻破交换机防守的几种方式。
1.交换洪泛(switch flooding)
部分交换机可以像集线器一样运行,也就是说所有的数据包被广播给了所有的计算机。通过这种方式就可以发送大量假MAC地址的数据包使交换机地址表溢出,进而攻破交换机所有的安全防备。
2.ARP重定向(ARP redirect)
当一台计算机需要其他计算机的MAC地址时,它会发送一个地址解析协议(ARP)请求。每台计算机也维护一个ARP表来存储与其会话的计算机的MAC地址。只要ARP在一个交换机上广播,所有与该交换机连接的计算机都能看到该请求与回应。这就导致可利用ARP来欺骗一台交换机。
入侵者通过发送一个假的ARP声明,使交换机误认为入侵者是另外一个角色,从而扰乱了交换机的正常工作,并发送网络流量到它不应该发送的地方。比如,入侵者可以发送一个ARP声明,把入侵者的计算机作为一个路由器,在这种情况下,其他计算机将试图发送它们的数据包通过入侵者的计算机进行路由。或者,入侵者只给一个用户发送一个ARP请求,声明自己为路由器,这样,此用户就会开始推进数据包给入侵者。
3.ICMP重定向(ICMP redirect)
有时候几台计算机处在同一个物理网段与交换机上,但是它们不在同一个逻辑网段上,这意味着它们在不同的IP子网中。当计算机A想与计算机B会话时,可通过一个路由器发送它的请求。路由器知道它们在同一个物理网段上,因此发送一个ICMP重定向给计算机A,使它知道可以直接发送数据包给计算机B。此功能使得入侵者(计算机X)可以发送一个假的ICMP重定向给计算机A,告诉它把发送给计算机B的数据包发送给计算机X。
4.ICMP路由广播(ICMP router advertisement)
这些广播告诉计算机使用哪一个路由器。如果入侵者发送一个广播,声明它就是那个路由器,那么此计算机就会向该入侵者推进所有的数据包。
5.MAC地址欺骗(MAC address spoofing)
入侵者可以利用伪装计算机MAC地址的方式,将自己伪装成另外一台计算机。首先,它会发送带有受害者源MAC地址的数据包欺骗交换机,交换机把该欺骗信息放进它的地址表中,并开始发送数据包给入侵者。但是因为受害者仍在交换机上,如果交换机进行MAC地址表更新就会导致交换机把地址表改回来,故入侵者常通过一些拒绝服务(DoS)类型的攻击使受害者离线,然后重定向交换机并继续通信。
部分交换机具有允许静态赋予每个端口一个MAC地址的防范措施。但是如果网络规模很大此防范措施的效用就有限了,虽然仍可减少MAC欺骗,但降低了可维护性。还有部分交换机允许端口锁定它所遇到的第一个MAC地址,该配置在物理端口访问受限的环境中,提出了在可维护性与安全性之间的强制性平衡。
要想在Linux上欺骗计算机的MAC地址,可使用下列的ifconfig命令:
ifconfig eth0 down//关闭网卡
ifconfig eth0 hw ether 00:02:b3:00:00:AA//设置MAC地址
ifconfig eth0 up//打开网卡
然后通过广播ping命令向各主机登记该MAC地址:
ping-c 1-b 192.168.1.255
现在就可以嗅探实际拥有该MAC地址的计算机的所有网络流量了。
6.重新配置交换机的端口映射
正如前面所提及的,交换机的端口能被配置成可以查看到其他端口网络流量的端口。这可通过Telnet或其他一些默认的后门连接交换机来实现。如果网络管理协议(SNMP)没有受到保护,还可以通过它来实现端口映射的配置。
7.网线探针
正如之前所述,网线探针能够用来实现网线的物理窥探。在一台交换机的上行网线上布下网线探针可以显示所有出入交换机的网络流量。