Sniffer窃企业机密 ARP检测抓内鬼pc软件 文章资讯 手机软件

您当前的位置→图文中心ARP文章ARP经验Sniffer窃企业机密 ARP检测抓内鬼

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


2008/9/26 10:11:47 编辑:佚名 来源:admin 

编者按:Sniffer是网络net故障的有效检测必备工具, 但同一个时间也是企业网络net的极大威胁, 必要的时候也要抓出Sniffer内鬼。

  网卡混杂模式:为Sniffer窃取信息开后门  寻找Sniffer窃取者的致命弱点  ARP检测包找出混杂模式节点软件过滤破获Sniffer窃取者  结论:不同系统system采用不同的措施  就在局域网中, Sniffer是一个很大的威胁。 恶意用户可以能够籍此看到一些机密文件程序和及一些个人的隐私。 Sniffer对安全有如此的威胁, 但它可以能够方便的就在因特网上下无偿下栽并安装就在PC上。 但是, 就在目前为止, 还没有很好的方法来检测谁的PC安装了Sniffer软件。 这篇文档将讨论利用ARP包来检测那些就在公司和学校局域网内Sniffing的恶意用户。   网卡混杂模式:为Sniffer窃取信息开后门  局域网通常是以太网组成的。 就在以太网上用的是IPV4协议, 数据信息是明文传输的, 除非用了加密软件。 当用户发信息到网络net上时, 他只真的希望网络net另一端的用户能接收到。 不幸的是, 以太网的机制给未被授权的用户提供了窃听信息的机会。   我们我自己知道, 就在以太网中, 信息会发送send到网络net中所有的节点, 有些节点会接收这些信息, 同一个时间有些节点会不复杂的丢弃这些信息。 接收或丢弃信息由网卡来控制。 网卡将不会接收所有发到局域网的数据信息包, 即便它连就在以太网上;相反它会过滤掉一些特定的数据信息包。 就在这篇文档里, 我们我自己将称这种过滤为网卡的硬件过滤。 Sniffer会被网卡布置设置成特定的模式, 这样网卡就可以能够接收所有到达的数据信息包了, 而不管它是不是这些包指定的目的地址。 这种网卡的模式称为混杂模式。   Sniffer接收所有的数据信息包, 而不是发送send一些非法包。 所以它将不会干扰网络net的正常运行, 因此很难检测到这种恶意行为。 虽然如此, 网卡的混杂模式显然是不同于正常模式的。 一个本来应该被过滤的包就在这种模式下会被允许到达系统system内核。 是不是做出响应取决于系统system内核。   寻找Sniffer窃取者的致命弱点  我们我自己把检测混杂模式的方法用一个现实世界的例子来模拟。 假设会议室里正就在开会。 一个窃听者用他的一只耳朵靠着会议室的墙壁。 当他正就在窃听的时候, 他会屏住呼吸, 静静的听着会议室的所有对话。 但是如果有人就在会议里喊他的名字, “MR. **?”窃听者有时候会应声“YES!”这种类比看起来有些荒谬, 但确实是应用就在检测网络net的SNIFFING上了。 因为SINFFER接收所有的数据信息包, 包括那些本来不是发给它的, 所以它有可能会对那些本来应该被网卡过滤的包错误地做出响应。 所以, 我们我自己对混杂模式的检测建立就在以下的基础上:向网络net上所有的节点发送sendARP请求包, 检查是不是有ARP响应包。   为了解释这个原理, 最先是, 我们我自己从网卡的混杂模式和普通模式的区别现在开始。 所有以太网卡都有6字节的硬件地址。 厂商分配配置这些地址, 而且每个地址都是唯一的。 从理论上说, 不存就在两块硬件地址一样的网卡。 以太网上信息的交流是建立就在硬件地址的基础上的。 但是网卡为了接收不同类型的数据信息包, 可以能够建立不同的过滤机制。 现对网卡的各种过滤机制说明如下:  单播(UNICAST)  接收所有目标地址和网卡的硬件地址一样的包。   广播(Broadcast)  接收所有的广播包。 广播包的目的地址是FFFFFFFFFFFF。 这种模式是为了能收到那些真的希望能到达网络net所有节点的包。   组播(Multicast)  接收所有预先注册好的特定组的包。 只有那些预先注册的组才会被网卡接收。   所有的组播(All Multicast)  接收所有的组播。 这种模式和上层的协议有关联联, 这种模式会接收所有组播位设为1的包。   混杂(Promiscuous)  接收所有的数据信息包而不管它的目的地址是什么。 Sniffer窃企业机密 ARP检测抓内鬼  上图示意了就在正常模式和混杂模式下硬件过滤的操作方式。 通常情况下, 网卡的硬件过滤会布置设置成单播, 广播和组播1模式。 网卡只接收目的地址和它的硬件地址一样, 广播地址(FF:FF:FF:FF:FF:FF)和组播地址1(01:00:5E:00:00:01)。   ARP检测包找出混杂模式节点  正如前面所陈述的, 网卡布置设置成普通模式和混杂模式对包的过滤是不同的。 当网卡被设成混杂模式后, 本来被过滤的包会允许到达系统system内核。 利用这种机制, 我们我自己建立一种新的机制来检测混杂模式节点:如果构造一个目的地址不是广播地址的ARP包, 把它发送send到网络net的每个节点, 如果发现有些节点有响应, 那么这些节点工作就在混杂模式。   我们我自己不复杂地看一下正常的ARP请求和响应的操作方式。 最先是, 为解析192.168.1.10产生一个ARP请求包。 它的目的地址为广播地址, 使网络net上所有的节点能够收到。 理论上, 只Sniffer窃企业机密 ARP检测抓内鬼有IP地址符合的节点才会响应。   但是, 如果把ARP包的目的地址设成非广播地址呢?比如, 如果把目标地址设成00-00-00-00-00-01?当网卡处于正常模式, 这个包将被认为“TO OTHERHOST”包, 因此将被网卡的硬件过滤拒绝。 但是, 如果网卡处于混杂模式, 那么网卡将不会执行过滤操作。 所以包将被允许到达系统system内核。 系统system内核会认为ARP请求包到达了, 因为它包含了与PC相同的IP地址, 这样, 它应该会对请求包作出响应。 但让人奇怪的是, 内核事实上没有对包做出响应(如下图)。 这令人意的结果说明系统system内核存就在着其它的过滤机制, 因为事实上包被系统system内核过滤了。 我们我自己把这种过滤称之为软件过滤。   进一步说, 对混杂模式的检测可以能够从对比硬件过滤和软件过滤的区别来达到。 硬件过滤通常会屏蔽一些非法的包。 如果一个包能够可以通过硬件过滤, 它通常也能可以通过软件过滤。 我们我自己设想构建被硬件过滤拒绝而同一个时间能够可以通过软件过滤的包。 可以通过发送send这样的包, 正常模式的网卡将不会作出响应, 而混杂模式的网卡会作出响应。   软件过滤破获Sniffer窃取者  软件过滤建立就在操作系统system内核的基础上, 所以要了解软件过滤就一定要明白操作系统system内核是怎么才能工作的。 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网络net的地址是01-00-5E-**-**-**, 所以MULTICAST PACKETS应该不能够只用组标识位来区别。 但, 实际上这个假设是对的的, 因为01-00-5E-**-**-**是IP网络net基础上的, 而网卡的硬件地址可以能够用就在其它的上层协议。   其次, 我们我自己看一下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非源代码开放的操作系统system, 我们我自己不能够可以通过查看它的源码来分析它的软件过滤。 相反, 我们我自己只能可以通过实验的方式来测试它的软件过滤。 以下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通常是未被使用的。 所以我们我自己把这种类型的地址当作未就在注册过的组列表中的地址。 硬件过滤会拒绝这种种包。 但是, 软件过滤会把这种包误认为是组播包, 因为它不检查所有的位。 所以, 当网卡处就在混杂模式时, 系统system内核会对这种包做出响应。   01-00-5E-00-00-01 MULTICAST ADDRESS 1  MULTICAST ADDRESS 1代表了局域网某一子网的所有HOSTS。 换名话说, 硬件过滤就在默认情况下将可以通过这种类型的包。 但是存就在这样的有可能:如果网卡不支持组播模式, 那么它将将不会对这种包作出响应。 所以这种包可以能够用来检测主机是否支持组播地址。   结论:不同系统system采用不同的措施  

  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:00:00:00:00 - RES - RES - RES
FF:00:00:00:00:00 - RES - - - RES
01:00:00:00:00:00 - - - - - RES
01:00:5E:00:00:00 - - - - - RES
01:00:5E:00:00:01 RES RES RES RES RES RES

    对7种地址的实验结果列就在下面的表上。   这些实验结果分别是就在WINDOWS 95, 98, ME, 2000和LINUX下得出的。 正如我们我自己前面所述的, 网卡处于正常模式时, 所有的系统system内核都会对BROADCAST ADDRESS和MULTICAST ADDRESS 1做出响应。   但是, 当网卡处于混杂模式时, 根据记录操作系统system的不同, 结果也会不同。 WINDOWS 95, 98和ME将会对FAKE BROADCAST 31, 16, 和8BITS做出响应。 所以, 我们我自己可以能够认为WINDOWS 9x的软件过滤至多只检查前8位来判别是否是广播地址。   就在WINDOWS 2000下, 它会对FAKE BROADCAST 31和16BITS作出响应。 所以我们我自己可以能够认为WINDOWS 2000的软件过滤至多只检查前16位来判别是否是广播地址。   就在LINUX下, 会对这七种地址的包都做出响应。 换句话说, 当网卡处于混杂模式时, LINUX会对这七种包做出响应。   以下的结果说明我们我自己可以能够根据记录ARP包来判别是否有处于混杂模式的节点, 而不管操作系统system是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 00:00:00:00:00:00
Protocol address of target of this packet <IP Address>(address want to be checked)

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

相关文章
  • win7系统msn无法登录,Win7登录msn失败提示“错误代码80040154”怎么解决?
  • 王者荣耀 SNK之八神庵登王者峡谷
  • SNH48出席音乐风云榜 YHBOYS献舞台首秀
  • PS4国行无法登录PSN故障
  • Aquasnap分屏软件如何使用
  • 黄婷婷为什么叫阔太太 snh48黄婷婷个人资料身高男朋友凸点图片
  • 电脑无法启动提示cdmsnroot_s.sys丢失或损坏怎么办
  • Snake战队Beast资料照片 英雄联盟蛇队打野Beast介绍
  • 发表评论
    阅读排行
    网站帮助 - 广告合作 - 下载声明 - 网站地图