网络通信 频道

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

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

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包,那么将不能利用这种方法。

0
相关文章