局域网遭遇ARP欺骗攻击的解决方法

 更新时间:2007年05月26日 00:00:00   作者:  
该病毒发作时症状表现为: 
1)计算机网络连接正常,但无法上网或者时通时断,经常掉线;
2)用户私密信息(如QQ、网游等帐号)被窃取;
3)局域网内出现网络拥塞,甚至造成一些网络设备当机;
基本概念: 

为了能够说明问题,有必要先来介绍一些基本概念,知者略过。
首先来说IP地址,大家应该都很熟悉了,我们知道,IP地址是一段32位(二进制)的无符号整数,例如:192.168.110.1,其最基本的作用就是在(IP)网络中唯一标识一台特定的主机。在Internet上,我们正是凭借IP地址来定位其他主机或者设备并进行相互通讯的。需要注意的是,IP协议位于OSI参考模型的第三层,即网络层,我们通常所说的路由器就工作在这一层。
然后来说MAC地址,也称物理地址,通常由网络设备制造商向 IEEE申请获得,并将其烧入设备(比如网卡)的EPROM芯片中,这是一段48位的无符号整数(二进制),正常情况下是全球唯一的,例如:00-E0- FC-28-AF-36,(注:在2000/XP中,通过点击“开始”,选择“运行”,输入“cmd”调出命令提示符,然后再输入“ipconfig /all”回车,就可以查看自己的MAC地址了)。需要注意的是,MAC的实现是在OSI参考模型的第二层,即数据链路层,传统的(二层)交换机就工作在这一层。
在以太网(Ethernet)中,一个主机要和另一个主机进行直接通信,除了要知道目标主机的IP地址外,还必须要知道目标主机的MAC地址。因为在网络底层的传输过程中,正是通过物理地址来识别主机或者设备的。因此,必须把目的IP地址转换成目的MAC地址,才能保证通信的顺利进行。
那么目标MAC地址是如何获得的呢?这就要通过ARP来实现了,“ARP”全称是“Address Resolution Protocol”,即“地址解析协议”。具体来说,ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址。
ARP协议的工作原理  

在每台安装有TCP/IP协议的电脑里,都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的。(注:从Windows 98起,正确安装网络适配器后,系统会自动为其安装TCP/IP协议)
1. 正常启动计算机后,每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系(注:通过命令arp –a可以看到当前列表信息)。
2. 当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。
3. 网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中;如果ARP表中已经存在该IP的信息,则将其覆盖;随后,目的主机会给源主机发送一个ARP响应数据包,附上自己的MAC地址,告诉对方自己是它正在查找的主机。
4. 当源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息封装数据帧,开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
ARP欺骗的原理: 

外因:一般是由传奇外挂等程序,携带和传播该病毒进入企业内网;
内因:在企业局域网内,一般都是采用通过网关来实现上网的方式;所谓的ARP欺骗又大致分两种:一种是对网关进行欺骗——原理是通知网关一系列错误的内网MAC地址,并按一定频率使网关不断的进行学习和更新,从而导致真实的地址信息无法保存在网关的ARP列表中。结果网关就会把所有的数据发送给错误的并不存在的地址去,造成正常的客户端无法收到信息,所以内网的PC就无法上网;另一种是对内网PC的欺骗——原理是通过发布假的ARP信息伪造网关,误导其他的PC向假网关发送数据,而不是通过正常的路由进行外网访问的,造成在同一网关的所有PC都无法访问外网。目前好像这种情况更多一些。
如何防范和应对: 

一、关于防范务必落到实处。
1.增强安全意识,不要浏览一些缺乏可信度的网站;
2.不要轻易下载和安装盗版的、不可信任的软件或者程序;
3.不要随便打开不明来历的电子邮件,尤其是邮件附件;
4.不要随便点击打开QQ、MSN等聊天工具上发来的链接信息;
5.不要随便共享文件,如果确实需要最好设置权限,指定访问,建议不可写入;
6.及时修补系统漏洞(比如,打上ARP补丁KB842168等等); 

7.修复不安全的设置(比如,为系统设置强密码,即长度不少于七位,使用大写字母、
小写字母、阿拉伯数字和特殊符号三种以上的组合);
8.关闭不必要的系统服务;
9.安装正版的杀毒软件网络版,经常更新病毒库
二、临时处理对策:    

步骤一. 在能上网时,进入MS-DOS窗口,输入命令:arp –a 查看网关IP对应的正确MAC地址,将其记录下来。 注:如果已经不能上网,则先运行一次命令arp –d将arp缓存中的内容删空,计算机可暂时恢复上网(攻击如果不停止的话),一旦能上网就立即将网络断掉(禁用网卡或拔掉网线),再运行arp –a。 

