探讨在交换环境下的嗅探实现

2010-06-12 08:54黄浩
网络安全技术与应用 2010年6期
关键词:网段路由器报文

黄浩

河源职业技术学院电子与信息学院 广东 517000

0 前言

嗅探器是利用计算机网络接口截获目的地为非本机计算机的数据报文的一种技术。其工作原理为:网卡通常设定为只接收拥有本机MAC地址的数据包,如果接收到传送给其他地址的数据包,则会直接丢弃。而嗅探器可以工作在“混杂”模式,在该模式下的网卡可以捕捉传输中的数据包而不论是否发送给自己的,一概将其转送到上级软件,因此可以监视到流经该网卡的所有数据。

嗅探器的应用极为广泛,网络运作和维护都可以采用,如监视网络流量、分析数据包、监视网络资源利用、鉴定分析网络数据以及诊断并修复网络问题等等。同样因为嗅探器的功能如此强大,以致网络黑客常将它作为攻击武器,非法获取网络信息,严重威胁着网络安全。

1 交换环境下能否嗅探

众所周知交换机是通过MAC地址表来决定将数据包转发到哪个端口的。因此简单的将网络嗅探器接入到交换机端口,然后将网络接口卡设为混杂模式,将只能捕捉到进出网络嗅探器本身的数据包。因此在交换机构建的网络环境中,网络嗅探器不使用特殊的方式是无法获得其它主机传递的数据包。

那是否在交换环境下就无法收到其他用户的数据包,从而无法实现嗅探?是否意味着基于交换机而构建的企业网络就是安全的?答案是否定的。下面笔者将探讨一下嗅探器在交换环境下的实现,让大家更清楚的认识到它的危害性。

2 常见硬件实现方法

对于网络管理员来说,实现网络嗅探的常见的方法是通过利用可网管交换机的端口汇聚功能、接入Cable TAP接线盒或集线器的方法来实现。现在的可网管式交换机一般都有端口汇聚功能,使用该功能时,将允许我们将交换机中其它端口上的流量镜像到一个特殊的端口当中。这时只要将网络嗅探器连接到这个端口上,然后将嗅探器的网络接口卡设为混杂模式,即可嗅探到所有由交换机转发的数据包。而使用Cable TAP接线盒或集线器,则是将网络嗅探器和所有需要被管理的工作站或服务器连接其上,由于它们都是共享式网络连接设备,会转发数据包给所有连接的端口,因而可以嗅探到使用它构建的整个局域网中传输的所有数据包。

一般情况下黑客并没有机会使用这些设备,且如果使用了这些设备会很容易被发现,那么有没有不需要特殊设备而实现嗅探的办法呢?其实可以通过使用网络欺骗的手段,从而达到在交换网络环境中得到数据包的目的。

3 通过攻击实现方法

3.1 ARP协议欺骗

以太网设备无法识别IP地址,只能以48位MAC地址传输来数据包,因此必须把IP目的地址转换成以太网网目的地址,才能在以太网中传递数据。在这两种地址之间存在着映射,地址解析协议(ARP)就是用来确定这些映射的协议。ARP工作时,将发送一个含有所希望的IP地址的广播数据包。目的主机,则以一个含有IP和以太网地址对的数据包作为应答。发送者为节约不必要的ARP通信,将把这个地址对缓存起来。

网络嗅探器可以通过发送定制的 ARP协议包——在其中申明自己是该网段的路由器,当该网段计算机收到这个ARP包时,就会更新它缓存的ARP表,在这以后这些被骗的计算机都会将数据包发送到新的路由器——嗅探器上。如果针对这个网段的计算机进行ARP地址欺骗,告诉他们嗅探器就是路由器,那么将嗅探到交换机环境中所有计算机发送出来的数据包。为了不影响网络业务,例如无法连接互联网,从而被发现,这些被欺骗的数据包还要通过网络嗅探器再次转发到正确的路由器上。

ARP协议欺骗因为需要发送大量的ARP数据包到所有计算机,导致网络数据流量、协议比率的异常,所以容易被管理员发现。

3.2 MAC地址欺骗

网络嗅探器软件可以通过伪造MAC地址来冒充不同的计算机。嗅探器将包含伪造的MAC地址的数据包发给交换机,这样就可以让交换机认为它也是这个数据包的源地址,交换机会将这个MAC地址保存到其地址表中,然后将所有发给真实MAC地址计算机的数据包也复制一份发给网络嗅探器。

相对于ARP协议欺骗要欺骗其它计算机,这种方法只需要欺骗交换机,不需要大的数据包流量,同时不会导致协议比率的异常,因此更不容易被发现,危害更大。下面举例说明实现过程。

