知识屋:更实用的电脑技术知识网站
所在位置:首页 > 网络安全 > 安全资讯

ARP攻击原理及解决方法

发布时间:2012-10-06 21:01:58作者:知识屋

木马程序对游戏玩家也是痛心的伤,下面是信息之舟电脑之家为您推荐的解决方案:
【故障原因】 
局域网内有人使用ARP欺骗的木马程序(比如:传奇盗号的软件,某些传奇外挂中也被恶意加载了此程序)。 
【故障原理】 
要了解故障原理,我们先来了解一下ARP协议。 
在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的。ARP协议对网络安全具有重要的意义。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。 
ARP 协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个 主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发 送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。 
每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的,如下表所示。 
主机 IP地址 MAC地址 
A 192.168.16.1 aa-aa-aa-aa-aa-aa 
B 192.168.16.2 bb-bb-bb-bb-bb-bb 
C 192.168.16.3 cc-cc-cc-cc-cc-cc 
D 192.168.16.4 dd-dd-dd-dd-dd-dd 

我们以主机A(192.168.16.1)向主机B(192.168.16.2)发送数据为例。当发送数据时,主机A会在自己的ARP缓存 表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到相对应 的IP地址,主机A就会在网络上发送一个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机发出这样的询 问:“192.168.16.2的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回 应:“192.168.16.2的MAC地址是bb-bb-bb-bb-bb-bb”。这样,主机A就知道了主机B的MAC地址,它就可以向主机B发送信 息了。同时它还更新了自己的ARP缓存表,下次再向主机B发送信息时,直接从ARP缓存表里查找就可以了。ARP缓存表采用了老化机制,在一段时间内如果 表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。 
从上面可以看出,ARP协议的基础就是信任局域网内所 有的人,那么就很容易实现在以太网上的ARP欺骗。对目标A进行欺骗,A去Ping主机C却发送到了DD-DD-DD-DD-DD-DD这个地址上。如果 进行欺骗的时候,把C的MAC地址骗为DD-DD-DD-DD-DD-DD,于是A发送到C上的数据包都变成发送给D的了。这不正好是D能够接收到A发送 的数据包了么,嗅探成功。 
A对这个变化一点都没有意识到,但是接下来的事情就让A产生了怀疑。因为A和C连接不上了。D对接收到A发送给C的数据包可没有转交给C。 
做“man in the middle”,进行ARP重定向。打开D的IP转发功能,A发送过来的数据包,转发给C,好比一个路由器一样。不过,假如D发送ICMP重定向的话就中断了整个计划。 
D 直接进行整个包的修改转发,捕获到A发送给C的数据包,全部进行修改后再转发给C,而C接收到的数据包完全认为是从A发送来的。不过,C发送的数据包又直 接传递给A,倘若再次进行对C的ARP欺骗。现在D就完全成为A与C的中间桥梁了,对于A和C之间的通讯就可以了如指掌了。 
【故障现象】 
当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。 
切换到病毒主机上网后,如果用户已经登陆了传奇服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录传奇服务器,这样病毒主机就可以盗号了。 
由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。当ARP欺骗的木马程序停止运行时,用户会恢复从路由器上网,切换过程中用户会再断一次线。 
【HiPER用户快速发现ARP欺骗木马】 
在路由器的“系统历史记录”中看到大量如下的信息(440以后的路由器软件版本中才有此提示): 
MAC Chged 10.128.103.124 
MAC Old 00:01:6c:36:d1:7f 
MAC New 00:05:5d:60:c7:18 
这个消息代表了用户的MAC地址发生了变化,在ARP欺骗木马开始运行的时候,局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的MAC New地址都一致为病毒主机的MAC地址),同时在路由器的“用户统计”中看到所有用户的MAC地址信息都一样。 
如果是在路由器的“系统历史记录”中看到大量MAC Old地址都一致,则说明局域网内曾经出现过ARP欺骗(ARP欺骗的木马程序停止运行时,主机在路由器上恢复其真实的MAC地址)。 
【在局域网内查找病毒主机】 
在上面我们已经知道了使用ARP欺骗木马的主机的MAC地址,那么我们就可以使用NBTSCAN(最新nbtscan下载地址:http://www.xdowns.com/soft/1/44/2012/Soft_96516.html ,点击 Download NBTscan binaries for Win32 )工具来快速查找它。 
NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”传奇木马”在做怪,可以找到装有木马的PC的IP/和MAC地址。 
命令:“nbtscan -r 192.168.16.0/24”(搜索整个192.168.16.0/24网段, 即 
192.168.16.1-192.168.16.254); 或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137 网段,即192.168.16.25-192.168.16.137。输出结果第一列是IP地址,最后一列是MAC地址。 
NBTSCAN的使用范例: 
假设查找一台MAC地址为“000d870d585f”的病毒主机。 
1)将压缩包中的nbtscan.exe 和cygwin1.dll解压缩放到c:/下。 
2)在Windows开始—运行—打开,输入cmd(windows98输入“command”),在出现的DOS窗口中输入:C:/nbtscan -r 192.168.16.1/24(这里需要根据用户实际网段输入),回车。 
C:/Documents and Settings/ALAN>C:/nbtscan -r 192.168.16.1/24 
Warning: -r option not supported under Windows. Running without it. 
Doing NBT name scan for addresses from 192.168.16.1/24 
IP address NetBIOS Name Server User MAC address 
------------------------------------------------------------------------------ 
192.168.16.0 Sendto failed: Cannot assign requested address 
192.168.16.50 SERVER 00-e0-4c-4d-96-c6 
192.168.16.111 LLF ADMINISTRATOR 00-22-55-66-77-88 
192.168.16.121 UTT-HIPER 00-0d-87-26-7d-78  xdowns.com
192.168.16.175 JC 00-07-95-e0-7c-d7 
192.168.16.223 test123 test123 00-0d-87-0d-58-5f 
3)通过查询IP--MAC对应表,查出“000d870d585f”的病毒主机的IP地址为“192.168.16.223”。 
【解决思路】 
1、不要把你的网络安全信任关系建立在IP基础上或MAC基础上,(rarp同样存在欺骗的问题),理想的关系应该建立在IP+MAC基础上。 
2、设置静态的MAC-->IP对应表,不要让主机刷新你设定好的转换表。 
3、除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。 
4、使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。 
5、使用"proxy"代理IP的传输。 
6、使用硬件屏蔽主机。设置好你的路由,确保IP地址能到达合法的路径。(静态配置路由ARP条目),注意,使用交换集线器和网桥无法阻止ARP欺骗。 
7、管理员定期用响应的IP包中获得一个rarp请求,然后检查ARP响应的真实性。 
8、管理员定期轮询,检查主机上的ARP缓存。 
9、使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。 
【HiPER用户的解决方案】 
建议用户采用双向绑定的方法解决并且防止ARP欺骗。 
1、在PC上绑定路由器的IP和MAC地址: 
1)首先,获得路由器的内网的MAC地址(例如HiPER网关地址192.168.16.254的MAC地址为0022aa0022aa)。 
2)编写一个批处理文件rarp.bat内容如下: 
@echo off 
arp -d 
arp -s 192.168.16.254 00-22-aa-00-22-aa 
将文件中的网关IP地址和MAC地址更改为您自己的网关IP地址和MAC地址即可。 
将这个批处理软件拖到“windows--开始--程序--启动”中。 
3) 如果是网吧,可以利用收费软件服务端程序(pubwin或者万象都可以)发送批处理文件rarp.bat到所有客户机的启动目录。Windows2000 的默认启动目录为“C:/Documents and Settings/All Users「开始」菜单程序启动”。 
2、在路由器上绑定用户主机的IP和MAC地址(440以后的路由器软件版本支持): 
在HiPER管理界面--高级配置--用户管理中将局域网每台主机均作绑定。

