显示标签为“局域网”的博文。显示所有博文
显示标签为“局域网”的博文。显示所有博文

2008年11月11日星期二

局域网ARP欺骗的应对

一、故障现象及原因分析
情况一、当局域网内某台主机感染了ARP病毒时,会向本局域网内(指某一网段,比如:10.10.75.0这一段)所有主机发送ARP欺骗攻击谎称自己是这个网端的网关设备,让原本流向网关的流量改道流向病毒主机,造成受害者正常上网。
情况二、局域网内有某些用户使用了ARP欺骗程序(如:网络执法官,QQ盗号软件等)发送ARP欺骗数据包,致使被攻击的电脑出现突然不能上网,过一段时间又能上网,反复掉线的现象。
关于APR欺骗的具体原理请看我收集的资料ARP欺骗的原理
二、故障诊断
如果用户发现以上疑似情况,可以通过如下操作进行诊断:
点击“开始”按钮->选择“运行”->输入“arp–d”->点击“确定”按钮,然后重新尝试上网,如果能恢复正常,则说明此次掉线可能是受ARP欺骗所致。
注:arp-d命令用于清除并重建本机arp表。arp–d命令并不能抵御ARP欺骗,执行后仍有可能再次遭受ARP攻击。
三、故障处理
1、中毒者:建议使用趋势科技SysClean工具或其他杀毒软件清除病毒。
2、被害者:(1)绑定网关mac地址。具体方法如下:
1)首先,获得路由器的内网的MAC地址(例如网关地址10.10.75.254的MAC地址为0022aa0022aa)。2)编写一个批处理文件AntiArp.bat内容如下:

@echooffarp-darp-s10.10.75.25400-22-aa-00-22-aa
将文件中的网关IP地址和MAC地址更改为您自己的网关IP地址和MAC地址即可,计算机重新启动后需要重新进行绑定,因此我们可以将该批处理文件AntiArp.bat文件拖到“windows--开始--程序--启动”中。这样开机时这个批处理就被执行了。
(2)使用ARP防火墙(例如AntiArp)软件抵御ARP攻击。
AntiArp软件会在提示框内出现病毒主机的MAC地址
四,找出ARP病毒源
第一招:使用Sniffer抓包
在网络内任意一台主机上运行抓包软件,捕获所有到达本机的数据包。如果发现有某个IP不断发送
ARP  Request请求包,那么这台电脑一般就是病毒源。原理:无论何种ARP病毒变种,行为方式有两种,一是欺骗网关,二是欺骗网内的所有主机。最终的结 果是,在网关的ARP缓存表中,网内所有活动主机的MAC地址均为中毒主机的MAC地址;网内所有主机的ARP缓存表中,网关的MAC地址也成为中毒主机 的MAC地址。前者保证了从网关到网内主机的数据包被发到中毒主机,后者相反,使得主机发往网关的数据包均发送到中毒主机。
第二招:使用arp- a命令任意选两台不能上网的主机,在DOS命令窗口下运行arp-a命令。例如在结果中,两台电脑除了网关的IP,MAC地址对应项,都包含了 192.168.0.186的这个IP,则可以断定192.168.0.186这台主机就是病毒源。原理:一般情况下,网内的主机只和网关通信。正常情况 下,一台主机的ARP缓存中应该只有网关的MAC地址。如果有其他主机的MAC地址,说明本地主机和这台主机最后有过数据通信发生。如果某台主机(例如上 面的192.168.0.186)既不是网关也不是服务器,但和网内的其他主机都有通信活动,且此时又是ARP病毒发作时期,那么,病毒源也就是它了。
第 三招:使用tracert命令在任意一台受影响的主机上,在DOS命令窗口下运行如下命令:tracert61.135.179.148。假定设置的缺省 网关为10.8.6.1,在跟踪一个外网地址时,第一跳却是10.8.6.186,那么,10.8.6.186就是病毒源。原理:中毒主机在受影响主机和 网关之间,扮演了“中间人”的角色。所有本应该到达网关的数据包,由于错误的MAC地址,均被发到了中毒主机。此时,中毒主机越俎代庖,起了缺省网关的作 用。

ARP欺骗攻击技术及其防范方法

什么是ARP协议

要想了解ARP欺骗攻击的原理,首先就要了解什么是ARP协议。ARP是地址转换协议的英文缩写,它是一个链路层协议,工作在OSI模型的第二层,在本层和硬件接口间进行联系,同时为上层(网络层)提供服务。

我们知道,二层的以太网交换设备并不能识别32位的IP地址,它们是以48位以太网地址(就是我们常说的MAC地址)传输以太网数据包的。因此IP地址与MAC地址之间就必须存在一种对应关系,而ARP协议就是用来确定这种对应关系的协议。

