网络监听本来是为了管理网络,监视网络的状态和数据流动情况。但是由于它能有效地截获网上的数据,因此也成了网上黑客使用得最多的方法。有一个前提条件,那就是监听只能是同一网段的主机,这里同一网段是指物理上的连接。因为不是同一落千丈网段的数据包,在网关就被滤掉,传不到该网段来。否则一个Internet上的一台主机,便可以监视整个Internet了。
网络监听最有用的是获得用户口令。当前,网上的数据绝大多数是以明文的形式传输。而且口令通常都很短且容易辨认。当口令被截获,则可以非常容易地登上另一台主机。
简单的检测方法
网络监听是很难被发现的。运行网络监听的主机只是被动地接收在局域局上传输的信息,并没有主动的行动。即不会与其他主机交换信息,也不能修改在网上传输的信包。这一切决定了网络监听的检测是非常困难的。
当某一危险用户运行网络监听软件时,可以通过ps-ef或ps-aux命令来发现。然而,当该用户暂时修改了ps命令,则也是很发现的。能够运行网络监听软件,说明该用户已经具有了超级的用户的权限,他可以修改任何系统命令文件,来掩盖自己的行踪。其实修改ps命令只须短短数条shell命令,将监听软件的名字过滤掉即可。
另外,当">系统运行网络监听软件时,系统因为负荷过重,因此对外界的响应很慢。但也不能因为一个系统响应过慢而怀疑其正在运行网络监听软件。
这是两个检测监听的方法,原理很简单,但事实上并不容易做到,做为检测方法的一点补充。
*方法一:
对于怀疑运行监听程序的机器,用正确的IP地址和错误的物理地址去ping,运行监听程序的机器会有响应。这是因为正常的机器不接收错误的物理地址,外于监听状态的机器能接收,如果他的IP stack不再次反向检查的话,就会响应。这种方法依赖于系统工程的Ipstack,对一些系统可能行不通。
*方法二:
往网上发大量不存在的物理地址的包,由于监听程序将处理这些包,将导致性能下降。通过比较前后该机器性能(icmp echo delay等方法);加以判断。这种方法难度比较大。
一个看起来可行的检查监听程序的办法是搜索所有主机上运行的进程。当然,这几乎是不可能的,因为我们很难同时检查所有主机上的进程。但是至少管理员可以确定是否有一个进程被从管理员机器上启动。对于检查运行进程这种方法,那些使用DOS、Windows for Workgroup或者Windows 95的机器很难做到这一点。而使用UNIX和Windows NT的机器可以很容易地得到当前进程的清单。