注册 | 登录
收藏 | 帮助
热门文章
编辑推荐
相关文章  
设置MSN可自动防卸MSN小尾巴
用Norton Internet Security拦截
知已知彼——MSN 信息安全攻防实
Unix网络的两个安全问题
Unix的入侵追踪
UNIX系统安全小议
Linux/Unix环境下的make和makefi
NT和UNIX下FTP非交互方式文件传输
NT和UNIX下FTP非交互方式文件传输
UNIX Sybase安装说明
您现在的位置: 顶尖设计 >> IT学院 >> 网络安全 >> 黑客防范 >> 文章正文
SNIFF原理解析
作者:xundi  来源:http://www.xfocus.org  点击:  更新:2006-12-20
简介:
提供了简单易用的图形用户界面,AntiSniff Version 1.x 主要工作在非交换环境下的本地网段中,
如果运行在交换环境下其功能将大打折扣。AntiSniff Ver 2.0 将不但能在本地网段中,而且能够穿
过路由器和交换机进行工作。  

◆ 操作系统类特殊测试  

Linux 内核测试  

 旧版本的Linux内核存在一个奇怪的特性,可被用于确定机器是否处于混杂模式。在正常情形下,
网卡会过滤和丢弃那些目标地址不是本机MAC地址或以太网广播地址的数据包。如果数据包的目标地
址为本机以太网地址或广播地址,将传送给内核进行处理,因为其认为该以太网数据帧包含了本机
的正确IP地址或该网络广播地址。如果网卡处于混杂模式,则每个数据包都会传递给操作系统进行
分析或处理。许多版本的 Linux内核只检查数据包中的IP地址以确定是否存放到IP堆栈中进行处理。
为了利用这一点,AntiSniff构造一个无效以太网地址而IP地址有效的数据包。对于使用了这些内核
版本和处于混杂模式的Linux系统,由于只检查到IP地址有效而将其接收并存放到相应堆栈中。通过
在这个伪造的以太网数据帧中构造一个ICMP ECHO请求,这些系统会返回响应包(如果处于混杂模式)
或忽略(如果不处于混杂模式),从而暴露其工作模式。当伪造的以太网数据帧中的IP地址设置为网络
广播地址时这个测试非常有效。 AntiSniff的使用者可以修改伪造的以太网址,缺省值为66:66:66:66:66:66。  

NetBSD  

 许多NetBSD内核具有与上述Linux内核相同的特性,不过伪造以太网数据帧中的 IP地址必须设为广
播地址。  

Windows 95/98/NT  

 根据对网络驱动程序头文件的了解,可以知道当处于混杂模式时,Microsoft的操作系统会确切地检
查每个包的以太网地址。如果与网卡的以太网地址匹配,将作为目标IP地址为本机的数据包存放到相应
堆栈中处理。可以被利用的一点是系统对以太网广播包的分析。在正常情形下,例如机器工作在非混
杂模式下,网卡只向系统内核传输那些目标以太网址与其匹配或为以太网广播地址(ff:ff:ff:ff:ff:ff)
的数据包。如果机器处于混杂模式下,网络驱动程序仍然会检查每个数据包的以太网地址,但检查是否
为广播包时却只检查头8位地址是否为0xff。因此,为了使处于混杂模式的系统返回响应信息,
AntiSniff构造以太网地址为ff:00:00:00:00:00且含有正确目标IP 地址的数据包,当Microsoft的操
作系统接收到这个数据包时,将根据网络驱动程序检查到的细微差别而返回响应包(如果处于混杂模式)
或丢弃这个数据包(如果处于非混杂模式)。  

 需要注意的是,这个检查与使用的网络驱动程序有关。Microsoft缺省的网络驱动程序具有以上特性,
大多数的厂商为了保持兼容性也继承了这些特性。不过有些网卡会在其硬件层中检查以太网地址的头8位,
所以可能会无论系统真正的状态是什么都总是返回正值。关于这类网卡和驱动程序请访问
AntiSniff Ver 1.x的web网站。  

◆ DNS 测试  

 进行DNS测试的原因是许多攻击者使用的网络数据收集工具都对IP地址进行反向 DNS解析,因为他们
