正在加载...

Sniffer原理应用详解

[ 2008/03/24 09:38 | by selboo ]

提到网络嗅探大家都知道sniffer了,sneff是嗅探的意思,sniffer自然就是嗅探器的含义了。Sniffer是利用计算机的网络接口截获目的地为其它计算机的数据报文的一种工具。嗅探器最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。嗅探器也是很多程序人员在编写网络程序时抓包测试的工具,因为我们知道网络程序都是以数据包的形式在网络中进行传输的,因此难免有协议头定义不对的。

了解了嗅探器的基本用法,那它跟我们的网络安全有什么关系?

任何东西都有它的两面性,在黑客的手中,嗅探器就变成了一个黑客利器,上面我们已经提到了arp欺骗,这里再详细讲解arp欺骗的基本原理,实现方法,防范方式,因为很多攻击方式都要涉及到arp欺骗,如会话劫持和ip欺骗。首先要把网络置于混杂模式,再通过欺骗抓包的方式来获取目标主机的pass包,当然得在同一个交换环境下,也就是要先取得目标服务器的同一网段的一台服务器。

Arp是什么?arp是一种将ip转化成以ip对应的网卡的物理地址的一种协议,或者说ARP协议是一种将ip地址转化成MAC地址的一种协议,它靠维持在内存中保存的一张表来使ip得以在网络上被目标机器应答。ARP就是IP地址与物理之间的转换,当你在传送数据时,IP包里就有源IP地址、源MAC地址、目标IP地址,如果在ARP表中有相对应的MAC地址,那么它就直接访问,反之,它就要广播出去,对方的IP地址和你发出的目标IP地址相同,那么对方就会发一个MAC地址给源主机。而ARP欺骗就在此处开始,侵略者若接听到你发送的IP地址,那么,它就可以仿冒目标主机的IP地址,然后返回自己主机的MAC地址给源主机。因为源主机发送的IP包没有包括目标主机的MAC地址,而ARP表里面又没有目标IP地址和目标MAC地址的对应表。所以,容易产生ARP欺骗。例如:我们假设有三台主机A,B,C位于同一个交换式局域网中,监听者处于主机A,而主机B,C正在通信。现在A希望能嗅探到B->C的数据, 于是A就可以伪装成C对B做ARP欺骗——向B发送伪造的ARP应答包,应答包中IP地址为C的IP地址而MAC地址为A的MAC地址。 这个应答包会刷新B的ARP缓存,让B认为A就是C,说详细点,就是让B认为C的IP地址映射到的MAC地址为主机A的MAC地址。 这样,B想要发送给C的数据实际上却发送给了A,就达到了嗅探的目的。我们在嗅探到数据后,还必须将此数据转发给C, 这样就可以保证B,C的通信不被中断。
         以上就是基于ARP欺骗的嗅探基本原理,在这种嗅探方法中,嗅探者A实际上是插入到了B->C中, B的数据先发送给了A,然后再由A转发给C,其数据传输关系如下所示:

B----->A----->C  

B<----A<------C  

当然黑洞在进行欺骗的时候还需要进行抓包和对包进行过虑得到他们想要的信息,如用户名、口令等。虽然网络中的数据包是以二进制的方式进行传输的,但嗅探器的抓包和重组还有过滤等都为他们做了这一切。                                                                                                              

网络嗅探有三种方式,一种是mac洪水,即攻击者向交换机发送大量的虚假mac地址数据,交换机在应接不暇的情况下就象一台普通的hub那样只是简单的向所有端口广播数据了,这时嗅探者就可以借机进行窃听,但如果交换机使用静态地址映射表的话,这种方法就不行了。第二种方式是mac地址复制,即修改本地的mac地址,使其与欲嗅探主机的mac地址相同,这样交换机将会发现有两个端口对应相同的mac地址,于是到该mac地址的数据包同时从这两个端口中发出去。

第三种方式就是用得最多的了--------arp欺骗。我们可以看下自己的机器,在刚开机的时候在dos中输入arp –a(查看本机arp缓存表的内容)可以看到arp缓存表是空的。

如:Microsoft Windows [版本 5.2.3790]

(C) 版权所有 1985-2003 Microsoft Corp.

  

D:\>arp -a

No ARP Entries Found

  

D:\>

那么我们ping一下网关再输入arp –a查看一下。

  

D:\>ping 192.168.0.1

  

Pinging 192.168.0.1 with 32 bytes of data:

  

Reply from 192.168.0.1: bytes=32 time<1ms TTL=64

Reply from 192.168.0.1: bytes=32 time<1ms TTL=64

  

Ping statistics for 192.168.0.1:

    Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 0ms, Maximum = 0ms, Average = 0ms

Control-C

^C

D:\>arp -a

  

Interface: 192.168.0.6 --- 0x10003

  Internet Address      Physical Address      Type

  192.168.0.1          00-0a-e6-48-41-8b     dynamic

  

D:\>

   从上面的ping命令,我们分析包的结果是,首先本机发出一个arp包询问谁是192.168.0.1?192.168.0.1回应一个arp包,并返回一个mac地址,接下来本机再发送request请求,目标机回应该一个reply包,最后将mac地址保存在arp缓存中。

我们再来举一个arp欺骗的实例:

   交换局域网中有A、B、C三台机器,假设ip地址和mac地址如下:

A主机:ip地址为:192.168.0.1,mac地址为:0a:0a:0a:0a:0a:0a

B主机:ip地址为:192.168.0.2,mac地址为:0b:0b:0b:0b:0b:0b

C主机:ip地址为:192.168.0.3,mac地址为:0c:0c:0c:0c:0c:0c
最后编辑: selboo 编辑于2009/07/23 14:21
Tags: ,
,
发表评论
表情
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]