商城 设为首页注册本站  论坛  繁體中文

慧民电脑芯片级维修-电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Cisco >> 网络管理 >> 网管 >> Cisco正文

Sniffer窃企业机密 ARP检测抓内鬼

文章来源:IT168 作者:netexper… 更新时间:2008-6-28 20:46:16 【 】 【加入收藏

    编者按:Sniffer是网络故障的有效检测工具,但同时也是企业网络的极大威胁,必要的时候也要抓出Sniffer内鬼。
  
  网卡混杂模式:为Sniffer窃取信息开后门
  寻找Sniffer窃取者的致命弱点
  ARP检测包找出混杂模式节点
  软件过滤破获Sniffer窃取者
  结论:不同系统采用不同的措施

    在局域网中,Sniffer是一个很大的威胁。恶意用户可以籍此看到一些机密文件和及一些个人的隐私。Sniffer对安全有如此的威胁,但它可以方便的在因特网上下免费下栽并安装在PC上。但是,目前为止,还没有很好的方法来检测谁的PC安装了Sniffer软件。这篇文档将讨论利用ARP包来检测那些在公司和学校局域网内Sniffing的恶意用户。
  
  网卡混杂模式:为Sniffer窃取信息开后门
  
  局域网通常是以太网组成的。在以太网上用的是IPV4协议,数据是明文传输的,除非用了加密软件。当用户发信息到网络上时,他只希望网络另一端的用户能接收到。不幸的是,以太网的机制给未被授权的用户提供了窃听信息的机会。
  
  我们知道,在以太网中,信息会发送到网络中所有的节点,有些节点会接收这些信息,同时有些节点会简单的丢弃这些信息。接收或丢弃信息由网卡来控制。网卡不会接收所有发到局域网的数据包,即使它连在以太网上;相反它会过滤掉一些特定的数据包。在这篇文档里,我们将称这种过滤为网卡的硬件过滤。Sniffer会被网卡设置成特定的模式,这样网卡就可以接收所有到达的数据包了,而不管它是不是这些包指定的目的地址。这种网卡的模式称为混杂模式。
  
  Sniffer接收所有的数据包,而不是发送一些非法包。所以它不会干扰网络的正常运行,因此很难检测到这种恶意行为。虽然如此,网卡的混杂模式显然是不同于正常模式的。一个本来应该被过滤的包在这种模式下会被允许到达系统内核。是不是做出响应取决于系统内核。

    寻找Sniffer窃取者的致命弱点
  
  我们把检测混杂模式的方法用一个现实世界的例子来模拟。假设会议室里正在开会。一个窃听者用他的一只耳朵靠着会议室的墙壁。当他正在窃听的时候,他会屏住呼吸,静静的听着会议室的所有对话。但是如果有人在会议里喊他的名字,“MR. **?”窃听者有时候会应声“YES!”这种类比看起来有些荒谬,但确实是应用在检测网络的SNIFFING上了。因为SINFFER接收所有的数据包,包括那些本来不是发给它的,所以它可能会对那些本来应该被网卡过滤的包错误地做出响应。所以,我们对混杂模式的检测建立在以下的基础上:向网络上所有的节点发送ARP请求包,检查是不是有ARP响应包。
  
  为了解释这个原理,首先,我们从网卡的混杂模式和普通模式的区别开始。所有以太网卡都有6字节的硬件地址。厂商分配这些地址,而且每个地址都是唯一的。从理论上说,不存在两块硬件地址一样的网卡。以太网上信息的交流是建立在硬件地址的基础上的。但是网卡为了接收不同类型的数据包,可以建立不同的过滤机制。现对网卡的各种过滤机制说明如下:
    单播(UNICAST)
    接收所有目标地址和网卡的硬件地址一样的包。
    广播(Broadcast)
    接收所有的广播包。广播包的目的地址是FFFFFFFFFFFF。这种模式是为了能收到那些希望能到达网络所有节点的包。
    组播(Multicast)
    接收所有预先注册好的特定组的包。只有那些预先注册的组才会被网卡接收。
    所有的组播(All Multicast)
    接收所有的组播。这种模式和上层的协议有关联,这种模式会接收所有组播位设为1的包。

    混杂(Promiscuous)
    接收所有的数据包而不管它的目的地址是什么。

   

    
    上图示意了在正常模式和混杂模式下硬件过滤的操作方式。通常情况下,网卡的硬件过滤会设置成单播,广播和组播1模式。网卡只接收目的地址和它的硬件地址一样,广播地址(FF:FF:FF:FF:FF:FF)和组播地址1(01:00:5E:00:00:01)。

    ARP检测包找出混杂模式节点
  
  正如前面所陈述的,网卡设置成普通模式和混杂模式对包的过滤是不同的。当网卡被设成混杂模式后,本来被过滤的包会允许到达系统内核。利用这种机制,我们建立一种新的机制来检测混杂模式节点:如果构造一个目的地址不是广播地址的ARP包,把它发送到网络的每个节点,如果发现有些节点有响应,那么这些节点工作在混杂模式。
  
  我们简单地看一下正常的ARP请求和响应的操作方式。首先,为解析192.168.1.10产生一个ARP请求包。它的目的地址为广播地址,使网络上所有的节点能够收到。理论上,只有IP地址符合的节点才会响应。

   


    
    但是,如果把ARP包的目的地址设成非广播地址呢?比如,如果把目标地址设成00-00-00-00-00-01?当网卡处于正常模式,这个包将被认为“TO OTHERHOST”包,因此将被网卡的硬件过滤拒绝。但是,如果网卡处于混杂模式,那么网卡不会执行过滤操作。所以包将被允许到达系统内核。系统内核会认为ARP请求包到达了,因为它包含了与PC相同的IP地址,这样,它应该会对请求包作出响应。但让人奇怪的是,内核事实上没有对包做出响应(如下图)。这令人意外的结果说明系统内核存在着其它的过滤机制,因为事实上包被系统内核过滤了。我们把这种过滤称之为软件过滤。


  进一步说,对混杂模式的检测可以从对比硬件过滤和软件过滤的区别来达到。硬件过滤通常会屏蔽一些非法的包。如果一个包能够通过硬件过滤,它通常也能通过软件过滤。我们设想构建被硬件过滤拒绝而同时能够通过软件过滤的包。通过发送这样的包,正常模式的网卡不会作出响应,而混杂模式的网卡会作出响应。

    软件过滤破获Sniffer窃取者

  软件过滤建立在操作系统内核的基础上,所以要了解软件过滤必须明白操作系统内核是如何工作的。LINUX开放源代码,因此可以获取它的软件过滤机制。但是微软的WINDOWS源代码是非公开的,其软件过滤机制只能从实验上去猜测推理。
    1)LINUX
    在LINUX的以太网模块,根据地址的不同包可以分为以下几类:
    BROADCAST PACKETS:
    FF:FF:FF:FF:FF:FF
    MULTICAST PACKETS:
    除了广播包外,组标识位置1的包。
    TO_US PACKETS:
    所有目的地址和网卡硬件地址一样的包。
    OTHERHOST PACKETS:
    所有目的地址和网卡硬件地址不一样的包。

  在这里,我们假设组标识位置1的包就是MULTICAST PACKETS。以太网MULTICAST PACKET对应IP网络的地址是01-00-5E-**-**-**,所以MULTICAST PACKETS应该不能只用组标识位来区别。但,实际上这个假设是正确的,因为01-00-5E-**-**-**是IP网络基础上的,而网卡的硬件地址可以用在其它的上层协议。

  其次,我们看一下LINUX的ARP模块。ARP模块会拒绝所有的OTHERHOST PACKETS。同时,它会对BROADCAST,MULTICAST,和TO_US PACKETS作出响应。下表示意了硬件过滤和软件过滤的响应。我们给出了六种不同类型地址的包发到网卡后,硬件过滤和软件过滤是如何操作的。

   

 