ARP工作时,首先请求主机发送出一个含有所希望到达的IP地址的以太网广播数据包,然后目标IP的所有者会以一个含有IP和MAC地址对的数据包 应答请求主机。这样请求主机就能获得要到达的IP地址对应的MAC地址,同时请求主机会将这个地址对放入自己的ARP表缓存起来,以节约不必要的ARP通 信。ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用(Windows系统这个时间为2分钟,而Cisco路由器的这个时间为5分 钟),就会被删除。通过下面的例子我们可以很清楚地看出ARP的工作机制。

假定有如下五个IP地址的主机或者网络设备,它们分别是:

主机A 192.168.1.2
主机B 192.168.1.3
网关C 192.168.1.1
主机D 10.1.1.2
网关E 10.1.1.1
假 如主机A要与主机B通信,它首先会检查自己的ARP缓存中是否有192.168.1.3这个地址对应的MAC地址,如果没有它就会向局域网的广播地址发送 ARP请求包,大致的意思是192.168.1.3的MAC地址是什么请告诉192.168.1.2,而广播地址会把这个请求包广播给局域网内的所有主 机,但是只有192.168.1.3这台主机才会响应这个请求包,它会回应192.168.1.2一个ARP包,大致的意思是192.168.1.3的 MAC地址是02-02-02-02-02-02。这样的话主机A就得到了主机B的MAC地址,并且它会把这个对应的关系存在自己的ARP缓存表中。之后 主机A与主机B之间的通信就依靠两者缓存表里的MAC地址来通信了,直到通信停止后2分钟,这个对应关系才会从表中被删除。

再来看一个非局域网内部的通信过程。假如主机A需要和主机D进行通信,它首先会发现这个主机D的IP地址并不是自己同一个网段内的,因此需要通过网 关来转发,这样的话它会检查自己的ARP缓存表里是否有网关192.168.1.1对应的MAC地址,如果没有就通过ARP请求获得,如果有就直接与网关 通信,然后再由网关C通过路由将数据包送到网关E,网关E收到这个数据包后发现是送给主机D(10.1.1.2)的,它就会检查自己的ARP缓存,看看里 面是否有10.1.1.2对应的MAC地址,如果没有就使用ARP协议获得,如果有就是用该MAC地址与主机D通信。

通过上面的例子我们知道,在以太局域网内数据包传输依靠的是MAC地址,IP地址与MAC对应的关系依靠ARP表,每台主机(包括网关)都有一个ARP缓存表。在正常情况下这个缓存表能够有效保证数据传输的一对一性,像主机B之类的是无法截获A与D之间的通信信息的。

但是主机在实现ARP缓存表的机制中存在一个不完善的地方,当主机收到一个ARP的应答包后,它并不会去验证自己是否发送过这个ARP请求,而是直 接将应答包里的MAC地址与IP对应的关系替换掉原有的ARP缓存表里的相应信息。这就导致主机B截取主机A与主机D之间的数据通信成为可能。

首先主机B向主机A发送一个ARP应答包说192.168.1.1的MAC地址是02-02-02-02-02-02,主机A收到这个包后并没有去 验证包的真实性而是直接将自己ARP列表中的192.168.1.1的MAC地址替换成02-02-02-02-02-02,同时主机B向网关C发送一个 ARP响应包说192.168.1.2的MAC是02-02-02-02-02-02,同样,网关C也没有去验证这个包的真实性就把自己ARP表中的 192.168.1.2的MAC地址替换成02-02-02-02-02-02。当主机A想要与主机D通信时,它直接把应该发送给网关 192.168.1.1的数据包发送到02-02-02-02-02-02这个MAC地址,也就是发给了主机B,主机B在收到这个包后经过修改再转发给真 正的网关C,当从主机D返回的数据包到达网关C后,网关也使用自己ARP表中的MAC,将发往192.168.1.2这个IP地址的数据发往 02-02-02-02-02-02这个MAC地址也就是主机B,主机B在收到这个包后再转发给主机A完成一次完整的数据通信,这样就成功地实现了一次 ARP欺骗攻击。

因此简单点说,ARP欺骗的目的就是为了实现全交换环境下的数据监听。大部分的木马或病毒使用ARP欺骗攻击也是为了达到这个目的。

如何发现及清除

局域网内一旦有ARP的攻击存在,会欺骗局域网内所有主机和网关,让所有上网的流量必须经过ARP攻击者控制的主机。其他用户原来直接通过网关上 网,现在却转由通过被控主机转发上网。由于被控主机性能和程序性能的影响,这种转发并不会非常流畅,因此就会导致用户上网的速度变慢甚至频繁断线。另外 ARP欺骗需要不停地发送ARP应答包,会造成网络拥塞。

