知识库与软件

解决ARP攻击的方法

文档编号:100
浏览:30195 评分:387
最后更新于:2008-08-15

【故障原因】

局域网内有人使用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以后的路由器软件版本中才有此提示):
ARP SPOOF 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(下载地址:http://www.utt.com.cn/upload/nbtscan.rar)工具来快速查找它。
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 200.200.200.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
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地址即可
如果是ReOS 6.0以后用户可以直接从 WEBUI--高级配置—IP/MAC绑定页面下载“导出ARP绑定脚本文件”(如下图所示)即可替代上述批处理文件“rarp.bat”。
将这个批处理软件拖到“windows--开始--程序--启动”中。
3)如果是网吧,可以利用收费软件服务端程序(pubwin或者万象都可以)发送批处理文件rarp.bat到所有客户机的启动目录。Windows2000的默认启动目录为“C:\Documents and Settings\All Users「开始」菜单程序启动”。
2、在路由器上绑定用户主机的IP和MAC地址(440以后的路由器软件版本支持):
在WEBUI--高级配置—IP/MAC绑定 中将局域网每台主机均作绑定。
【HiPER用户的解决方案二】
对于上面一种处理方式,是解决ARP攻击的最优方法。但是在用户的实际使用中可能会遇到以下问题:
1、 某些Windows 2000的版本,在做了对路由器的ARP绑定之后,仍然会受到ARP欺骗的影响;
2、 某些网吧遇到诸如安装了还原系统以及技术人员本身的问题,无法操作主机对路由器的ARP绑定。
针对以上问题,在HiPER的ReOS 525以及ReOS 560以上版本(新版本可以在UTT网站下载中心http://www.utt.com.cn/downloadcenter.php下载)做了改进,在这些版本里面只需要做到“广播+单绑”操作即可有效防御常见ARP欺骗:
1、 打开路由器LAN口ARP KEEPALIVE功能,这样路由器就会以10次/秒的速度向内网广播自己的ARP信息,如果ARP攻击软件发送的ARP欺骗包的速度比路由器发送的慢的话,那么主机就不会受到ARP攻击的影响。
HiPER路由器该功能启用位置 WEB页面—安全配置—ARP欺骗防御:
注意:
1)此功能在ReOS 525版本和ReOS6.0以上版本中是默认打开的,在ReOS 560版本需要在命令行下手动打开,命令是:
set interface ethernet/1 ip arpkeepalive 1
write
关闭此功能:
set interface ethernet/1 ip arpkeepalive
write
登录HiPER命令行的方法可以参考:
2)启用此功能后,在HiPER的WebUI—>系统状态—>端口统计中可以看到LAN/Out方向的广播包增大,此为路由器向内网广播ARP数据包的正常现象。
2、 在路由器上绑定用户主机的IP和MAC地址:
在HiPER管理界面--高级配置—IP/MAC绑定 中将局域网每台主机均作绑定。
 
【HiPER用户的解决方案三】
DHCP自动绑定与ARP广播相结合:
对于企业或酒店等内网主机IP/MAC不固定,自动获取ip地址占大比重的情况,HiPER提供定时扫描并自动将DHCP分配的ip地址与当前的mac地址绑定,客户端DHCP租期到期未成功续租的将自动删除。
同时再加上HiPER按照一定频率发送申明自己IP和MAC地址的广播包,告知内网每台主机正确的网关ARP 信息。
1、进入隐藏界面:http://192.168.16.1/TaskScheduler.asp,建立计划任务,如下图所示,保存后HiPER将定期扫描网络并自动绑定及解绑。
2、通过路由器网关发送一定频率的广播包,告知每台客户正确的网关地址。
缺点:一旦ARP病毒发包的频率高于网关的发送频率,该防御失效。
HiPER路由器该功能启用位置(WEB页面—安全配置—ARP欺骗防御):
 
 
 
 
【HiPER用户的解决方案四】
利用PPPoE server完美解决ARP欺骗:
为了最终的解决ARP欺骗,艾泰科技推荐大家使用PPPoE Server方式上网,PPPoE不使用ARP协议,也就不会产生ARP,而且PPPOE不会改变原来的局域网拓扑结构,它是PPP在以太网上的二次封装。并且通过HiPER建立的PPPoE Server帐号在任何情况下都可以限制给若干个用户使用,既可内网全部机器使用一个账号上网也可通过MAC绑定使每个账号只允许一个或几个PC拨号上网。
HiPER PPPoE Server端配置步骤:
1、进入WEBUI-高级配置-PPPoE服务器配置页面
选择启用PPPoE服务器,并设置主DNS服务器地址
                                          
 
2、配置客户端的帐号、密码:
                               
 
3、通过“PPPoE用户状态信息列表”,可以查看各帐号的使用信息,如果有用户使用已配置的用户名连接到PPPoE服务器,我们可以在列表中看到PPPoE服务器为该用户分配的IP地址、该用户的MAC地址、PPPoE连接的在线时间、该用户是否进行了个性化配置等信息。
     
 
 
4、实现PPPoE用户信息配置:
 提示:只有在高级配置—>PPPoE服务器的“PPPoE用户状态信息列表”中,单击某条PPPoE会话的“IP地址”或“个性化配置”超链接,才可进入本页面进行个性化配置。在本页面可以查看和修改PPPoE用户的个性化配置信息。
 
5、建立PC端的“拨号连接”。
6、实现开机自动上网:
      桌面上新建一个“adsl.txt”的文本文件,按照以下格式进行编辑:
“RasDial 连接名称用户名 密码”
           将该“adsl.txt”的文本文件后缀名称改为批处理格式“adsl.bat”
把批处理“adsl.bat”拖放到“开始->程序->启动”选项,重新开机后我们就轻易实现了开机自动拨号上网。
从此,使用HiPER的朋友们就再也不用进行繁琐的双向绑定,让客户机使用PPPoE拨号访问各种网络资源,完美的解决了ARP欺骗的问题,按照上图配置好后,就让我们永远告别ARP欺骗吧。

 

   2024 ©上海艾泰科技有限公司 版权所有 沪ICP备05037453号-1

   

      沪公网安备 31011702003579号