转:网络监听原理

网络监听是指利用计算机的网络接口截获目的地为第三方计算机的数据报文的一种技术。利用这种技术可以监听网络的当前流量状况;网络程序的运行以及非法窃取网络中传输的机密信息。

在共享式以太网中,所有的通讯都是广播的,也就是说通常在同一网段的所有网络接口都可以访问在物理媒体上传输的所有数据,使用ARP和RARP协议进行相互转换。在正常的情况下,一个网络接口应该只响应两种数据帧:与自己硬件地址相匹配的数据帧和发向所有机器的广播数据帧。在一个实际的系统中,数据的收发由网卡来完成。每个以太网卡拥有一个全球难一的以太网地址。以太网地址是一个48位的二进制数。在以太网卡中内建有一个数据报过滤器。该数据包过滤器的作用是保留以本身网卡的MAC地址为通讯目的的数据包和广播数据包,丢弃所有其它无关的数据包,以免除CPU对无关的数据包做无谓的处理。这是以太网卡在一般情况下的工作方式。在这种方式下,以太网卡只将接收到的数据包中与本机有关部分向上传递。然而数据包过滤器是可以通过编程禁用的。禁用数据包过滤器后,网卡将把接收到的所有的数据包向上传递,上一层软件因此可以监听以太网中其它计算机之间的通讯。我们称这种工作模式为“混杂模式”。多数网卡支持“混杂模式”,而该模式还是微软公司的“pC99”规范中对网卡的一个要求。网卡的“混杂模式”使得采用普通网卡作为网络探针,实现网络的侦听变得非常容易。一方面方便了网络管理,另一方面,普通用户也能轻易地侦听网络通讯,对用户的数据通讯保密是一个很大的威胁。在进行此种方式的数据监听时,是在网络的节点处设置网络设备为混杂模式,进行数据监听管理网络;黑客则是利用ARP侦探网络上出于混杂模式的网络节点并将黑客软件放置在节点处进行窃听的。

还有一种窃听方式是利用ARP欺骗达到的。ARP欺骗又被称为ARP重定向技术,ARP地址解析协议虽然是一个高效的数据链路层协议,但是作为一个局域网的协议,它是建立在各主机之间互相信任基础之上的,因此存在一定的安全问题:

(1)主机地址映射表是基于高速缓存动态更新的,这是ARP协议的特色,也是安全问题之一。由于正常的主机间MAC地址刷新都是有时限的,这样假冒者如果在下次更新之前成功的修改了被攻击机器上的地址缓存,就可以进行假冒。

(2)ARP请求以广播方式进行。这个问题是不可避免的,因为正是由于主机不知道通信方的MAC地址,才需要进行ARP广播请求。这样攻击老就可以伪装ARP应答,与广播者真正要通信的机器进行竞争。还可以确定子网内机器什么时候会刷新MAC地址缓存,以确定最大时间限度的进行假冒。

(3)可以随意发送

ARP应答包。由于ARP协议是无状态的,任何主机即使在没有请求的时候也可

以做出应答,只要应答有效,接收到应答包的主机就无条件的根据应答包的内容更新本机高速缓存。

(4)ARP应答无需认证。由于ARP协议是一个局域网协议,设计之初,出于传输效率的考虑,在数据链路层就没有作安全上的防范。在使用ARP协议交换MAC

地址时无需认证,只要收到来自局城网内的ARP应答包,就将其中的MAC/IP对刷新到本主机的高速缓存中。ARP重定向的实施办法是根据以上ARP地址解析协议的安全漏洞,进行网络信息包 的截获以及包的转发攻击活动,步骤如下:

(1)    把实施攻击的主机的网卡设置为混杂模式。

(2)    在实施攻击的主机上保持一个局域网内各个IP/MkC包的对应列表,并根据截获的IP包或者ARP包的原IP域进行更新。

(3)收到一个IP包之后,分析包头,根据IP包头里的IP目的地址,找到相应的MAC地址。

(4)将本机的MAC地址设成原MAC地址,将第二步查到的MAC地址作为目的MAC地址,将收到的IP包发送出去。通过以上的重定向,攻击者使网络数据包在经过攻击者本身的主机后,转发到数据包应该真正到达的目的主机去,从而具有很强的欺骗性。

本文中采用的是第一种方法,即在共享以太网中通过网卡在混杂模式工作,监听整个以太网的数据包。