一旦怀疑有ARP攻击我们就可以使用抓包工具来抓包,如果发现网内存在大量ARP应答包,并且将所有的IP地址都指向同一个MAC地址,那么就说明 存在ARP欺骗攻击,并且这个MAC地址就是用来进行ARP欺骗攻击的主机MAC地址,我们可以查出它对应的真实IP地址,从而采取相应的控制措施。另 外,我们也可以到路由器或者网关交换机上查看IP地址与MAC地址的对应表,如果发现某一个MAC对应了大量的IP地址,那么也说明存在ARP欺骗攻击, 同时通过这个MAC地址查出用来ARP欺骗攻击的主机在交换机上所对应的物理端口,从而进行控制。


如何防范?

我们可以采取以下措施防范ARP欺骗。

(1)在客户端使用arp命令绑定网关的真实MAC地址命令如下:

arp (先清除错误的ARP表)

arp 192.168.1.1 03-03-03-03-03-03 (静态指定网关的MAC地址)

(2)在交换机上做端口与MAC地址的静态绑定。

(3)在路由器上做IP地址与MAC地址的静态绑定。

(4)使用“ARP SERVER”按一定的时间间隔广播网段内所有主机的正确IP-MAC映射表。

(5)最主要是要提高用户的安全意识,养成良好的安全习惯,包括:及时安装系统补丁程序;为系统设置强壮的密码;安装防火墙;安装有效的杀毒软件并及时升级病毒库;不主动进行网络攻击,不随便运行不受信任的软件。

局域网遭遇盗用MAC地址上网问题的解决方法

盗用MAC地址是一直局域网管理里一个比较棘手的问题,而且总是没有简单的方法能够避免这些现象,说起来真的是一个很让网络管理员头痛的问题。

交换机端口绑定MAC地址是一个很彻底的好办法,但只有智能交换机才有端口绑定MAC地址功能,如果全部换智能交换机的话我想是一笔不小的投资,一般的企业也不会为避免盗用MAC现象而投入资金更换网络设备,而且绑定端口后还会给网管带来很大的不便,如果电脑位置动一下,就要跟着修改端口绑定记录,无形中给管理员增加了很大的工作量。

宽带提供商在接入设备上会做这样的投资和设置,我们当地的网通LAN就是采用这种方式,把每个端口划分成一个单独的VLAN,并把端口绑定MAC。这样的安全性确实很高。因为作为他们来说,每被盗用一个MAC地址,他们就会有直接的经济损失,而作为一般的企业,网络只是用来辅助工作的,而并不是一种公司的产业。所以按他们的做法去做是不现实的。

现在通过宽带路由器去控制网基本上是采用IP过滤和MAC过滤,有些人认为把IP和MAC地址绑定起来可以解决盗用IP或MAC问题,但如果有人把IP和MAC一起改的话,那就束手无策了,路由器根本无法判别哪个是真的哪个是假的,就象是“真假悟空”一样,难以分辨。

我公司原来使用宽带路由器,但盗用MAC地址的现象很频繁,MAC地址冲突后,会出现网络时断时通,PING后丢包很严重,表面上很象线路问题。虽然可以通过公司规章制度去约束这种行为,但往往要网络管理员上报这些违归行为,这样做会恶化同事关系,在同一个公司里工作,同事关系搞不好也是一大忌,到时候万一要去麻烦别人的时候你就会发现做什么事情都不顺,因此给自己留条后路也是必要的,无奈中的无奈,只能通过技术办法去解决这个技术问题啦。

现在我在公司改用CCPROXY代理上网,其实用代理服务器上网很早就用过了,以前路由器价格昂贵,所以宽带共享很多都是使用代理服务器,自从宽带路由器普及后,就不再使用代理服务器了,因为总是有人说宽带路由器有什么样什么样的好处,真想不到今天又会回过来使用代理服务器,现在采用账户名+密码+MAC绑定的方式认证上网权限,这样做在原来通过MAC地址控制上网的基础上,多了一个用户名密码环节,这样会大大增加非法上网者的难度。单单盗用MAC地址是没用的,如果密码被盗,那么管理员可以在代理服务器上修改密码,这样主动权还是掌握在管理员手里,象以前那样只通过MAC控制上网权限,有时候处理起来是很被动的。虽然通过端口代理上网比直接使用路由器设置复杂些,因为有些软件根本不支持代理方式,但装了permeo-Driver-combo-win_4_2_2.zip这个软件后,不需要在客户机上设置烦琐的代理服务器,基本能做到和使用路由器那样的方便。CCPROXY还有一个好处是针对不同的机器可以做不同的设置,如控制连接数,控制带宽,控制上网时间,控制过滤网站等等,而一般的宽带路由器只能做到批量控制,不能对不同的电脑分配不同的权限。