GR BIT

 

NORMAL MODE

 

PROMISCUOUS MODE

 

HW FILTER

 

SW FILTER

 

RES

 

HW FILTER

 

SW FILTER

 

RES

 

TO_US

 

OFF

 

PASS

 

PASS

 

Y

 

PASS

 

PASS

 

Y

 

OTHERHOST

 

REJECT

 

-

 

N

 

PASS

 

REJECT

 

N

 

BROADCAST

 

ON

 

PASS

 

PASS

 

Y

 

PASS

 

PASS

 

Y

 

MULTICAST

 

(IN THE LIST)

 

PASS

 

PASS

 

Y

 

PASS

 

PASS

 

Y

 

MULTICAST

 

(NOT IN THE LIST)

 

REJECT

 

-

 

N

 

PASS

 

PASS

 

Y

 

GROUP

 

REJECT

 

-

 

N

 

PASS

 

PASS

 

Y

 


    
    TO_US PACKETS:

    当网卡处正常模式,所有TO_US PACKETS能通过硬件过滤,也能通过软件过滤,所以ARP模块将对这种包做出响应而不管网卡是否处于混杂模式。

    OTHERHOST PACKETS:
    当网卡处于正常模式,将拒绝OTHERHOST PACKETS。即使当网卡处于混杂模式,软件过滤也将拒绝这种类型的包。所以对ARP REQUESTS将不会做出响应。

    BROADCAST PACKET:
    在正常模式,BROADCAST PACKETS将通过硬件过滤和软件过滤。所以无论网卡处于什么模式都会有响应包。

    MULTICAST PACKETS:
    在正常模式,未在预先注册过的组列表中的地址的包将被拒绝。但是,如果网卡处在混杂模式,这种类型的包将会通过硬件过滤,而且,因为软件过滤也不会拒绝这种类型的包,所以将会产生一个响应。在这种情况下,网卡处于不同的模式会有不同的结果产生。

    GROUP BIT PACKETS:
    不是BROADCAST或MULTICAST包,但其组标识位置1。在正常模式下,会拒绝这种包,而在混杂模式下,这种包将会通过。而且因为这种包会被软件过滤认为是组播包,所以这种包能通过软件过滤。组标识位置1的包能够用来检测混杂模式。


    2)WINDOWS

      WINDOWS非源代码开放的操作系统,我们不能通过查看它的源码来分析它的软件过滤。相反,我们只能通过实验的方式来测试它的软件过滤。以下7种地址会被WINDOWS利用:

    FF-FF-FF-FF-FF-FF BROADCAST ADDRESS:
    所有接点将会收到这种类型的包,并作出响应。正常的ARP请求包用的就是这种地址。
    FF-FF-FF-FF-FF-FE FAKE BROADCAST ADDRESS:

    这是最后一位置0假冒的广播地址。用来检测软件过滤是否会检查所有的地址位,进而是否会对这种包作出响应。

    FF-FF-00-00-00-00 FAKE BROADCAST 16 BITS:
    这是只有前16位置1的假冒的广播地址。它可能会被认为是广播地址,而且在过滤机制只检查前16位的情况下会得到响应。
    FF-00-00-00-00-00 FAKE BROADCAST 16 BITS:
    这是只有前8位置1的假冒的广播地址。它可能会被认为是广播地址,而且在过滤机制只检查前8位的情况下会得到响应。

    01-00-00-00-00-00 GROUP BIT ADDRESS:
    组标识位置1的地址,用来检查是否会被认为是组播地址。
    01-00-5E-00-00-00 MULTICAST ADDRESS 0
    MULTICAST ADDRESS 0通常是未被使用的。所以我们把这种类型的地址当作未在注册过的组列表中的地址。硬件过滤会拒绝这种种包。但是,软件过滤会把这种包误认为是组播包,因为它不检查所有的位。所以,当网卡处在混杂模式时,系统内核会对这种包做出响应。

    01-00-5E-00-00-01 MULTICAST ADDRESS 1
    MULTICAST ADDRESS 1代表了局域网某一子网的所有HOSTS。换名话说,硬件过滤在默认情况下将通过这种类型的包。但是存在这样的可能:如果网卡不支持组播模式,那么它将不会对这种包作出响应。所以这种包可以用来检测主机是否支持组播地址。

    结论:不同系统采用不同的措施
    
   