NBTSCAN的使用方法: 
下载nbtscan.rar到硬盘后解压,然后将cygwin1.dll和nbtscan.exe两文件拷贝到c:windowssystem32(或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地址生效请禁用本地网卡然后再启用网卡。

有关ARP病毒问题的处理说明: 
故障现象:机器以前可正常上网的,突然出现可认证,不能上网的现象(无法ping通网关),重启机器或在MSDOS窗口下运行命令ARP -d后,又可恢复上网一段时间。 
故障原因:这是APR病毒欺骗攻击造成的。 
引起问题的原因一般是由传奇外挂携带的ARP木马攻击。当在局域网内使用上述外挂时,外挂携带的病毒 会将该机器的MAC地址映射到网关的IP地址上,向局域网内大量发送ARP包,从而致使同一网段地址内的其它机器误将其作为网关,这就是为什么掉线时内网 是互通的,计算机却不能上网的原因。 
临时处理对策: 
步骤一. 在能上网时,进入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软件找出网段内与该MAC地址对应的IP,即病毒计算机的IP地址,然后可报告校网络中心对其进行查封。 
解决措施 
NBTSCAN的使用方法: 
下载nbtscan.rar到硬盘后解压,然后将cygwin1.dll和nbtscan.exe两文件拷贝到c:windowssystem32(或system)下,进入MSDOS窗口就可以输入命令: 
nbtscan -r 218.197.192.0/24 (假设本机所处的网段是218.197.192,掩码是255.255.255.0;实际使用该命令时,应将斜体字部分改为正确的网段) 。 
注:使用nbtscan时,有时因为有些计算机安装防火墙软件,nbtscan的输出不全,但在计算机的arp缓存中却能有所反应,所以使用nbtscan时,还可同时查看arp缓存,就能得到比较完全的网段内计算机IP与MAC的对应关系。

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