ARP终极解决方案
ARP的分析与解决. 如果您的网络出现,整体突然掉线,或者有不定时的部分机器掉线,再或者出现一台一台机器的掉线.而且一般情况下几种掉线都会自动恢复.那我非常热切的恭喜您,您中奖啦.奖品是ARP欺骗. 不用高兴也不用激动,因为这个奖项量很大,很朋友都在深受其意.ARP到底咋回事,这里咱说道说道. * 为了一个朋友"忘忧*"特意再加一段,"不掉线,一切看似正常的ARP" * 这几天看到很多朋友都在提出一些网络方案,询问是否可以彻底解决ARP问题.还有朋友请求帮忙. 不在挨个说了,一起抓吧.(方案在最后) ARP欺骗原理: 在同一NET内的所以机器是通过MAC地址通讯。方法为,PC和另一台设备通讯,PC会先寻找对方的IP地址,然后在通过ARP表(ARP表里面有所以可以通讯IP和IP所对应的MAC地址)调出相应的MAC地址。通过MAC地址与对方通讯。也就是说在内网中各设备互相寻找和用来通讯的地址是MAC地址,而不是IP地址。 但是当初ARP方式的设计没有考虑到过多的安全问题。给ARP留下很多的隐患,ARP欺骗就是其中一个例子。 网内的任何一台机器都可以轻松的发送ARP广播,来宣称自己的IP和自己的MAC。这样收到的机器都会在自己的ARP表格中建立一个他的ARP项,记录他的IP和MAC地址。如果这个广播是错误的其他机器也会接受。例如: 192.168.1.11 机器MAC是 00:00:00:11:11:11,他在内网广播自己的IP地址是192。168。1。254(其实是路由器的IP),MAC地址是00:00:00:11:11:11(他自己的真实MAC).这样大家会把给192。168。1。254的信息和发给00:00:00:11:11:11.也就是192.168.1.11..。 有了这个方法欺骗者只需要做一个软件,就可以在内网想骗谁就骗谁.而且软件网上到处都是,随便DWON随便用.要多随便有多随便啊... 基于原理,ARP在技术上面又分为,对PC的欺骗和对路由的欺骗.他们的区别在后面的ARP解决里面仔细阐述. ARP欺骗的起因: 网络游戏兴起后网络盗号,木马也跟着疯狂。ARP欺骗就是一种很好的盗号方式。欺骗者利用自己在网吧上网时,先找到内网网关的MAC地址,然后发送自己ARP欺骗,告送内网所以的机器自己是网关。例如:192.168.1.55 MAC是 00-14-6c-18-58-5a 机器为欺骗者的盗号机器,首先,他会先找到内网的网关(内网网关为 192.168.1.1 MAC为XX.XX.XX.XX.XX.XX)。之后他就会发送ARP广播,说自己的IP地址是:192.168.1.1 MAC地址是00-14-6c-18-58-5a.这样,内网的所有收到他发信息得机器都会把它误认为内网的网关。所有上网信息都会通过他的MAC地址发给这个机器,由于找不到真正的网关,这些被骗的机器就无法上网。而发送的所有信息都会被这个盗号机器收到,通过分析收到的信息他可以在里面找到有用的信息,特别是有关于帐号的部分,从而得到正在游戏的玩家的帐号,发生盗号事件。 ARP的发现: 那我们网吧出现掉线了,是否是ARP呢?如何去判断.好,这里给出方法,但是请大家顶了再说. ARP的通病就是掉线,在掉线的基础上可以通过以下几种方式判别,1。一般情况下不需要处理1分钟之内就可以回复正常上网。因为ARP欺骗是由时限,过了期限就会自动的回复正常。而且现在大多数路由器都会在很短时间内不停广播自己的正确ARP,使受骗的机器回复正常。但是如果出现攻击性ARP欺骗(其实就是时间很短的量很大的欺骗ARP,1秒有个几百上千的),他是不断的通过非常大量ARP欺骗来阻止内网机器上网,即使路由器不断广播正确的包也会被他大量的错误信息给淹没。2。打开被骗机器的DOS界面,输入ARP -A命令会看到相关的ARP表,通过看到的网关的MAC地址可以去判别是否出现ARP欺骗,但是由于时限性,这个工作必须在机器回复正常之前完成。如果出现欺骗问题,ARP表里面会出现错误的网关MAC地址,和真实的网关MAC一对黑白立分. ARP解决: 现在看到ARP解决方案,都感觉有点效率低下,而且不够稳定.本人对欣向路由较为了解,以他为例吧. 1.路由ARP广播. 国内部分硬件路由有此功能,最早是在欣向的路由里面发现这个功能.感觉不错,挺有方法的,但是在软路由里面好像还未发现,软路由的兄弟们加把劲啦.他的原理是路由器不间断的广播正确的路由器ARP.例如:路由器的IP是192.168.1.1 MAC:11:12:13:14:15:16,那他就会不停的每秒广播自己的正确ARP.不管你内网机器是否喜欢收,1秒收一个一秒收一个,收到了就改一次ARP表收到了就改一次ARP表.无穷无尽无止无息,子子孙孙无穷亏也.....如果出现ARP欺骗,欺骗者发出欺骗信息,PC刚收到欺骗信息就收到了正确信息.所以问题也就解决了.但是有个隐患,就是广播风暴的问题.不间断的广播是否会应该内网的网络呢??? (带着问题请教了国内某厂家欣X的工程师,工程师很热情的解除了我的疑惑,感谢一下先).以每秒次的频率发送APR广播在内网是微乎其微的,因为任何一个机器都会有广播发生,多一个ARP最多相当于多几台机器的信息量,对内网是不会有影响的.但是这种方式有他的问题,当欺骗者加大欺骗ARP的频率超过路由时(在欺骗软件上面实现非常容易),还是会造成欺骗的效果.解决也应该很简单就是加大路由器的广播频率,但是欣X的工程师却否定了这种方法,原因请看第2条. 2.超量路由ARP广播. 近期发现个别路由厂家宣传可以完全防止ARP问题.我抱着崇敬的心态去学习了一下处理方法,不得不让人失望,是非常失望和痛心.所谓完全防止其实就是前面的路由ARP广播,只是简单的把频率加大到每秒100.200.....次. 这种方法效果单看ARP方面确实比每秒一次要好.但是却是得不偿失,甚至有点.....不说了,免得让人骂.简单给大家分析一下,每秒100为例吧,也就是说,路由器1秒时间会发出100个ARP广播,200台的电脑,每台机器每秒处理100次.如果有10台交换机,就会有10个交换机处理100次.每次交换机都会把信息互相转发,这每秒ARP信息的处理量要按照10N次方*100去计算的.大家如果了解广播的模式就会清楚,交换家之间会互相不停的传递信息,你发给大家,我收到了,还会发给大家.大家收到了还是要发给大家.这样每台PC最终收到的信息每秒要上万条吧(这个量应该只小没大吧?).每秒都这样干100次.不知道网络内部要成为什么样子??PC的就没事老维护ARP表就不干别的了吗?为了一个ARP,7*24小时的折腾网络值得吗?网络性能要降低多少啊.人满时或者有点内网的小攻击时,网吧不瘫痪估计有点难啊,,,死字很容易写啊.当然平时你是感觉不到的.但是我要问一句想出此方法的工程师,你出这个方案,是为了解决问题吗? 3.极力推荐的方法.静态绑定. ARP解决最有效的方法,就是从根本杜绝他的欺骗途径。 欺骗是通过ARP的动态实时的规则欺骗内网机器,所以我们把ARP全部设置为静态可以根本解决对内网PC的欺骗。 方法为:找到路由器的lan口的MAC地址,把MAC地址通过静态的方式帮定到每台PC上面。通过命令,ARP -S 可以实现。 首先,建立一个批处理文件。内容只有一行命令,“ARP -S 内网网关 网关的MAC地址 ”,例如:“ARP -S 192.168.1.1 00-13-32-33-12-11 ”.把批处理文件放到启动里面,这样每次开机都会执行这个文件,即使出现ARP欺骗,由于我们设置的是静态方式,PC也不会去理会欺骗的ARP. 如果设置成功会在PC上面通过执行 arp -a 可以看到相关的提示: Internet Address Physical Address Type(注意这里) 192.168.1.1 00-0f-1a-05-0d-a4 static(静态) 一般不绑定,在动态的情况下: Internet Address Physical Address Type 192.168.1.1 00-0f-1a-05-0d-a4 dynamic(动态) ARP对路由的欺骗. 做了静态绑定之后,为什么还会掉线呢?还是ARP吗?不幸的是,还是ARP( ARP对路由欺骗). 因为有种情况下的问题,没有得到解决.大家设想一下,现在的处理方法如果碰到欺骗者不是冒充网关,而是冒充内网的PC会如何呢?答案是掉线,冒充谁,谁掉线.因为路由器收到欺骗ARP后找不到你了,转发给你的信息全部给了欺骗者的机器啦... 我们在PC上面可以绑定网关.难道在路由上面也绑定PC吗? 答案是否定的,难道我内网每台PC的MAC地址都在路由里面绑定,累死了,而且几百个MAC地址看着就眼晕,而且如果有任何改动都需要调整路由器,几百条记录也太累了吧.针对这个问题对多台设备进行了测试,包括3个版本的软路由,欣X,侠X,艾X等等的产品(大家也想测试的话,给当地的厂家代理商说你要试用,简单啊).最终结果不尽人意,软路由3种里面只有1种有可以解决的方法,而且是每台绑定方法.3款硬路由有1款是可以完全防范,2款需要绑定(提醒大家,2款产品都有绑定数量的限制,超过数量无法解决,采购时注意询问).对于1款可以防范的产品做了一些研究但是没有结果,再次打通了欣X的工程师电话,请教处理方法.工程师给出了答案,欣X路由是采用的WINDRIVER的VxWORKSII的*作系统.在效率与安全性要比免费LINUX系统的强很多,这套2代的系统本身就可以维护一个数据库,不从硬件的数据库提取数据,数据表内容都是在PC上网时收集的,对于ARP欺骗根本就不予理睬,针对ARP对路由的欺骗在基础上面就已经给屏蔽了.而且内网可以随意的改动与调整...打住..有点象厂家稿子啦...... ARP的问题这里基本都提到了,如果还有想法请大家提出来.我们一起讨论....... 后面在补充一种ARP欺骗的问题,他就是对交换机,很多带管理的交换机他们都有一张ARP表格需要维护,而且通过这张表来提高数据的交换效率.如果出现ARP欺骗,交换机就无法给目标IP发送数据啦,所以需要在交换机里面做静态ARP绑定. 为什么会有不掉线,一切看似正常的ARP 大家是否出现过网吧丢游戏号,丢QQ号,丢钱包的问题呢? 特别是大面积的丢失帐号,很大部分就是ARP造成的.原理是:欺骗者,先骗了PC后骗了路由器. 这种情况下,PC把信息发给欺骗者,然后欺骗者把信息再转发给路由器.当欺骗者收到路由器回来的信息后再发给相对应的PC.这样就可以再不影响内网PC正常上网情况下,截获PC的上网信息,就可以盗你的游戏帐号,盗你的qq号.偷你的钱包他就要换另一个方法了! 2.Arp反欺骗策略
文章提交:backspray (nimaozhi_at_163.com)
近来与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全都倒下。我测了两款,这里把测的结果说一下: 1、金山Arp FW,二话不说,倒下了。(as如果不设间隔的话能实现双向欺骗)。 2、360 Arp FW,倒下了,倒的挺爱的。它倒下的同时,如果你点击重新获取正确网关,它等几秒后,报告有Arp攻击。我一看攻击报告里头的恶意mac,结果恶意的mac恰恰是正确网关发来的。(不设间隔的话能双向欺骗)。 瑞*的我没测。因为我没搞到它的注册码。向一个有可能有哥们要。结果被那哥们鄙视了,他的原话是“没有哦垃圾瑞星我才不用那”(聊天记录直接CTRL+V出来,连错别字都我都没改)。现在若评世界上哪一款杀软的自身进程最多,瑞*应该能排第一吧。^_^ 虽然没测,但结果应该是跑不掉的。因为Arp协议在那里摆着。 先说为什么间隔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被用,没人应答的话,就是富余的IP了。 只要把自己的IP和mac一改 改了之后,迅速刷新网关,获得正确网关的mac之后,可以询问用户是否改回来,改回来,因为无法避免丢包。网速也容易受影响。 第二种关于机房Arp欺骗的情况这里就不多说,参考上面文字。有几点要说明的是,机房里,外网IP和内网IP是映射的,同时改IP和mac是会导致断网的,有一定危险性。另外获得正确网关的mac后,IP和mac必须改回来。也就是说在机房这种情况下,丢包是免不了的。 若您对本文有任何看法,欢迎给E我, [email protected] Copyright © 1998-2006 XFOCUS
3.
局域网络环境下arp欺骗攻击及安全防范策略
摘 要 文章介绍了arp地址解析协议的含义和工作原理,分析了arp协议所存在的安全漏洞,给出了网段内和跨网段arp欺骗的实现过程。最后,结合网络管理的实际工作,重点介绍了ip地址和mac地址绑定、交换机端口和mac地址绑定、vlan隔离等技术等几种能够有效防御arp欺骗攻击的安全防范策略,并通过实验验证了该安全策略的有效性。
关健词 arp协议 arp欺骗 mac地址 ip地址 网络安全
1 arp协议简介
arp(address resolution protocol)即地址解析协议,该协议将网络层的ip地址转换为数据链路层地址。tcp ip协议中规定,ip地址为32位,由网络号和网络内的主机号构成,每一台接入局域网或者internet的主机都要配置一个ip地址。在以太网中,源主机和目的主机通信时,源主机不仅要知道目的主机的ip地址,还要知道目的主机的数据链路层地址,即网卡的mac地址,同时规定mac地址为48位。arp协议所做的工作就是查询目的主机的ip地址所对应的mac地址,并实现双方通信。
2 arp协议的工作原理
图1 网段内arp工作原理
图2 夸网段arp工作原理
源主机在传输数据前,首先要对初始数据进行封装,在该过程中会把目的主机的ip地址和mac地址封装进去。在通信的最初阶段,我们能够知道目的主机的ip地址,而mac地址却是未知的。这时如果目的主机和源主机在同一个网段内,源主机会以第二层广播的方式发送arp请求报文。arp请求报文中含有源主机的ip地址和mac地址,以及目的主机的ip地址。当该报文通过广播方式到达目的 主机时,目的主机会响应该请求,并返回arp响应报文,从而源主机可以获取目的主机的mac地址,同样目的主机也能够获得源主机的mac地址。如果目的主机和源主机地址不在同一个网段内,源主机发出的ip数据包会送到交换机的默认网关,而默认网关的mac地址同样可以通过arp协议获取。经过arp协议解析ip地址之后,主机会在缓存中保存ip地址和mac地址的映射条目,此后再进行数据交换时只要从缓存中读取映射条目即可。arp协议工作原理详见图1和图2。
3 arp欺骗攻击的实现过程3.1 网段内的arp欺骗攻击
arp欺骗攻击的核心就是向目标主机发送伪造的arp应答,并使目标主机接收应答中伪造的ip与mac间的映射对,并以此更新目标主机缓存。设在同一网段的三台主机分别为a,b,c,详见表1。
表1:同网段主机ip地址和mac地址对应表
假设a与b是信任关系,a欲向b发送数据包。攻击方c通过前期准备,可以发现b的漏洞,使b暂时无法工作,然后c发送包含自己mac地址的arp应答给a。由于大多数的操作系统在接收到arp应答后会及时更新arp缓存,而不考虑是否发出过真实的arp请求,所以a接收到应答后,就更新它的arp缓存,建立新的ip和mac地址映射对,即b的ip地址10.10.100.2对应了c的mac地址00-e0-4c-33-33-33。这样,导致a就将发往b的数据包发向了c,但a和b却对此全然不知,因此c就实现对a和b的监听。
3.2 跨网段的arp欺骗攻击
跨网段的arp欺骗比同一网段的arp欺骗要复杂得多,它需要把arp欺骗与icmp重定向攻击结合在一起。假设a和b在同一网段,c在另一网段,详见表2。
表2:跨网段主机ip地址和mac地址对应表
首先攻击方c修改ip包的生存时间,将其延长,以便做充足的广播。然后和上面提到的一样,寻找主机b的漏洞,攻击此漏洞,使主机b暂时无法工作。此后,攻击方c发送ip地址为b的ip地址10.10.100.2,mac地址为c的mac地址00-e0-4c-33-33-33的arp应答给a。a接收到应答后,更新其arp缓存。这样,在主机a上b的ip地址就对应c的mac地址。但是,a在发数据包给b时,仍然会在局域网内寻找10.10.100.2的mac地址,不会把包发给路由器,这时就需要进行icmp重定向,告诉主机a到10.10.100.2的最短路径不是局域网,而是路由,请主机重定向路由路径,把所有到10.10.100.2的包发给路由器。主机a在接受到这个合理的icmp重定向后,修改自己的路由路径,把对10.10.100.2的数据包都发给路由器。这样攻击方c就能得到来自内部网段的数据包。
4 arp欺骗攻击安全防范策略
|