步骤二. 如果已经有网关的正确MAC地址,在不能上网时,手工将网关IP和正确MAC绑定,可确保计算机不再被攻击影响。 

手工绑定可在MS-DOS窗口下运行以下命令: arp –s 、网关IP、 网关MAC。 例如:假设计算机所处网段的网关为218.197.192.254,本机地址为218.197.192.1在计算机上运行arp –a后输出如下: C:\Documents and Settings>arp -a Interface: 218.197.192.1 --- 0x2 Internet Address Physical Address Type 218.197.192.254 00-01-02-03-04-05 dynamic 其中00-01-02-03-04-05就是网关218.197.192.254对应的MAC地址类型是动态(dynamic)的,因此是可被改变。被攻击后,再用该命令查看,就会发现该MAC已经被替换成攻击机器的MAC,如果大家希望能找出攻击机器,彻底根除攻击,可以在此时将该MAC记录下来,为以后查找做准备。 手工绑定的命令为: arp –s 218.197.192.254 00-01-02-03-04-05 绑定完,可再用arp –a查看arp缓存, C:\Documents and Settings>arp -a Interface: 218.197.192.1 --- 0x2 Internet Address Physical Address Type 218.197.192.254 00-01-02-03-04-05 static 这时,类型变为静态(static),就不会再受攻击影响了。 

但是,需要说明的是,手工绑定在计算机关机重开机后就会失效,需要再绑定。所以,要彻底根除攻击,只有找出网段内被病毒感染的计算机,令其杀毒或从做系统方可解决。 

找出病毒计算机的方法: 

如果已有病毒计算机的MAC地址,可使用NBTSCAN或Anti ARP Sniffer软件找出网段内与该MAC地址对应的IP,即病毒计算机的IP地址,然后可报告校网络中心对其进行查封。 NBTSCAN的使用方法:下载nbtscan.rar到硬盘后解压,然后将cygwin1.dll和nbtscan.exe两文件拷贝到c:\windows\system32(或system)下,进入MSDOS窗口就可以输入命令: nbtscan -r 218.197.192.0/24 (假设本机所处的网段是218.197.192,掩码是255.255.255.0;实际使用该命令时,应将斜体字部分改为正确的网段) 。 注:使用nbtscan时,有时因为有些计算机安装防火墙软件,nbtscan的输出不全,但在计算机的arp缓存中却能有所反应,所以使用nbtscan时,还可同时查看arp缓存,就能得到比较完全的网段内计算机IP与MAC的对应关系。 

Anti ARP Sniffer 使用说明 

一、功能说明: 使用Anti ARP Sniffer可以防止利用ARP技术进行数据包截取以及防止利用ARP技术发送地址冲突数据包。 

二、使用说明: 

 1、ARP欺骗: 填入网关IP地址,点击[获取网关mac地址]将会显示出网关的MAC地址。点击[自动防护]即可保护当前网卡与该网关的通信不会被第三方监听。 注意:如出现ARP欺骗提示,这说明攻击者发送了ARP欺骗数据包来获取网卡的数据包,如果您想追踪攻击来源请记住攻击者的MAC地址,利用MAC地址扫描器可以找出IP 对应的MAC地址。 

2、IP地址冲突 首先点击“恢复默认”然后点击“防护地址冲突”。 如频繁的出现IP地址冲突,这说明攻击者频繁发送ARP欺骗数据包,才会出现IP冲突的警告,利用Anti ARP Sniffer可以防止此类攻击。 首先您需要知道冲突的MAC地址,Windows会记录这些错误。查看具体方法如下: 右击[我的电脑]-->[管理]-->点击[事件查看器]-->点击[系统]-->查看来源为[TcpIP]--->双击事件可以看到显示地址发生冲突,并记录了该MAC地址,请复制该MAC地址并填入Anti ARP Sniffer的本地MAC地址输入框中(请注意将:转换为-),输入完成之后点击[防护地址冲突],为了使MAC地址生效请禁用本地网卡然后再启用网卡,在CMD命令行中输入Ipconfig /all,查看当前MAC地址是否与本地MAC地址输入框中的MAC地址相符。如果成功将不再会显示地址冲突。 注意:如果您想恢复默认MAC地址,请点击[恢复默认],为了使MAC地址生效请禁用本地网卡然后再启用网卡。

相关文章

最新评论