HW ADDR

 

WINDOWS 9x/ME

 

WINDOWS 2K/NT4

 

LINUX2.2/2.4

 

NORMAL

 

PROMIS

 

NORMAL

 

PROMIS

 

NORMAL

 

PROMIS

 

FF:FF:FF:FF:FF:FF

 

RES

 

RES

 

RES

 

RES

 

RES

 

RES

 

FF:FF:FF:FF:FF:FE

 

-

 

RES

 

-

 

RES

 

-

 

RES

 

FF:FF:

 

-

 

RES

 

-

 

RES

 

-

 

RES

 

FF:

 

-

 

RES

 

-

 

-

 

-

 

RES

 

 

-

 

-

 

-

 

-

 

-

 

RES

 

:5E:

 

-

 

-

 

-

 

-

 

-

 

RES

 

:5E:

 

RES

 

RES

 

RES

 

RES

 

RES

 

RES

 

  


    
    对7种地址的实验结果列在下面的表上。

  这些实验结果分别是在WINDOWS 95,98,ME,2000和LINUX下得出的。正如我们前面所述的,网卡处于正常模式时,所有的系统内核都会对BROADCAST ADDRESS和MULTICAST ADDRESS 1做出响应。

  但是,当网卡处于混杂模式时,根据操作系统的不同,结果也会不同。WINDOWS 95,98和ME将会对FAKE BROADCAST 31,16,和8BITS做出响应。所以,我们可以认为WINDOWS 9x的软件过滤至多只检查前8位来判别是否是广播地址。
  在WINDOWS 2000下,它会对FAKE BROADCAST 31和16BITS作出响应。所以我们可以认为WINDOWS 2000的软件过滤至多只检查前16位来判别是否是广播地址。
  在LINUX下,会对这七种地址的包都做出响应。换句话说,当网卡处于混杂模式时,LINUX会对这七种包做出响应。
  
  以下的结果说明我们可以根据ARP包来判别是否有处于混杂模式的节点,而不管操作系统是WINDOWS或LINUX。从而,可以通过这样一种简单的方法用来在局域网中的检测。以下是检测过程:
    1) 我们试图对装载IP协议的机器进行是否处在混杂模式的检测。我们构建这样一个ARP包:

   

