电脑技术学习

详解攻击中嗅探原理与反嗅探技术

dn001
嗅探器的基础知识

  什么是嗅探器?

  嗅探器的英文写法是Sniff,可以理解为一个安装在计算机上的窃听设备它可以用来窃听计算机在网络上所产生的众多的信息。简单一点解释:一部电话的窃听装置, 可以用来窃听双方通话的内容,而计算机网络嗅探器则可以窃听计算机程序在网络上发送和接收到的数据。

  可是,计算机直接所传送的数据,事实上是大量的二进制数据。因此, 一个网络窃听程序必须也使用特定的网络协议来分解嗅探到的数据, 嗅探器也就必须能够识别出那个协议对应于这个数据片断,只有这样才能够进行正确的解码。

  计算机的嗅探器比起电话窃听器,有他独特的优势: 很多的计算机网络采用的是“共享媒体"。也就是说,你不必中断他的通讯,并且配置特别的线路,再安装嗅探器,你几乎可以在任何连接着的网络上直接窃听到你同一掩码范围内的计算机网络数据。我们称这种窃听方式为“基于混杂模式的嗅探(promiscuous mode) 。 尽管如此,这种“共享 的技术发展的很快,慢慢转向“交换 技术,这种技术会长期内会继续使用下去, 它可以实现有目的选择的收发数据。

  嗅探器是如何工作的

  如何窃听网络上的信息

  刚才说了,以太网的数据传输是基于“共享原理的:所有的同一本地网范围内的计算机共同接收到相同的数据包。这意味着计算机直接的通讯都是透明可见的。

  正是因为这样的原因,以太网卡都构造了硬件的“过滤器这个过滤器将忽略掉一切和自己无关的网络信息。事实上是忽略掉了与自身Mac地址不符合的信息。

  嗅探程序正是利用了这个特点,它主动的关闭了这个嗅探器,也就是前面提到的设置网卡“混杂模式。因此,嗅探程序就能够接收到整个以太网内的网络数据了信息了。

  什么是以太网的MAC地址 MAC:Media Access Control.

  由于大量的计算机在以太网内“共享“数据流,所以必须有一个统一的办法用来区分传递给不同计算机的数据流的。这种问题不会发生在拨号用户身上,因为计算机会假定一切数据都由你发动给modem然后通过电话线传送出去。可是,当你发送数据到以太网上的时候,你必须弄清楚,哪台计算机是你发送数据的对象。的确,现在有大量的双向通讯程序出现了,看上去,他们好像只会在两台机器内交换信息,可是你要明白,以太网的信息是共享的,其他用户,其实一样接收到了你发送的数据,只不过是被过滤器给忽略掉了。

  MAC地址是由一组6个16进制数组成的,它存在于每一块以太网卡中。后面的章节将告诉你如何查看自己计算机的MAC地址。

  如果你对网络结构不太熟悉,建议参考一下OSI 7-Layer Model,这将有助于你理解后面的东西以太网所使用的协议主要是TCP/IP,并且TCP/IP也用于其他的网络模型(比如拨号用户,他们并不是处于一个以太网环境中)。举例一下,很多的小团体计算机用户都为实现文件和打印共享,安装了“NetBEUI 因为它不是基于TCP/IP协议的,所以来自于网络的黑客一样无法得知他们的设备情况。

  基于Raw协议,传输和接收都在以太网里起着支配作用。你不能直接发送一个Raw数据给以太网,你必须先做一些事情,让以太网能够理解你的意思。这有点类似于邮寄信件的方法,你不可能直接把一封信投递出去,你必须先装信封,写地址,贴邮票,网络上的传输也是这样的。

  下面给出一个简单的图示,有助于你理解数据传送的原理:

  _________

  /........./

  /..Internet./

  +-----+ +----+.............+-----+

   UserA ----- 路由 ............. UserB 

  +-----+ ^ +----+.............+-----+

    /.........../

    /---------/

  +------+

   嗅探器 

  +------+

  UserA IP 地址: 10.0.0.23

  UserB IP 地址: 192.168.100.54

  现在知道UserA要于UserB进行计算机通讯,UserA需要为10.0.0.23到192.168.100.54的通讯建立一个IP包

  这个IP包在网络上传输,它必须能够穿透路由器。因此, UserA必须首先提交这个包给路由器。由每个路由器考查目地IP地址然后决定传送路径。

  UserA 所知道的只是本地与路由的连接,和UserB的IP地址。UserA并不清楚网络的结构情况和路由走向。

  UserA必须告诉路由预备发送的数据包的情况,以太网数据传输结构大概是这样的:

  +--+--+--+--+--+--+

    目标 MAC  

  +--+--+--+--+--+--+

    源 MAC  

  +--+--+--+--+--+--+

   08 00 

  +--+--+-----------+      

  . .

  . IP 包 .

  . .      

  +--+--+--+--+-----+

    CRC校验  

  +--+--+--+--+

  理解一下这个结构,UserA的计算机建立了一个包假设它由100个字节的长度(我们假设一下,20 个字节是IP信息,20个字节是TCP信息,还有60个字节为传送的数据)。现在把这个包发给以太网,放14个字节在目地MAC地址之前,源MAC地址,还要置一个0x0800的标记,他指示出了TCP/IP栈后的数据结构。同时,也附加了4个字节用于做CRC校验(CRC校验用来检查传输数据的正确性)。

标签: