网络通信 频道

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

软件过滤破获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。换名话说,硬件过滤在默认情况下将通过这种类型的包。但是存在这样的可能:如果网卡不支持组播模式,那么它将不会对这种包作出响应。所以这种包可以用来检测主机是否支持组播地址。

0
相关文章