本次操作使用到了科来数据包生成器,该软件是一个用于网络测试的网络数据生成工具,可以生成各种的数据包,或直接对网络中捕获的数据包进行数据值编辑,可以说是目前Windows平台上最强的数据包编辑器。在这里使用它来构造数据包,进行交换机的欺骗。

首先在Windows系统中的CMD输入arp -a,显示本机arp缓存,查找到路由器(网关)的MAC地址为aa.bb.cc.dd.ee.ff,记录下来,这就是我们需要伪造的地址。

然后通过科来数据包生成器构建数据包(图1),本软件提供了 4种数据包模板:ARP、IP、TCP、UDP,可以选择任一模板构建欺骗数据包。因为交换机只会查看网络第二层的地址并学习,因此我们需要修改数据包的网络的第二层,也就是以太网层,改为路由器的MAC地址。

然后设定该数据包以一定的时间发送,例如每10秒发送一次,避免长时间无数据发送导致交换机删除该地址记录。

通过这种方法,交换机就从连接路由器的端口和连接嗅探器的端口中学习并记录了同样的MAC地址,那么当目标机器发送数据给路由器时,同样会发送一份完全相同的数据给本机,从而获取到相应的数据。

图1 科来数据包生成器构建数据包

最后打开嗅探器,在本此操作中,笔者使用的嗅探器是SniffPass,它可以监听网络,捕获通过网络适配器的密码,并即刻显示在屏幕上。SniffPass可以捕获以下协议中的密码:POP3,IMAP4,SMTP,FTP,和HTTP(基本身份验证密码,非加密)。效果如图2。

图2 SniffPass嗅探结果图

当然只伪造路由器的MAC地址的话,就只能监听到向外发送的数据(一般是连接互联网的),如果还需要监听某台计算机所有数据的话,可以重复上面的过程,伪造MAC的地址改为该计算机即可。

以上的两种方法只适合对同网段计算机的嗅探,如果被嗅探的计算机和嗅探器不在同一网段,例如一个在 192.168.1.0/24,另外一个在 192.168.2.0/24。对于像这些虽然连接到同一台交换机上,在物理上连通,但是逻辑上却是处于不同的网段的计算机,那么以上两种方法就不适合了,需要用到其他的网络攻击手段,例如ICMP重定向。

3.3 ICMP重定向报文

ICMP重定向报文是ICMP控制报文中的一种。在某些情况下,当路由器检测到一台机器使用非优化路由,如对于计算机A通过路由器B转发数据包,且数据包下一跳目的路由器C和计算机A在同一交换机可以直接互连的时候,路由器B会向该主机发送一个ICMP重定向报文,提示计算机A改变路由,数据包直接发往路由器 C。ICMP虽然不是路由协议,但是它却可以指导数据包的流向,使数据流向正确的网关(也有可能是错误的网关,如果被人利用的话)。

对于在同一交换机网络中,处于不同子网的计算机A要和计算机B进行会话,必须通过路由器来进行。这就给黑客一个可以利用的方法,就是发送一个伪造的ICMP数据包给计算机A,让它将数据包发送到网络嗅探器所在的计算机。

3.4 ICMP路由公告

它同样示利用ICMP报文进行的网络攻击,ICMP路由公告用来告诉计算机哪台路由器可以使用。黑客可以先通过这种方式宣告网络嗅探器就是路由器,该网络中的所有计算机就会将其数据包发送给网络嗅探器,希望由它进行转发,那么接下来的事情自然可想而知。

4 总结

综合以上可知嗅探器的非法使用严重影响着网络的安全,尤其是MAC地址欺骗这种容易实施,且不容易发现的方法,危害更是极大。所以管理员以及网络使用者必须对安全问题高度重视,时刻保持警惕。

[1]JEFFRY.ARP欺骗攻击原理深入分析.http://netsecurity.51cto.com.

[2]刘毅,朱燕京,陈阵.局域网络环境下ARP欺骗攻击及安全防范策略[J].电脑知识与技术.2008.

[3]momoplus.ICMP详解.http://www.infosecurity.org.cn.

[4]ICMP重定向.http://www.godupgod.com/post/92.html.

[5]SniffPass说明.http://www.nirsoft.net/utils/password_sniffer.html.

猜你喜欢
网段路由器报文
基于J1939 协议多包报文的时序研究及应用
买千兆路由器看接口参数
维持生命
路由器每天都要关
路由器每天都要关
CTCS-2级报文数据管理需求分析和实现
单位遭遇蠕虫类病毒攻击
浅析反驳类报文要点
可变编组动车组制动系统TCN网络信号传输需求研究*
网上邻居跨网段访问故障