找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3195|回复: 7

[其它] 关于ARP协议的一点心得以及ARP欺骗分析与防御

[复制链接]
发表于 2006-11-29 16:41:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
通讯的实质不是IP地址之间的通讯,而是MAC地址之间的通讯

arp协议是一个全网广播协议,它存在于基于802.3的局域网的网络模式下.arp协议的存在使机器只需要知道一个网络主机的IP地址就可以与此通讯,不在需要记忆长长的MAC地址,arp协议能根据IP地址转化为MAC地址.

现在来看一下ARP包
      0001 0800 0604 0002 0016 3636 8822 0a0a  
      11a0 00e0 4cdf e0d0 0a0a 1101 0000 0000
      0000 0000 0000 0000 0000 0000 0000

      0001 是硬件类型字段,在arp包里面为1
      0800 是IP协议类型
      0604 发送方的硬件地址长度为6, ip地址长度为4
      0002 arp响应
      0016 3636 8822 发送方的MAC地址 0016-3636-8822
      0a0a 11a0      发送方的IP地址  10.10.17.160
      00e0 4cdf e0d0 接受方的MAC地址 00e0-4cdf-e0d0
      0a0a 1101      接受方的IP地址  10.10.17.1
      0000 0000
      0000 0000 0000 0000 0000 0000 0000  填充字段

arp有什么缺陷特点:
      一:RFC规定,在局域网内任何一台网络上的机器都可以在不与其他机器通讯的情况在全网响应自己的IP与MAC.
      二:arp没有验证机制.
      三:设备的arp表学习机制
这两个方面使ARP存在欺骗的可能性.


ARP协议存在欺骗,欺骗是对三层设备的欺骗,比如PC,三层交换机,路由器.ARP欺骗发生在同网段内,不会产生跨网段或者跨VLAN的欺骗.

先看一个网络模型,本文章的ARP欺骗方式基于此网络拓扑结构进行举例说明
A B C是基于802.3的局域网, 其中B与C属于同等网络,B与C通过A访问外部网络
           A  00e0-4cdf-e0d0 是网关MAC,10.10.17.1是网关IP
           B  0016-3636-8822 是ARP欺骗者,10.10.17.5是他使用的IP地址
           C  0016-3636-2222 是受害者,10.10.17.160 是他使用的IP地址

举例说明ARP的欺骗方式:


一是用户对用户的欺骗,也就是我们常说的冒充网关
      例子说明
           在上述模型中,B对C进行欺骗,使C误认为网关是B,从而不能与A进行通讯,使C不能访问外部网络.
如果B对C发送ARP包
       0001 0800 0604 0002 0016 3636 8822 0a0a  
       1101 0016 3636 2222 0a0a 11a0 0000 0000
       0000 0000 0000 0000 0000 0000 0000
      这个样子B告诉C 我的IP地址10.10.17.1 我是网关,
      然后C就学习到这个ARP表0016-3636-8822 10.10.17.1,C就认为0016-3636-8822是网关的MAC地址,在刷新ARP表后,就会与B进行通讯,而不与A进行通讯.整个过程B就完成了对C的欺骗.

二是对网关的欺骗,即对上层设备的欺骗
在上述模型上就是B欺骗A,使A与C不能通讯,从而使C不能访问外部网络
如果B对A发送下面的ARP包
      
       0001 0800 0604 0002 0016 3636 8822 0a0a  
       11a0 00e0 4cdf e0d0 0a0a 1101 0000 0000
       0000 0000 0000 0000 0000 0000 0000
A就会认为IP地址为10.10.17.160的机器的MAC地址是0016-3636-8822,在刷新ARP表后,A对10.10.17.160发送的数据包会发送到MAC地址为0016-3636-8822的机器上,而不是MAC地址为0016-3636-2222的C的机器上,从而C就不能得到从A回发过来的数据包,不能与外部网络通讯.


ARP欺骗的防御措施

一就是不使用ARP协议,没有ARP协议也就没有ARP欺骗
     1)在局域网内可以采用PPPOE的方式上网,PPPOE不使用ARP协议,也就不会产生ARP,而且PPPOE不会改变原来的局域网拓扑结构,它是在802.3的基础上的二次封装数据包.
     2)使用PPP方式上网,ADSL就是这个方式,这个有点片面,需要改变原本的拓扑结构.
     3)使用IPX协议,难于实施
     4)使用其他的模式上网,不再讨论,不是很现实
二继续使用ARP协议,从其他的方面防止ARP病毒
     1)下层设备和上层设备的双向绑定,双先绑定能解决ARP欺骗所造成的断网现象,但是此方式内的缺陷是在网络内ARP数据包乱飞(影响网络质量,在用户多的情况下,用户端绑定不利于实施,适用于小型网络).
     2)用户端处上接可网管交换机,用交换机进行端口和MAC地址以及IP地址的绑定,很好的防止ARP欺骗,但是这个也有一定的缺陷(投资大,需要可网管交换机,适用于小型网络)
     3)用户端使用ARP防御工具,比如彩影的ARP防御工具,或者包过滤防火墙,很好的防止ARP欺骗(在用户端比较多的情况下不利于实施,用于小型网络)
     4)使用路由器广播网关的MAC地址的ARP包,ARP病毒在发包比较厉害的情况下用处不大(没有根本阻止ARP影响,不怎么地)




希望大家能找到更多的防御ARP的办法...................其实还有点,但是不是很现实,有的可能没有想到,没有写

[ 本帖最后由 xqs428 于 2006-11-29 16:45 编辑 ]
routeros
发表于 2006-11-30 14:07:18 | 显示全部楼层
高手经典,我也没想到别的方法。
也可以在两端完全禁止ARP协议,这样即使感染病毒也发不出来ARP包。然后两端全部静态绑定,这样没有ARP包乱飞的现象。其余的方法楼主都提到了。
routeros
回复

使用道具 举报

发表于 2006-11-30 14:58:11 | 显示全部楼层
顶 从新学了一下 桢的结构
routeros
回复

使用道具 举报

发表于 2007-3-6 14:10:15 | 显示全部楼层
ding !!!!!!!!!!!!
routeros
回复

使用道具 举报

发表于 2007-3-6 18:24:20 | 显示全部楼层
单纯的ARP是不能跨网,但ARP类复合攻击也是可以跨网或穿越三层设备的
我就碰到过lan内的机器中毒后欺骗wan网关的,当时急着解决问题,也没注意具体方法,但的确是存在的,我要求ISP进行MAC绑定后就正常了
routeros
回复

使用道具 举报

 楼主| 发表于 2007-3-7 08:55:48 | 显示全部楼层
icmp的重定向可以跨网关欺骗
routeros
回复

使用道具 举报

发表于 2007-3-8 19:57:23 | 显示全部楼层
原帖由 xqs428 于 2007-3-7 08:55 发表
icmp的重定向可以跨网关欺骗


那在本地ROS上需要做什么策略来禁止这种重定向?
routeros
回复

使用道具 举报

发表于 2007-3-9 14:16:11 | 显示全部楼层
比较经典的说。。
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-9-30 03:30 , Processed in 0.084802 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表