Ethernet address of destination

 

FF:FF:FF:FF:FF:FE

 

Ethernet address of sender

 

<Own NIC’s Device address>

 

Protocol type (ARP=0806)

 

0806

 

Hardware address space (Ethernet=01)

 

0001

 

Protocol address space (IPv4=0800)

 

0800

 

Byte length of Hardware address

 

06

 

Byte length of protocol address

 

04

 

Opcode (ARP request=01,ARP reply=02)

 

0001

 

Hardware address of sender of this packet

 

<Own NIC’s Device address>

 

Protocol address of sender of this packet

 

<Own NIC’s IP address>

 

Hardware address of target of this packet

 

 

Protocol address of target of this packet

 

<IP Address>(address want to be checked)

 


    
    2) 在我们构建完这种包后,我们把它发送到局域网上

    3) 在正常情况下,这个包将会被硬件过滤拒绝。但是,如果这台机器处在混杂模式,它将会对这个包做出响应。如果我们接收到响应,那么这台机器处在混杂模式。
  
  为了检测混杂模式,我们可利用在7提到的技术对局域网上所有的机器按序进行。如果有些机器不能收到ARP包,那么将不能利用这种方法。

  • 上一篇Cisco:

  • 下一篇Cisco:
  • 最 新 热 门
     CDMA无线网络优化流程与方法
     Wi-Fi探查连接工具帮无线网络管理连接
     无线路由器天线扫描无线信号
     从技术角度看11n走向无线前端的难度
     2008年盘点:从企业应用解析802.11n
     企业网络遭受ARP攻击 需提升网络安全
     与时俱进 分钟级别WEP破解全功略
     不可不知的路由交换安全七宗罪
     无线大讲堂 你的企业无线网络安全吗?
     网管支招:小技巧让企业无线安全上一台阶
    最 新 推 荐
     P2P对带宽冲击很大 企业需上网行为管理
     网络管理员对付DDoS攻击的绝招分享
     如何建立企业上网管理系统
     新开网吧软件选择策略
     还公司一个“遵纪守法”的网络
     中国用户需要什么样的网管软件
     企业网管用好网管软件 将职责充分发挥
     深度解析:P2P流量识别与监测
     网管人员必看 优化局域网提升网络性能
     如何避免办公室沦为免费网吧?
    相 关 文 章

    Sniffer应用之——告警分析
    图解用Sniffer pro实现ARP攻击
    利用Sniffer进行DOS攻击流量分析
    用Sniffer 检阅局域网内安全问题
    借助网络嗅探器Sniffer对网络流量进行分析
    交换机IP-MAC-PORT绑定和DHCP Snooping应用
    浅谈反sniffer技术在企业中的应用(下)
    浅谈反sniffer技术在企业中的应用(上)
    SERV-U的Sniffer测试和防范
    WiFi不安全?如何设置防止无线网络泄密

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

      Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    门市地址:广东省佛山市南海区黄岐黄海路133号
    本网站所有内容未经许可不得转载或做其他使用
    电话:0757-81139980 QQ:83306923