以太网监听的可能性比较高,因为Ethernet网是一个广播型的网络。以太网协议的工作方式为将要发送的数据包发向连在一起的所有主机。在报头中包含着应该接收数据包的主机的正确地址。因此,只有与数据包中目标地址一致的那台主机才能接收信包。但是,当主机在监听模式下,无论数据包中的目标物理地址是什么,主机都将接收。
在局域网中,当同一网络中的两台主机通信时,源主机将写有目的主机IP地址的数据包发向网关,我们知道数据包不能在高层协议直接发送,而需要从TCPIP协议的IP层交给网络接口,即数据链路层。
网络接口不能识别IP地址。在网络接口,由IP层来的带有IP地址的数据包又增加了一部分信息:以太帧的帧头。在帧头中,有两个域分别为只有网络接口才能识别的源主机和目的主机的物理地址,这是一个48位的地址。这个48位的地址是与IP地址对应的。也就是说,一个IP地址,必然对应一个物理地址。对于作为网关的主机,由于它连接了多个网络,因此它同时具有多个IP地址,在每个网络中,它都有一个。发向局域网之外的帧中携带的是网关的物理地址。
在以太网中,填写了物理地址的帧从网络接口中,也就是从网卡中发送出去,传送到物理的线路上。如果局域网是由一条粗缆或细缆连接而成,则数字信号在电缆上传输,信号能够到达线路上的每一台主机。当使用集线器时,发送出去的信号到达集线器,由集线器再发向连接在信线器上的每一条线路,于是,在物理线路上传输的数字信号也能到达连接在集线器上的每一主机。
数字信号到达一台主机的网络接口时,在正常情况下,网络接口读入数据帧,进行检查,如果数据帧中携带的物理地址是自己的,或者物理地址是广播地址,则将数据帧交给上层协议
软件,也就是IP层软件,否则就将这个帧丢弃。对于每一个到达网络接口的数据帧,都要进行这个过程。然而,当主机工作在监听模式下,则所有的数据帧都将被交给上层协议软件处理。
局域网的这种工作方式,一个形象的例子是,大房间就像是一个共享的信道,里面的每个人好像是一台主机。人们所说的话是信息包,在大房间中到处传播。当我们对其中某个人说话时,所有的人都能听到,但只有名字相同的那个人,才会对这些话语做出反映,进行处理,其余的人听到了这些谈话,只能从发呆中猜测,是否在监听他人的谈话。
当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网时,如果一台主机处于监听模式下,它还能接收到发向与自己不在同一子网(使用了不同的掩码、IP地址和网关)的主机的那些信包。也就是说,在同一条物理信道上传输的所有信息都可以被接收到。
许多人会问:能不能监听不在同一个网段计算机传输的信息。答案是否定的,一台计算机只能监听经过自己网络接口的那些信包,否则,我们将能监听到整个
internet,情形会多么可怕。
要使主机工作在监听模式下,需要向网络接口(Interface)发送IO控制命令,将其设置为监听模式。在UNIX系统中,发送这些命令需要超级用户的权限。这一点限制了在UNIX系统中,普通用户是不能进行网络监听的,只有获得超级用户权限,才能进行网络监听。但是,在上网的Windows95中,则没有这个限制,只要运行这一类的监听软件即可。同时,在微机上运行的这类软件具有操作方便,对监听到信息进行综合的能力强的特点。美籍华人China-babble曾提出将网路监听从局域网延伸到广域网中,但这个想法很快就被否定了。如果真是这样的话网络必将天下大乱了。而事实上现在在广域网里也可以监听和截获到一些用户信息,只是还不够明显而已。在整个Internet中就更显得微不足道了。
为了明确的说明这个问题,我们不妨举一个例子来看看:现在有A,B两台主机,通过hub相连在一个以太网内,现在A机上的一个用户想要访问B机提供的WWW服务,那么当A机上的用户在浏览器中键入B的IP地址,得到B机提供的
web服务时,从7层结构的角度上来看都发生了什么呢?
1)首先,当A上的用户在浏览器中键入B机的地址,发出浏览请求后,A机的应用层得到请求,要求访问IP地址为B的主机。
2)应用层于是将请求发送到7层结构中的下一层传输层,由传输层实现利用TCP对IP建立连接。
3)传输层将数据报交到下一层网络层,由网络层来选路。
4)由于A,B两机在一个共享网络中,IP路由选择很简单:IP数据报直接由源主机发送到目的主机。
5)由于A,B两机在一个共享网络中,所以A机必须将32bit的IP地址转换为48bit的以太网地址,请注意这一工作是由arp来完成的。
6)链路层的arp通过工作在物理层的hub向以太网上的每个主机发送一份包含目的IP地址的以太网数据帧,在这份请求报文中申明:谁是B机IP地址的拥有者,请将你的
硬件地址告诉我。
7)在同一个以太网中的每台机器都会“接收”(请注意这一点!)到这个报文,但正常状态下除了B机外其他主机应该会忽略这个报文,而B机网卡驱动程序识别出是在寻找自己的IP地址,于是回送一个ARP应答,告知自己的IP地址和MAC地址。
8)A机的网卡驱动程序接收到了B机的数据帧,知道了B机的mac地址,于是以后的数据利用这个已知的MAC地址作为目的地址进行发送。
9)需要特别指出的一点是:由于以太网的工作原理,尽管B机告知了自己是该IP地址的所有者,但这并不意味着在一个网络内的其他主机听不到A和B之间的通讯,只是在正常状况下其他主机会忽略这些通讯报文而已!如果这些主机不愿意忽略这些报文的话,那么,对于在这个网段上的每台主机的网络接口而言,任何在网络上传输的信息都是可以被听到的。从上面我们知道,如果将网络接口设置为混杂模式(Promiscuous),一台主机可以默不作声的轻松的听到以太网内传输的所有信息,也就是说:窃听也就因此实现了!7.2.2其他传输介质被监听的可能性FDDIToken监听的可能性也比较高,尽管令牌网内并不是一个广播型网络,但实际上,带有令牌的那些包在传输过程中,平均要经过网络上一半的计算机。需要注意的是,如果传输率较高,将可能使监听变得困难。
电话线监听的可能性中等,电话线可以被一些与电话公司协作的人或者一些有机会在物理上访问到线路的人搭线窃听,在微波线路上的信息也会被截获。在实际中,高速的MODEM比低速的MODEM搭线困难得多,因为高速MODEM引入了许多频率。
IP通过有线电视监听的可能性比较高,使用有线电视信道发送IP数据包依靠RF调制线电视信道解调器,RF调制解调器使用一个TV通道用于上行,一个用于下行。在这些线路上传输的信息没有加密,因此,可以被一些可以访问到TV电缆的人截获。
微波和无线电监听的可能性比较高,无线电本来是一个广播型的传输媒介,任何一个有无线电接收机的人都可以截获那些传输的信息。
现在多数的SNIFFER只监视连接时的信息包,原因是SNIFFER如果接受全部的信息包,一个是LOG记录极其大,而且会占用大量的
cpu时间,所以在一个担负繁忙任务的计算机中进行监听,由于占用的CPU和带宽就可以怀疑有Sniffer在工作,当你觉得有异常现象的时候就先需要一些简单的方法来检测。
虽然可以使用PS或者Netstat的命令去查看是否有可以进程和连接信息的状态,但入侵者改变了PS或者Netstat程序也就不能发现这些程序了,其实修改PS命令只须短短数条Shell命令,即可将监听软件的名字过滤掉。