『第13天』网络监听技术分析(纯属理论)
 
 
        今天我们先说几个基本概念.首先,我们知道,一台接在以太网内的计算机为了和其他主机进行通讯,在硬件上是需要网卡,在软件上是需要网卡驱动程序的。而每块网卡在出厂时都有一个唯一的不与世界上任何一块网卡重复的硬件地址,称为mac地址。同时,当网络中两台主机在实现tcp/ip通讯时,网卡还必须绑定一个唯一的ip地址.
         对我们来说,浏览网页,收发邮件等都是很平常,很简便的工作,其实在后台这些工作是依*tcp/ip协议族实现的,大家知道有两个主要的网络体系:OSI参考模型和TCP/IP参考模型,OSI模型即为通常说的7层协议,它由下向上分别为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,而tcp/ip模型中去掉了会话层和表示层后,由剩下的5层构成了互联网的基础,在网络的后台默默的工作着。
        当局域网内(因为我们最常见的就是局域网)的主机都通过HUB等方式连接时,一般都称为共享式的连接(就是大家长说的共享),这种共享式的连接有一个很明显的特点:就是HUB会将接收到的所有数据向HUB上的每个端口转发,也就是说当主机根据mac地址进行数据包发送时,尽管发送端主机告知了目标主机的地址,但这并不意味着在一个网络内的其他主机听不到发送端和接收端之间的通讯,只是在正常状况下其他主机会忽略这些通讯报文而已!如果这些主机不愿意忽略这些报文,网卡被设置为promiscuous状态的话,那么,对于这台主机的网络接口而言,任何在这个局域网内传输的信息都是可以被听到的。如果网卡被设置为为混杂模式(promiscuous),主机将会默不作声的听到以太网内传输的所有信息,也就是说:窃听也就因此实现了! 
        对发生在局域网的其他主机上的监听,一直以来,都缺乏很好的检测方法。这是由于产生网络监听行为的主机在工作时总是不做声的收集数据包,几乎不会主动发出任何信息。但可惜的有些大虾们就爱动脑筋啊,现在已经有些方法了
1:反应时间
向怀疑有网络监听行为的网络发送大量垃圾数据包,根据各个主机回应的情况进行判断,正常的系统回应的时间应该没有太明显的变化,而处于混杂模式的系统由于对大量的垃圾信息照单全收,所以很有可能回应时间会发生较大的变化。这个方法很好,但有时候也没用因为大家没经验嘛
2:观测dns
许多的网络×××都会尝试进行地址反向解析,在怀疑有网络监听发生时可以在dns系统上观测有没有明显增多的解析请求。没DNS的或者不能接触的就有点郁闷了
3:利用ping模式进行监测
这个方法我不怎么知道,看了一些文章就COPY了一下,有点头晕,但应该能看懂:假设我们怀疑的主机的硬件地址是00:30:6E:00:9B:B9,它的ip地址是192.168.1.1,那么我们现在伪造出这样的一种icmp数据包:硬件地址是不与局域网内任何一台主机相同的00:30:6E:00:9B:9B,目的地址是192.168.1.1不变,我们可以设想一下这种数据包在局域网内传输会发生什么现象:任何正常的主机会检查这个数据包,比较数据包的硬件地址,和自己的不同,于是不会理会这个数据包,而处于网络监听模式的主机呢?由于它的网卡现在是在混杂模式的,所以它不会去对比这个数据包的硬件地址,而是将这个数据包直接传到上层,上层检查数据包的ip地址,符合自己的ip,于是会对对这个ping的包做出回应。这样,一台处于网络监听模式的主机就被发现了。
4:利用arp数据包进行监测
这个方法和上面的差不多,它使用arp数据包替代了上述的icmp数据包而已,向局域网内的主机发送非广播方式的arp包,如果局域网内的某个主机响应了这个arp请求,那 么我们就可以判断它很可能就是处于网络监听模式了,这是目前相对而言比较好的监测模式。
(什么叫ARP?就说ARP协议,它是Address Resolution Protocol”(地址解析协议)的缩写,在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的.所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。)