天下网吧 >> 网吧方案 >> 安全方案 >> 正文

谈Arp反欺骗策略防范恶意攻击

  近来与Arp相关恶意软件越来越猖獗,受害者的也不少,国内的各大杀毒厂商也纷纷推出Arp防火墙,这篇文章不是科普,主要是思路,更想起到抛砖引玉的作用。此外,末学接触并熟悉Arp协议到写出Arp欺骗和反欺骗的test code,前前后后也不过一个星期多一点的时间。经验有限,疏漏之处,再所难免,各位见谅。

  Arp协议和Arp欺骗这里就不做介绍了,网络这方面的文章比比皆是。

  为了便于理解,下面构造一些名词:

  受骗主机:假如局域网内,有网关,发起欺骗的主机(以下简称欺骗主机),受骗主机。

  双向欺骗:欺骗主机使得网关认为欺骗主机是受骗主机,同时让受骗主机认为欺骗主机是网关;

  单向欺骗网关:欺骗主机只使网关认为欺骗主机是受骗主机;

  单向欺骗目标主机:欺骗主机只使受骗主机认为它是网关;

  Arp除了能sniffer之外,现在比较流行的做法就是利用Arp进行HTTP挂马的情况,所以下面考虑的影响基本以这个角度的方面来衡量。

  由于环境不同,继续往下分,一个机房被Arp欺骗的情况,机房一般以服务器为主,对外发的数据多以http应答包为主,此时单向欺骗目标主机的危害比较大。另外一个普通的公司、家庭及网吧之类的局域网环境,对外发的数据多以http请求为主,接收的数据多以http应答包为主,此时单向欺骗网关危害比较大。

  还有的就是和网关有关了,网关简单的先分两种:

  1、支持IP和MAC绑定的;

  2、不支持IP和MAC绑定。

  支持IP和MAC绑定的网关都好办,所以这里就不讨论这种情况了,主要讨论不支持IP和MAC绑定的情况:

  下面举的例子都是Arp双向欺骗已经存在的情况,装上Arp FW后FW将处理以下一些情况。

  第一种情况:普通公司,家庭及网吧之类局域网环境下,网关不支持IP和MAC绑定。

  先说欺骗策略,说到这里不得不提Arpspoof(以下简称AS),最近流行这个工具,并且开源,好分析,也确实写的不错。我手头拿到的3.1版本的源代码。若不修改AS代码,在当前情况下,并处在双向欺骗时,只要把配置文件稍微改改,就能够实现利用ARP挂马。但如果受骗主机绑定了正确网关的MAC,就不灵了。但如果有人修改了AS代码,使其能支持gzip解码,并且把本应发给受害主机的包,重组并解码然后再发给受害主机,就又能欺骗了。

  然后再回来看看现在国内的Arp FW。比较弱的,FW一进去,连正确的网关MAC都检测不出来,需要手动填。好点的能自动检测正确的网关的MAC,一般步骤是:

  1.获取当前网关MAC(如利用sendARP函数等等);

  2.利用网关IP发一个广播包,获取网关的MAC;

  3.抓包对比,如果第一步和第二步获得网关的MAC相同,则认为网关MAC不是伪造的。如过第二步获得两个Arp reply,则把这两个包与第一步的MAC对比,相同的说明是伪造的。如果第二步只获得一个Arp reply,以第二步获得MAC为准。

  检测到正确网关MAC后,就静态的绑定网关IP和MAC,防止别人伪造网关。

  基本上都这么搞,这个思路是有缺陷的。没错,是可以防得住现在的AS。因为AS发Arp欺骗包间隔是3s,如果不改源代码的话。在这个的时间间隔下,这三步是有能力获得正确的网关,但是如果把间隔设短,甚至没有间隔发Arp欺骗包的话,现在国内市面上的Arp FW全都得倒下。

  先说为什么间隔3s的话,能检测到正确网关MAC,在执行第二步时,在发广播包之前必须先发一个Arp reply给网关,告诉网关自己正确的MAC,然后网关才能把它本身的MAC发给受骗主机,这个过程必须在3s内完成。因此如果AS的spoof不设间隔的话。那么网关在接收了你的IP和MAC之后,发起欺骗的主机马上就去网关那把它改回来,这样受骗主机虽然发了广播包,但是网关根据MAC,会把它本身的MAC发给欺骗主机而不是发给受骗主机,这样受骗主机依然得不到正确网关的MAC。另外,哪怕受骗主机得到了正确的网关MAC,也只能保证自己对外发包不受欺骗,但是收到的包还是会被欺骗的。当然FW可以和AS玩拉锯,二者都争先恐后的去网关那边刷自己的MAC。但是这样容易导致丢包。

  其实这种状况还是有一个相对的解决方案,就是彻底的改头换面掉。同时改自己的IP和MAC,不论FW用什么添加ndis虚拟网卡,或者通过代码直接就把当前IP和MAC替掉,获得正确网关MAC才有保证,否则连正确网关MAC都拿不到。其它的就更不用说了,至于什么手动填网关MAC之类的,就先不讨论了。

  说这是一个相对的解决方案,是因为前提是局域网内得有富余的IP资源。另外它还有一些弊端。就是如果有些机器关机的话,而受害者替换了它的IP之后,以后将造成冲突。当然也是有解决方案,比较多,这里就先不讨论了。

  因此,先要确定哪些IP是未被使用的,可以广播Arp request局域网各个IP的MAC,如果有人应答的话说明这个IP被用

本文来源:天下网吧 作者:网吧方案

相关文章
没有相关文章
声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下