|
| |
精品推荐 |
 |
|
| |
|
|
|
|
Sniffer的一些资料
|
日期:2004年7月3日 作者:清风网络学院 查看:[大字体
中字体 小字体]
|
Ethernet中填写了物理地址的祯从网络接口中,也就是从网卡中发送出去传送到物理的线路上。如果局域网是由一条粗网或细网连接成的,那么数字信号在电缆上传输信号就能够到达线路上的每一台主机。再当使用集线器的时候,发送出去的信号到达集线器,由集线器再发向连接在集线器上的每一条线路。这样在物理线路上传输的数字信号也就能到达连接在集线器上的每个主机了。当数字信号到达一台主机的网络接口时,正常状态下网络接口对读入数据祯进行检查,如果数据祯中携带的物理地址是自己的或者物理地址是广播地址,那么就会将数据祯交给IP层软件。对于每个到达网络接口的数据祯都要进行这个过程的。但是当主机工作在监听模式下的话,所有的数据祯都将被交给上层协议软件处理。
当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网的时候,那么要是有一台主机处于监听模式,它还将可以接收到发向与自己不在同一个子网(使用了不同的掩码、IP地址和网关)的主机的数据包,在同一个物理信道上传输的所有信息都可以被接收到。
在UNIX系统上,当拥有超级权限的用户要想使自己所控制的主机进入监听模式,只需要向Interface(网络接口)发送I/O控制命令,就可以使主机设置成监听模式了。而在Windows9x的系统中则不论用户是否有权限都将可以通过直接运行监听工具就可以实现了。
在网络监听时,常常要保存大量的信息(也包含很多的垃圾信息),并将对收集的信息进行大量的整理,这样就会使正在监听的机器对其它用户的请求响应变的很慢。同时监听程序在运行的时候需要消耗大量的处理器时间,如果在这个时候就详细的分析包中的内容,许多包就会来不及接收而被漏走。所以监听程序很多时候就会将监听得到的包存放在文件中等待以后分析。分析监听到的数据包是很头疼的事情。因为网络中的数据包都非常之复杂。两台主机之间连续发送和接收数据包,在监听到的结果中必然会加一些别的主机交互的数据包。监听程序将同一TCP会话的包整理到一起就相当不容易了,如果你还期望将用户详细信息整理出来就需要根据协议对包进行大量的分析。Internet上那么多的协议,运行进起的话这个监听程序将会十分的大哦。
现在网络中所使用的协议都是较早前设计的,许多协议的实现都是基于一种非常友好的,通信的双方充分信任的基础。在通常的网络环境之下,用户的信息包括口令都是以明文的方式在网上传输的,因此进行网络监听从而获得用户信息并不是一件难点事情,只要掌握有初步的TCP/IP协议知识就可以轻松的监听到你想要的信息的。前些时间美籍华人China-babble曾提出将望路监听从局域网延伸到广域网中,但这个想法很快就被否定了。如果真是这样的话我想网络必将天下大乱了。而事实上现在在广域网里也可以监听和截获到一些用户信息。只是还不够明显而已。在整个Internet中就更显得微不足道了。
下面是一些系统中的著名的监听程序,你可以自己尝试一下的。
Windows9x/NT NetXRay http://semxa.kstar.com/hacking/netxray.zip
DEC Unix/Linux Tcpdump http://semxa.kstar.com/hacking/management.zip
Solaris Nfswatch http://semxa.kstar.com/hacking/nfswatch.zip
SunOS Etherfind http://semxa.kstar.com/hacking/etherfind012.zip
█检测网络监听的方法
网络监听在上述中已经说明了。它是为了系统管理员管理网络,监视网络状态和数据流动而设计的。但是由于它有着截获网络数据的功能所以也是黑客所惯用的伎俩之一。
一般检测网络监听的方法通过以下来进行:
"amp;#9658;网络监听说真的,是很难被发现的。当运行监听程序的主机在进听的过程中只是被动的接收在以太网中传输的信息,它不会跟其它的主机交换信息的,也不能修改在网络中传输的信息包。这就说明了网络监听的检测是比较麻烦的事情。
一般情况下可以通过ps-ef或者ps-aux来检测。但大多实施监听程序的人都会通过修改ps的命令来防止被ps-ef的。修改ps只需要几个shell把监听程序的名称过滤掉就OK了。一能做到启动监听程序的人也绝对不是个菜的连这个都不懂的人了,除非是他懒。
上边提到过。当运行监听程序的时候主机响应一般会受到影响变的会慢,所以也就有人提出来通过响应的速率来判断是否受到监听。如果真是这样判断的话我想世界真的会大乱了,说不准一个时间段内会发现无数个监听程序在运行呢。呵呵。
如果说当你怀疑网内某太机器正在实施监听程序的话(怎么个怀疑?那要看你自己了),可以用正确的IP地址和错误的物理地址去ping它,这样正在运行的监听程序就会做出响应的。这是因为正常的机器一般不接收错误的物理地址的ping信息的。但正在进听的机器就可以接收,要是它的IP stack不再次反向检查的话就会响应的。不过这种方法对很多系统是没效果的,因为它依赖于系统的IP stack。
另一种就是向网上发大量不存在的物理地址的包,而监听程序往往就会将这些包进行处理,这样就会导致机器性能下降,你可以用icmp echo delay来判断和比较它。还可以通过搜索网内所有主机上运行的程序,但这样做其的难度可想而知,因为这样不但是大的工作量,而且还不能完全同时检查所有主机上的进程。可是如果管理员这样做也会有很大的必要性,那就是可以确定是否有一个进程是从管理员机器上启动的。
在Unix中可以通过ps –aun或ps –augx命令产生一个包括所有进程的清单:进程的属主和这些进程占用的处理器时间和内存等。这些以标准表的形式输出在STDOUT上。如果某一个进程正在运行,那么它将会列在这张清单之中。但很多黑客在运行监听程序的时候会毫不客气的把ps或其它运行中的程序修改成Trojan Horse程序,因为他完全可以做到这一点的。如果真是这样那么上述办法就不会有结果的。但这样做在一定程度上还是有所作为的。在Unix和Windows NT上很容易就能得到当前进程的清单了。但DOS、Windows9x好象很难做到哦,具体是不是我没测试过不得而知。
上一篇:教你当邮件病毒入侵后的五个清除步骤
下一篇:“混客绝情炸弹”源代码(1)及手工清除
|
| Sniffer的一些资料 相关文章: |
|
|
|
| Sniffer的一些资料 相关软件: |
|
|
|
|