ARP攻击原理及解决方法

  故障原因

  局域网内有人使用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可以取到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 <server> <unknown> 00-e0-4c-4d-96-c6

  192.168.16.111 LLF <server> ADMINISTRATOR 00-22-55-66-77-88

  192.168.16.121 UTT-HIPER <server> <unknown> 00-0d-87-26-7d-78

  192.168.16.175 JC <server> <unknown> 00-07-95-e0-7c-d7

  192.168.16.223 test123 <server> 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<HiPER管理界面--端口配置--局域网端口MAC地址>)。

  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管理界面--高级配置--用户管理中将局域网每台主机均作绑定。

时间: 2024-08-30 11:45:54

ARP攻击原理及解决方法的相关文章

arp病毒原理及解决方法

ARP病毒入侵网络,使大多网吧及家庭都陷入苦难!!中招现象:掉线!在这里我在网上到的相关资料,网络高手的研究一下~~ 解决ARP攻击的方法 [故障原因] 局域网内有人使用ARP欺骗的木马程序(比如:传奇盗号的软件,某些传奇外挂中也被恶意加载了此程序). [故障原理] 要了解故障原理,我们先来了解一下ARP协议. 在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)的.ARP协议对网络安全具有重要的意义.通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的AR

Windows系统防ARP攻击的几种方法总结

防止ARP攻击方法一 设置权限文件方法 一.常规方式: 开始--运行,输入"regedit",回车,通过"注册表--查找",输入"AntiARP",一个一个删除"AntiARP"注册表信息. 二.非常规方式(通过"安全模式"进入系统,关闭网络连接,拔掉网线): 根据ARP攻击原理:删除调用系统里的npptools.dll文件.如果你把这个DLL文件删除了,之后随便弄个DLL改名为npptools.dll即可

ARP攻击原理简析及防御措施

0x1  简介 网络欺骗攻击作为一种非常专业化的攻击手段,给网络安全管理者,带来严峻的考验.网络安全的战场已经从互联网蔓延到用户内部的网络,特别是局域网.目前利用ARP欺骗的木马病毒在局域网中广泛传播,导致网络随机掉线甚至整体瘫痪,通讯被窃听,信息被篡改等严重后果. 0x2  ARP协议概述 ARP协议(address resolution protocol)地址解析协议 一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址,所以用ARP解析协议将I

10种对于分布式拒绝服务攻击的应急解决方法 《转》

10种对于分布式拒绝服务攻击的应急解决方法来源:NCOD全球华人信息安全及黑客技术交流同盟 http://www.ncod.net翻译:广州寒路 8/28/2000     网络中的安全弱点层出不穷,它们往往被黑客们通过开发成工具(拒绝服务攻击)用来危急我们的主机系统,不停的应付这些安全问题是一件非常复杂并耗力的工作.在很长的一段时间里,几乎没有什么简单易行的方法来较好的防止这些攻击,人们只好靠加强事先的防范以及更严密的安全措施来加固系统.这篇文章很适用于那些经常为自己的网站担忧却又没有什么更好

DDoS的攻击原理与防御方法

DoS攻击.DDoS攻击和DRDoS攻击相信大家已经早有耳闻了吧!DoS是Denial of Service的简写就是拒绝服务,而DDoS就是Distributed Denial of Service的简写就是分布式拒绝服务,而DRDoS就是Distributed Reflection Denial of Service的简写,这是分布反射式拒绝服务的意思. 不过这3中攻击方法最厉害的还是DDoS,那个DRDoS攻击虽然是新近出的一种攻击方法,但它只是DDoS攻击的变形,它的唯一不同就是不用占领

图解接入层交换机防ARP攻击原理

交换机要防御ARP攻击,就必须能够识别并读取ARP报文内容, 然后根据报文内容判断是否存在欺骗攻击行为,对于ARP欺骗报文进行丢弃处理.在接入层就是利用接入交换机的ARP入侵检测(ARP Intrusion Inspection)功能,进行ARP欺骗攻击防御. 498)this.w idth=498;' onmousewheel = 'javascript:return big(this)' height=256 alt="" src="/files/uploadimg/20

node.js版本管理工具n无效的原理和解决方法_node.js

简介 n 是 node 的一个模块,可以用它来管理 node 的各种版本.类似 Python 中的 pyenv 和 Ruby 的 rbenv.n 的作者是著名的TJ大神. 通过 npm 安装 n: $ npm install -g n 查看当前 node 版本: $ node -v v4.2.4 通过 n 安装指定版本: $ n 4.4.4 install : node-v4.4.4 mkdir : /opt/node/n/versions/node/4.4.4 fetch : https://

ASP的chr(0)文件上传漏洞原理和解决方法介绍_应用技巧

我们在用ASP开发文件上传功能的时候,为了防止用户上传木马程序,常常会限制一些文件的上传,常用的方法是判断一下上传文件的扩展名是否符合规定,可以用right字符串函数取出上传文件的文件名的后四位,这样很容易就能判断了,但是这里面有一个漏洞,非常危险,就是chr(0)漏洞,详情请接着往下看. 一.首先解释下什么是chr(0)? 在ASP中可以用chr()函数调用ASCII码,其中chr(0)表示调用的是一个结束字符,简单的说当一个字符串中包含chr(0)字符时,只能输出chr(0)前面的字符,ch

ASP的chr(0)文件上传漏洞原理和解决方法介绍

我们在用ASP开发文件上传功能的时候,为了防止用户上传木马程序,常常会限制一些文件的上传,常用的方法是判断一下上传文件的扩展名是否符合规定,可以用right字符串函数取出上传文件的文件名的后四位,这样很容易就能判断了,但是这里面有一个漏洞,非常危险,就是chr(0)漏洞,详情请接着往下看. 一.首先解释下什么是chr(0)? 在ASP中可以用chr()函数调用ASCII码,其中chr(0)表示调用的是一个结束字符,简单的说当一个字符串中包含chr(0)字符时,只能输出chr(0)前面的字符,ch