希望根据域名寻找更有价值的主机。例如joepc1.foo.bar对攻击者的吸引力往往不如payroll.foo.bar
这种商业域名。此时这些工具就由被动型网络工具变为主动型网络工具了。而不监听网络通讯的机器
不会试图反向解析数据包中的 IP地址。为了利用这一点,AntiSniff Ver 1.x使自身处于混杂模式下,
向网络发送虚假目标IP地址的数据包,然后监听是否有机器发送该虚假目标IP地址的反向DNS查询。
伪造数据包的以太网地址、检查目标、虚假目标IP地址可由用户定制。  

◆ 网络和主机响应时间测试  

 这种测试已被证明是最有效的。它能够发现网络中处于混杂模式的机器,而不管其操作系统是什么。
警告,这个测试会在很短的时间内产生巨大的网络通讯流量。进行这种测试的理由是不处于混杂模式
的网卡提供了一定的硬件底层过滤机制。也就是说,目标地址非本地(广播地址除外)的数据包将被网卡
的固件丢弃。在这种情况下,骤然增加、但目标地址不是本地的网络通讯流量对操作系统的影响只会
很小。而处于混杂模式下的机器则缺乏此类底层的过滤,骤然增加、但目标地址不是本地的网络通讯
流量会对该机器造成较明显的影响(不同的操作系统/内核/用户方式会有不同)。这些变化可以通过网
络通讯流量工具监视到。  


  根据以上要点,AntiSniff Ver 1.x 首先利用ICMP ECHO请求及响应计算出需要检测机器的响应时间
基准和平均值。在得到这个数据后,立刻向本地网络发送大量的伪造数据包。与此同时再次发送测试
数据包以确定平均响应时间的变化值。非混杂模式的机器的响应时间变化量会很小,而混杂模式的机
器的响应时间变化量则通常会有 1-4个数量级。为了对付攻击者和入侵者们最常用的多种工具,
AntiSniff进行了三种网络饱和度测试:SIXTYSIX、TCPSYN和THREEWAY。  

     * SIXTYSIX测试构造的数据包数据全为0x66。这些数据包不会被非混杂模式的机器接收,同时
方便使用常见的网络监听/分析工具(如tcpdump和snoop等)记录和捕获。  

     * TCPSYN测试构造的数据包包含有效的TCP头和IP头,同时TCP标志域的SYN位被设置。  

    * THREEWAY测试采取的原理基本上与TCPSYN一样,但更复杂些。在这种测试中两个实际不存在
的机器间多次建立完整的TCP三方握手通讯。它能够更好地欺骗那些骇客工具。  

  AntiSniff Ver 1.x 中能够通过以上三种数据包测试发现正处于混杂模式机器的测试方法最好周
期性地进行和与以前的数据比较。响应时间测试第一次运行的数据还能够用于分析一个大型网络在
flooding和非flooding状态时的性能,并帮助工程师调整网络性能。一旦确信本地网络已运行在正
常(没有未经允许而处于混杂模式的机器) 状态,就应该设置AntiSniff工具周期性运行。只要发现
某台机器性能(响应时间)发生数量级的变化,一般就能确定其正处于混杂模式。这种方法不需比较
两台独立系统间的性能数据,而只需比较同一台机器不同时候的数据就能确定该机器是否处于混杂
模式。  

八 结尾  

 本文旨在向你描述sniff的基本原理,为的是要使你不仅仅能够了解什么是sniff而已,而是要明
白sniff运转的根本原理,文章参考了大量的资料,牵涉到直接引用的已经注明出处和作者,非常的
感谢他们。在此还要感谢 W.Richhard.Stevens,虽然其人已逝,但留下的TCP/IP三卷本真是造福了
大家,文章的很多地方也是拜他老人家指点迷经才得以感悟。最后还要感谢雀巢咖啡,让我得以熬
夜把这篇文章写完,呵呵,谢谢大家。 

上一页  [1] [2] [3] [4] 




  • 上一篇文章:
  • 下一篇文章: 没有了
  • 分享此文:该页面添加到 Mister Wong 添加到雅虎Yahoo!收藏 Add to:Del.icio.us Post to Furl Digg this 添加到Google书签 reddit spurl blogmarks 365Key 评论  收藏  分享  打印
     我来说两句
    姓名:       验证码:   
    主页: 
    评分: 1分 2分 3分 4分 5分
    本频道近期热评文章:
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备07504942号 
    网络110
    报警服务