今天忽然想写个关于破 Arp 防火墙的文章,也是老生常谈了,真理只有一条:知道原理,就能知道解决方案……

Arp 也是个很老的通讯协议了,Arp 攻击也很老了,关于 Arp 欺骗原理,我写过很多了,这里不再累赘了,请参考此文:

Arp 欺骗挂马、嗅探、监听、攻击 - 以及 Arp 防火墙的原理解析

Arp EMP v1.0 发布 & 技术文档 & 详细分析 hijackport + rdpproxy

这里只是简单的谈一谈“金山贝壳 Arp 防火墙 v2.0”的防御原理(其他各类 Arp 防火墙基本一样,这里就拿金山贝壳举例),以及突破方法。

Arp 防火墙的防御方案:

1、绑定本机 Arp 缓存表中网关的 Mac、IP 地址(使用“arp -a”命令,可以看到网关 Mac、IP 状态是静态的)。作用:防止别的机器对本机发包,伪装成网关欺骗本机。

2、使用驱动过滤本机接收及发送原始的数据包,分析其中的 Arp 数据包,判断是否是伪造或错误的数据包。作用:从底层拦截 Arp 欺骗数据,防止别的机器对本机发包,欺骗本机,同时还拦截本机对外发送 Arp 欺骗数据包。

3、疯狂的对网关发送正常的 Arp 数据包,发送的数据内容为“我才是 IP:***.***.***.***,我的 Mac 地址是:**-**-**-**-**-**!”,发送数据包的间隔时间极短,几毫秒一次。作用:不停地给网关说“我才是真的机器”,防止别的机器伪装成本机,去欺骗网关。

4、其他的非主要防御手段,不重要,就不做介绍了。

Arp 防火墙的突破方案:

从上边的防御方案来看,唯一存在缺陷的地方,便是网关。

如果网关没有绑定的话,那么你可以欺骗网关,但是,目标机器也在不停的给网管发包,说他才是真的机器,那么……

如何才能成功欺骗网关呢?

So,你发包?我也发!我比你发的还快!

那么,形势就变成了这样,目标机器和黑客机器都争着给网关说:“我才是真的!!!”,口水淹没大法,哈哈,是不是有点真假美猴王的感觉呢?

这下网关就懵了,这可如何是好呢,所以网关会把 Arp 缓存表一会改成这个,一会改成那个……

由于黑客机器比目标机器发包速度快,所以在一个很短的时间段内,网关的 Arp 缓存表中的地址,黑客机器占得几率比较高,所以网关对黑客机器发出去的数据包,就要比目标机器多一些。

所以黑客机器就拿到了目标机器的部分数据包,从而达到了欺骗的目的……

但是,这种方案后遗症很大,由于双方都在争网关,在很短的一个时间片内,被黑客机器争到了,那么目标机器会掉线,最典型的现象就是:疯狂的丢包、掉线,所以这种方法是万不得已的时候才用的……

这就是很热的疯狂发包的破墙方法,你用 Arp Emp v1.0 可以轻松搞定……

实际上,在实战中,这种方法很少有效,而且还容易引起掉线,十分不推荐使用……

如果 Arp 防火墙只绑定网关的话,对 Arp 缓存表中的其他机器地址不作处理的话,那么可以修改目标机器缓存表中的其他机器,但是没什么用,因为机房中,一般很少有机器互相通讯,基本都是对外通信……

Arp 攻击的终极防御方案:

网关和子网机器都互相绑定对方地址。

缺陷:Arp 协议完全失去了存在的意义……

后记:

由于 Arp 协议的天生缺陷,导致可以任意欺骗,如今各类防火墙的诞生,以及绑定 Mac 地址的方法,完全丧失了当初简单、快速、高效的设计初衷,基本上已经间接的废止了 Arp 协议……

留言评论(旧系统):

【匿名者】 @ 2012-04-09 11:05:06

本机和网关双绑MAC就能从根本上防止ARP欺骗了么?

本站回复:

是的,因为这样做了之后,会无视所有 Arp 包,所以 Arp 欺骗包根本就起不了作用……

日月 @ 2012-04-09 15:02:54

每次看老核blog都有新发现

本站回复:

↖(^ω^)↗