翱翔天空♂鹏 » 日志 » ARP攻击问题及解决方法
ARP攻击问题及解决方法
翱翔天空♂鹏 发表于 2008-11-17 16:55:29
问:
公司网络,通过一台PC做代理服务器上网,安装ISA 2004做软件防火墙。
最近老掉线,每次一掉线就是全体断外网,但是局域网内部是通的。
经过几次查证,确定是局域网有APR攻击。
现在有几个问题:
1,那台代理服务器安装了360安全卫士,360自带ARP防火墙防御,但是为什么每次掉线的时候,360ARP防火墙没有任何报警和提示,一条记录也没。
2,关于ARP攻击,如果是局域网内部两台机器间的攻击,(假设那台代理没受攻击)那也会全体断网吗???
3,ARP攻击使用什么工具防范最好,网上说360好,开始到现在N次掉线,那个360的ARP防火墙就没有一次报警过!!!然后,关于这个东西,是不是在代理上面装就可以了,还是局域网所有机器都要装360的ARP防火墙??(因为我个人觉得只要代理服务器能够防御攻击,那么就不至于全体掉线吧)
4,断线的时候,为什么我让大家在自己机器上用ARP -A,然后看网关显示的MAC地址------就是正确的网关MAC啊,也没有没欺骗,更改啊?
5,到底什么方法或工具能够快速查到有毒的那台机器(IP或MAC都可以),因为之前有及次掉线,不管是我个人机器装的瑞星2008防火墙,还是代理服务器上安装的360ARP防火墙,都没有任何反应(在掉线的时候)。公司200多台机器,大家都要上班,说了全部从装系统,装杀毒软件,这个不台现实,毕竟大家都还要办公。。。
问题补充:
1,局域网有个员工用的是ANTI-ARP防火墙,他里面记录已经拦截了几十万个ARP冲突包。
2,之前确实360是没任何反应,但是我自己机器上装的瑞星2008防火墙,就经常会有“局域网有IP冲突,请选择一个MAC加入可信任区域”
3,每次断网,一断就是全体上不了外网,但是局域网是完好的,然后我就去那台代理服务器上去看,那台机器当时是PING外网都PING不通,但是只要我先把内网的那块网卡禁用掉(断绝了和内网的链接---这样内网有毒有冲突包暂时也影响不到我),然后把外网的那块网卡再禁用--激活,然后立竿见影---那台服务器就可以PING通外网,可以访问任何网站。
4,有个问题,瑞星2008防火墙可以查到局域网有IP冲突,但是当我把被怀疑的那块硬盘拿下来挂到安装了“2008瑞星杀毒软件”的机器上去查杀,却什么毒也查不出来。。。
就是说瑞星防火墙提示的有问题的那块硬盘那用瑞星去杀,他自己也杀不出来,所以也搞不清除是什么原因。。。
5,关于那个ANTI -ARP。要收费使用总是不台方便,所以就图便宜装了360,结果,从类没有过任何拦截。。。
答:
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 -d *(先清除错误的ARP表)
arp -s 192.168.1.1 03-03-03-03-03-03 (静态指定网关的MAC地址)
(2)在交换机上做端口与MAC地址的静态绑定。
(3)在路由器上做IP地址与MAC地址的静态绑定。
(4)使用“ARP SERVER”按一定的时间间隔广播网段内所有主机的正确IP-MAC映射表。
(5)最主要是要提高用户的安全意识,养成良好的安全习惯,包括:及时安装系统补丁程序;为系统设置强壮的密码;安装防火墙;安装有效的杀毒软件并及时升级病毒库;不主动进行网络攻击,不随便运行不受信任的软件。
ARP工作原理如下:
在TCP/IP协议中,A给B发送IP包,在包头中需要填写B的IP为目标地址,但这个IP包在以太网上传输的时候,还需要进行一次以太包的封装,在这个以太包中,目标地址就是B的MAC地址.
计算机A是如何得知B的MAC地址的呢?解决问题的关键就在于ARP协议。
在A不知道B的MAC地址的情况下,A就广播一个ARP请求包,请求包中填有B的IP(192.168.1.2),以太网中的所有计算机都会接收这个请求,而正常的情况下只有B会给出ARP应答包,包中就填充上了B的MAC地址,并回复给A。
A得到ARP应答后,将B的MAC地址放入本机缓存,便于下次使用。
本机MAC缓存是有生存期的,生存期结束后,将再次重复上面的过程。
ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造来的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP应答后,就会更新本地的ARP缓存,这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。由于局域网的网络流通不是根据IP地址进行,而是按照MAC地址进行传输。所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通C!这就是一个简单的ARP欺骗。
=================================================================================
问:
单位上有40多台电脑,用的是电信的光纤,网速是很快的.
最近中了ARP病毒,上网时断时续,我就每台电脑安装了360安全卫士,并开了ARP防火墙,上网的基本问题是解决了,但哪一台电脑中了arp却毫无头绪.
360的防火墙是可以提示攻击源mac地址的,但我在每台电脑上用ipconfig/all,没有一台电脑是这个mac地址.360防火墙也是可以提示发出攻击的拦截的,但也没有发现(基本每台电脑都开了360 arp防火墙,还有几台是没开机的).
请教高手找到攻击源的方法.
路由器的mac地址肯定查过,因为确定为arp攻击时就查过路由器mac地址,上不了网时用arp -a能发现网关192.168.0.1的mac地址变为了攻击源的mac地址.
单位用的最简单的宽带路由器,没多少功能的.
答:
不要用360提示的MAC地址,用下列方法应该可以解决。
在“开始” - “程序” - “附件”菜单下调出“命令提示符”。输入并执行以下命令:
ipconfig
记录网关 IP 地址,即“ Default Gateway ”对应的值,例如“ 59.66.36.1 ”。再输入并执行以下命令:
arp –a
在“ Internet Address ”下找到上步记录的网关 IP 地址,记录其对应的物理地址,即“ Physical Address ”值,例如“ 00-01-e8-1f-35-54 ”。在网络正常时这就是网关的正确物理地址,在网络受“ ARP 欺骗”木马影响而不正常时,它就是木马所在计算机的网卡物理地址。
也可以扫描本子网内的全部 IP 地址,然后再查 ARP 表。如果有一个 IP 对应的物理地址与网关的相同,那么这个 IP 地址和物理地址就是中毒计算机的 IP 地址和网卡物理地址。
3 .设置 ARP 表避免“ ARP 欺骗”木马影响的方法
本方法可在一定程度上减轻中木马的其它计算机对本机的影响。用上边介绍的方法确定正确的网关 IP 地址和网关物理地址,然后在 “命令提示符”窗口中输入并执行以下命令:
arp –s 网关 IP 网关物理地址
4.静态ARP绑定网关
步骤一:
在能正常上网时,进入MS-DOS窗口,输入命令:arp -a,查看网关的IP对应的正确MAC地址, 并将其记录下来。
注意:如果已经不能上网,则先运行一次命令arp -d将arp缓存中的内容删空,计算机可暂时恢复上网(攻击如果不停止的话)。一旦能上网就立即将网络断掉(禁用网卡或拔掉网线),再运行arp -a。
步骤二:
如果计算机已经有网关的正确MAC地址,在不能上网只需手工将网关IP和正确的MAC地址绑定,即可确保计算机不再被欺骗攻击。
要想手工绑定,可在MS-DOS窗口下运行以下命令:
arp -s 网关IP 网关MAC
例如:假设计算机所处网段的网关为192.168.1.1,本机地址为192.168.1.5,在计算机上运行arp -a后输出如下:
Cocuments and Settings>arp -a
Interface:192.168.1.5 --- 0x2
Internet Address Physical Address Type
192.168.1.1 00-01-02-03-04-05 dynamic
其中,00-01-02-03-04-05就是网关192.168.1.1对应的MAC地址,类型是动态(dynamic)的,因此是可被改变的。
被攻击后,再用该命令查看,就会发现该MAC已经被替换成攻击机器的MAC。如果希望能找出攻击机器,彻底根除攻击,可以在此时将该MAC记录下来,为以后查找该攻击的机器做准备。
手工绑定的命令为:
arp -s 192.168.1.1 00-01-02-03-04-05
绑定完,可再用arp -a查看arp缓存:
Cocuments and Settings>arp -a
Interface: 192.168.1.5 --- 0x2
Internet Address Physical Address Type
192.168.1.1 00-01-02-03-04-05 static
这时,类型变为静态(static),就不会再受攻击影响了。
但是,需要说明的是,手工绑定在计算机关机重启后就会失效,需要再次重新绑定。所以,要彻底根除攻击,只有找出网段内被病毒感染的计算机,把病毒杀掉,才算是真正解决问题。
5 .作批处理文件
在客户端做对网关的arp绑定,具体操作步骤如下:
步骤一:
查找本网段的网关地址,比如192.168.1.1,以下以此网关为例。在正常上网时,“开始→运行→cmd→确定”,输入:arp -a,点回车,查看网关对应的Physical Address。
比如:网关192.168.1.1 对应00-01-02-03-04-05。
步骤二:
编写一个批处理文件rarp.bat,内容如下:
@echo off
arp -d
arp -s 192.168.1.1 00-01-02-03-04-05
保存为:rarp.bat。
步骤三:
运行批处理文件将这个批处理文件拖到“Windows→开始→程序→启动”中,如果需要立即生效,请运行此文件。
注意:以上配置需要在网络正常时进行
6.使用安全工具软件
及时下载Anti ARP Sniffer软件保护本地计算机正常运行。具体使用方法可以在网上搜索。
如果已有病毒计算机的MAC地址,可使用NBTSCAN等软件找出网段内与该MAC地址对应的IP,即感染病毒的计算机的IP地址,然后报告单位的网络中心对其进行查封。
或者利用单位提供的集中网络防病毒系统来统一查杀木马。另外还可以利用木马杀客等安全工具进行查杀。
