荒
荒原
网络监听法
使用这种方法将会有很大的风险,但是各种入侵记录显示,还是有相当多的黑客采用了此类手法,原因很简单,用这种方能够很容易地获取黑客想的要密码。
一、网络监听的原理
网络监听工具原本是提供给管理员的一类管理工具,使用这种工具可以监视网络的状态、数据流动情况以及网络上传输的信息。当信息以明文的形式在网络上传输时,使用网络监听的方式进行攻击并不是一件难事,将网络接口设置在监听模式,便可以源源不断地将网上传输的信息截获。网络监听可以在网上的任何一个位置实施,如局域网中的一台主机、网关上或远程网的调制解调器之间等。
当黑客成功登录一台网络上的主机并取得这台主机的超级用户权之后,若想扩大战果,尝试登录其它主机,那么使用网络监听将是最方便也最有效的方法,它常常能轻易获得用其它方法很难获得的信息。
对于一个施行网络攻击的人来说,能攻破网关、路由器、防火墙的情况极为少见,在这里完全可以由安全管理员安装一些设备,对网络进行监控,或者使用一些专门设备,运行专门的监听软件,并防止任何非法访问。然而,潜入一台不引人注意的计算机中,悄悄地运行一个监听程序,一个黑客是完全可以做到的。监听是非常消耗CPU资源的,在一个担负繁忙任务的计算机中进行监听,可以立即被管理员发现,因为他会发现计算机的响应速度令人惊奇地慢。
对于一台连网的计算机,最方便的是在以太网中进行监听,只须安装一个监听软件,然后就可以坐在机器旁测览监听到的信息了。
以太网协议的工作方式为将要发送的数据包发往连接在一起的所有主机。在包头中包含着应该接收数据包的主机的正确地址。因此,只有与数据包中目标地址一致的那台主机才能接收信包。但是,当主机工作在监听模式下,无论数据包中的目标物理地址是什么,主机都将接收。
在Intenet上,有许多这样的局域网。几台甚至几十台主机通过一条电缆,一个集线器连在一起。在协议的高层或用户看来,当同一网络中的两台主机通信时,源主机将写有目的主机IP地址的数据包直接发向目的主机。或者当网络中的一台主机同外界的主机通信时,源主机将写有目的主机IP地址的数据包发向网关。但是,这种数据包并不能在协议栈的高层直接发送出去。要发送的数据包必须从TCP/IP协议的IP层交给网络接口,即数据链路层。
网络接口不能识别IP地址。在网络接口,由IP层来的带有IP地址的数据包又增加了一部分信息:以太帧的帧头。在帧头中,有两个域分别为只有网络接口才能识别的源主机和目的主机的物理地址,这是一个48位的地址。这个48位的地址是与IP地址对应的。也就是说,一个IP地址,必然对应一个物理地址。对于作为网关的主机,由于它连接了多个网络,因此它同时具有多个IP地址,在每个网络中,它都有一个。发向局域网之外的帧中携带的是网关的物理地址。
在以太网中,填写了物理地址的帧从网络接口中,也就是从网卡中发送出去,传送到物理的线路上、如果局域网是由一条粗缆或细缆连接而成,则数字信号在电缆上传输,信号能够到达线路上的每一台主机。
当使用集线器时,发送出去的信号到达集线器,由集线器再发向连接在集线器上的每一条线路。于是,在物理线路上传输的数字信号也能到达连接在集线器上的每一主机。
数字信号到达一台主机的网络接口时,在正常情况下,网络接口读人数据帧,进行检查,如果数据帧中携带的物理地址是自己的,或者物理地址是广播地址,则将数据帧交给上层协议软件,也就是IP层软件,否则就将这个帧丢弃。对于每一个到达网络接口的数据帧,都要进行这个过程。然而,当主机工作在监听模式下,则所有的数据帧都将被交给上层协议软件处理。
当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网时,如果一台主机处于监听模式下,它还能接收到发向与自己不在同一子网(使用了不同的掩码、IP地址和网关)的主机的那些信包。也就是说,在同一条物理信道上传输的所有信息都可以被接收到。
需要说明的是,一台计算机只能监听经过自己网络接口的那些信包。
要使主机工作在监听模式下,需要向网络接口(IntCrfacC)发送I/O控制命令,将其设置为监听模式。在UNIX系统中,发送这些命令需要超级用户的权限。这一点限制了在UNIX系统中,普通用户是不能进行网络监听的。只有获得超级用产权限,才能进行网络监听。但是,在上网的Windows95中,则没有这个限制。只要运行这一类的监听软件即可。同时,在微机上运行的这类软件具有作方便,对监听到信息的综合能力强的特点。
目前的绝大多数计算机网络使用共享的通信信道。从上面的讨论中,我们知道,通信信道的共享意味着,计算机有可能接收发向另一台计算机的信息。另外,要说明的是,Internet中使用的大部分协议都是很早设计的,许多协议的实现都是基于一种非常友好的,通信的双方充分信任的基础之上。因此,一直到现在,网络安全还是非常脆弱的。在通常的网络环境下,用户的所有信息,包括户头和口令信息都是以明文的方式在网上传输。因此,对于一个网络黑客和网络攻击者进行网络监听,获得用户的各种信息并不是一件很困难的事。只要具有初步的网络和TCP/IP协议知识,便能轻易地从监听到的信息中提取出感兴趣的部分。
网络监听常常要保存大量的信息,对收集的信息进行大量的整理工作,因此,正在进行监听的机器对用户的请求响应很慢。
二、网络监听被黑客利用的危害
首先,网络监听软件运行时,需要消耗大量的处理器时间,如果在此时,就详细地分析包中的内容,许多包就会来不及接收而漏掉。因此,网络监听软件通常都是将监听到的包存放在文件中,待以后再分析。
其次,网络中的数据包非常复杂,两台主机之间即使连续发送和接受数据包,在监听到的结果中,中间必然会夹杂了许多别的主机交互的数据包。监听软件将同一TCP会话的包整理到一起,已经是很不错了。如果还希望将用户的详细信息整理出来,需要根据协议对包进行大量的分析。面对网上如此众多的协议,这个监听软件将会十分庞大。
其实,找这些信息并不是一件难事。只要根据一定的规律,很容易将有用的信息—一提取出来。
网络监听本来是为了管理网络,监视网络的状态和数据流动情况。但是由于它能有效地截获网上的数据,因此也成了网上黑客使用得最多的方法。有一个前提条件,那就是监听只能是同一网段的主机,这里同一网段是抬物理上的连接。因为不是同一网段的数据包,在网关就被滤掉,传不到该网段来。否则一个Internet上的一台主机,便可以监视整个Internet了。
网络监听常常被用来获取用户的口令。当前,网上的数据绝大多数是以明文的形式传输。而且口令通常都很短且容易辨认。当口令被截获,则可以非常容易地登上另一台主机。
三、检测网络监听的方法
网络监听是很难被发现的。运行网络监听的主机只是被动地接收在局域网上传输的信息,并没有主动的行动。即不会与其他主机交换信息,也不能修改在网上传输的信色。这一切决定对网络监听的检测是非常困难的。
当某一危险用户运行网络监听软件时,可以通过ps-ef或ps-aux命令来发现。然而,当该用户暂时修改了ps命令,则也是很难发现的。能够运行网络监听软件,说明该用户已经具有了超级用户的权限,他可以修改任何系统命令文件,来掩盖自己的行踪。其实修改ps命令只须短短数条shell命令,将监听软件的名字过滤掉即可。
另外,当系统运行网络监听软件时,系统因为负荷过重,因此对外界的响应很慢。但也不能因为一个系统响应过慢而怀疑其正在运行网络监听软件。
以下是两个检测监听的方法,原理很简单,但事实上并不容易做到,有兴趣的读者可以一试。
方法一:
对于怀疑运行监听程序的机器,用正确的IP地址和错误的物理地址去ping,运行监听程序的机器会有响应。这是因为正常的机器不接收错误的物理地址,处于监听状态的机器能接收,如果他的IPstack不再次反向检查的话,就会响应。这种方法依赖于系统的IP stack,对一些系统可能行不通。
方法二:
往网上发大量不存在的物理地址的包,由于监听程序将处理这些包,将导致性能下降。通过比较前后该机器性能(icmp echo delay等方法)加以判断。这种方法难度比较大。
一个看起来可行的检查监听的办法是搜索所有主机上运行的进程。当然,这几乎是不可能的,因为我们很难同是检查所有主机上的进程。但是至少管理员可以确定是否有一个进程被从管理员机器上启动。对于检查运行进程这种方法,那些使用DOS、Windows for Workgroup或者Windows 95的机器很难做到这一点。而使用UNIX和Windows NT的机器可以很容易地得到当前进程的清单。
在UNIX下,可以用下列命令:
ps –aun或ps –augx
这个命令产生一个包括所有进程的清单——进程的属主、这些进程占用的CPU时间及占用的内存等等。这些输出在STDOUT上,以标准表的形式输出。如果一个进程正在运行,它就会被列在这张清单中(除非ps或其他程序变成了一个特洛伊木马程序)。
另外一个办法就是去搜监听程序,现在只有那么多种的监听程序。入侵者很可能使用的是一个免费软件。在这种情况下,管理员就可以检查目录,找出监听程序,但这很困难而且很费时间。目前还不知道有哪种现在的工具可以做到这一点。在UNIX系统上,人们可能不不编写一个程序。另外,如果监听程序被换成另一个名字,管理员也不可能找到这个监听程序。
使用这种方法将会有很大的风险,但是各种入侵记录显示,还是有相当多的黑客采用了此类手法,原因很简单,用这种方能够很容易地获取黑客想的要密码。
一、网络监听的原理
网络监听工具原本是提供给管理员的一类管理工具,使用这种工具可以监视网络的状态、数据流动情况以及网络上传输的信息。当信息以明文的形式在网络上传输时,使用网络监听的方式进行攻击并不是一件难事,将网络接口设置在监听模式,便可以源源不断地将网上传输的信息截获。网络监听可以在网上的任何一个位置实施,如局域网中的一台主机、网关上或远程网的调制解调器之间等。
当黑客成功登录一台网络上的主机并取得这台主机的超级用户权之后,若想扩大战果,尝试登录其它主机,那么使用网络监听将是最方便也最有效的方法,它常常能轻易获得用其它方法很难获得的信息。
对于一个施行网络攻击的人来说,能攻破网关、路由器、防火墙的情况极为少见,在这里完全可以由安全管理员安装一些设备,对网络进行监控,或者使用一些专门设备,运行专门的监听软件,并防止任何非法访问。然而,潜入一台不引人注意的计算机中,悄悄地运行一个监听程序,一个黑客是完全可以做到的。监听是非常消耗CPU资源的,在一个担负繁忙任务的计算机中进行监听,可以立即被管理员发现,因为他会发现计算机的响应速度令人惊奇地慢。
对于一台连网的计算机,最方便的是在以太网中进行监听,只须安装一个监听软件,然后就可以坐在机器旁测览监听到的信息了。
以太网协议的工作方式为将要发送的数据包发往连接在一起的所有主机。在包头中包含着应该接收数据包的主机的正确地址。因此,只有与数据包中目标地址一致的那台主机才能接收信包。但是,当主机工作在监听模式下,无论数据包中的目标物理地址是什么,主机都将接收。
在Intenet上,有许多这样的局域网。几台甚至几十台主机通过一条电缆,一个集线器连在一起。在协议的高层或用户看来,当同一网络中的两台主机通信时,源主机将写有目的主机IP地址的数据包直接发向目的主机。或者当网络中的一台主机同外界的主机通信时,源主机将写有目的主机IP地址的数据包发向网关。但是,这种数据包并不能在协议栈的高层直接发送出去。要发送的数据包必须从TCP/IP协议的IP层交给网络接口,即数据链路层。
网络接口不能识别IP地址。在网络接口,由IP层来的带有IP地址的数据包又增加了一部分信息:以太帧的帧头。在帧头中,有两个域分别为只有网络接口才能识别的源主机和目的主机的物理地址,这是一个48位的地址。这个48位的地址是与IP地址对应的。也就是说,一个IP地址,必然对应一个物理地址。对于作为网关的主机,由于它连接了多个网络,因此它同时具有多个IP地址,在每个网络中,它都有一个。发向局域网之外的帧中携带的是网关的物理地址。
在以太网中,填写了物理地址的帧从网络接口中,也就是从网卡中发送出去,传送到物理的线路上、如果局域网是由一条粗缆或细缆连接而成,则数字信号在电缆上传输,信号能够到达线路上的每一台主机。
当使用集线器时,发送出去的信号到达集线器,由集线器再发向连接在集线器上的每一条线路。于是,在物理线路上传输的数字信号也能到达连接在集线器上的每一主机。
数字信号到达一台主机的网络接口时,在正常情况下,网络接口读人数据帧,进行检查,如果数据帧中携带的物理地址是自己的,或者物理地址是广播地址,则将数据帧交给上层协议软件,也就是IP层软件,否则就将这个帧丢弃。对于每一个到达网络接口的数据帧,都要进行这个过程。然而,当主机工作在监听模式下,则所有的数据帧都将被交给上层协议软件处理。
当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网时,如果一台主机处于监听模式下,它还能接收到发向与自己不在同一子网(使用了不同的掩码、IP地址和网关)的主机的那些信包。也就是说,在同一条物理信道上传输的所有信息都可以被接收到。
需要说明的是,一台计算机只能监听经过自己网络接口的那些信包。
要使主机工作在监听模式下,需要向网络接口(IntCrfacC)发送I/O控制命令,将其设置为监听模式。在UNIX系统中,发送这些命令需要超级用户的权限。这一点限制了在UNIX系统中,普通用户是不能进行网络监听的。只有获得超级用产权限,才能进行网络监听。但是,在上网的Windows95中,则没有这个限制。只要运行这一类的监听软件即可。同时,在微机上运行的这类软件具有作方便,对监听到信息的综合能力强的特点。
目前的绝大多数计算机网络使用共享的通信信道。从上面的讨论中,我们知道,通信信道的共享意味着,计算机有可能接收发向另一台计算机的信息。另外,要说明的是,Internet中使用的大部分协议都是很早设计的,许多协议的实现都是基于一种非常友好的,通信的双方充分信任的基础之上。因此,一直到现在,网络安全还是非常脆弱的。在通常的网络环境下,用户的所有信息,包括户头和口令信息都是以明文的方式在网上传输。因此,对于一个网络黑客和网络攻击者进行网络监听,获得用户的各种信息并不是一件很困难的事。只要具有初步的网络和TCP/IP协议知识,便能轻易地从监听到的信息中提取出感兴趣的部分。
网络监听常常要保存大量的信息,对收集的信息进行大量的整理工作,因此,正在进行监听的机器对用户的请求响应很慢。
二、网络监听被黑客利用的危害
首先,网络监听软件运行时,需要消耗大量的处理器时间,如果在此时,就详细地分析包中的内容,许多包就会来不及接收而漏掉。因此,网络监听软件通常都是将监听到的包存放在文件中,待以后再分析。
其次,网络中的数据包非常复杂,两台主机之间即使连续发送和接受数据包,在监听到的结果中,中间必然会夹杂了许多别的主机交互的数据包。监听软件将同一TCP会话的包整理到一起,已经是很不错了。如果还希望将用户的详细信息整理出来,需要根据协议对包进行大量的分析。面对网上如此众多的协议,这个监听软件将会十分庞大。
其实,找这些信息并不是一件难事。只要根据一定的规律,很容易将有用的信息—一提取出来。
网络监听本来是为了管理网络,监视网络的状态和数据流动情况。但是由于它能有效地截获网上的数据,因此也成了网上黑客使用得最多的方法。有一个前提条件,那就是监听只能是同一网段的主机,这里同一网段是抬物理上的连接。因为不是同一网段的数据包,在网关就被滤掉,传不到该网段来。否则一个Internet上的一台主机,便可以监视整个Internet了。
网络监听常常被用来获取用户的口令。当前,网上的数据绝大多数是以明文的形式传输。而且口令通常都很短且容易辨认。当口令被截获,则可以非常容易地登上另一台主机。
三、检测网络监听的方法
网络监听是很难被发现的。运行网络监听的主机只是被动地接收在局域网上传输的信息,并没有主动的行动。即不会与其他主机交换信息,也不能修改在网上传输的信色。这一切决定对网络监听的检测是非常困难的。
当某一危险用户运行网络监听软件时,可以通过ps-ef或ps-aux命令来发现。然而,当该用户暂时修改了ps命令,则也是很难发现的。能够运行网络监听软件,说明该用户已经具有了超级用户的权限,他可以修改任何系统命令文件,来掩盖自己的行踪。其实修改ps命令只须短短数条shell命令,将监听软件的名字过滤掉即可。
另外,当系统运行网络监听软件时,系统因为负荷过重,因此对外界的响应很慢。但也不能因为一个系统响应过慢而怀疑其正在运行网络监听软件。
以下是两个检测监听的方法,原理很简单,但事实上并不容易做到,有兴趣的读者可以一试。
方法一:
对于怀疑运行监听程序的机器,用正确的IP地址和错误的物理地址去ping,运行监听程序的机器会有响应。这是因为正常的机器不接收错误的物理地址,处于监听状态的机器能接收,如果他的IPstack不再次反向检查的话,就会响应。这种方法依赖于系统的IP stack,对一些系统可能行不通。
方法二:
往网上发大量不存在的物理地址的包,由于监听程序将处理这些包,将导致性能下降。通过比较前后该机器性能(icmp echo delay等方法)加以判断。这种方法难度比较大。
一个看起来可行的检查监听的办法是搜索所有主机上运行的进程。当然,这几乎是不可能的,因为我们很难同是检查所有主机上的进程。但是至少管理员可以确定是否有一个进程被从管理员机器上启动。对于检查运行进程这种方法,那些使用DOS、Windows for Workgroup或者Windows 95的机器很难做到这一点。而使用UNIX和Windows NT的机器可以很容易地得到当前进程的清单。
在UNIX下,可以用下列命令:
ps –aun或ps –augx
这个命令产生一个包括所有进程的清单——进程的属主、这些进程占用的CPU时间及占用的内存等等。这些输出在STDOUT上,以标准表的形式输出。如果一个进程正在运行,它就会被列在这张清单中(除非ps或其他程序变成了一个特洛伊木马程序)。
另外一个办法就是去搜监听程序,现在只有那么多种的监听程序。入侵者很可能使用的是一个免费软件。在这种情况下,管理员就可以检查目录,找出监听程序,但这很困难而且很费时间。目前还不知道有哪种现在的工具可以做到这一点。在UNIX系统上,人们可能不不编写一个程序。另外,如果监听程序被换成另一个名字,管理员也不可能找到这个监听程序。
| 原先那个用户名出现密码错误问题
我暂时不用了,等待管理员还给我密码。 我是焦皮 - ---------------焦皮 |