ARP攻击与防护完全手册.doc
您的位置: 360安全中心 >什么是ARP攻击?ARP定义ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的底层协议,负责将某个IP地址解析成对应的MAC地址。遭受ARP攻击后现象ARP欺骗木马的中毒现象表现为:使用局域网时会突然掉线,过一段时间后又会恢复正常。比如客户端状态频频变红,用户频繁断网,IE浏览器频繁出错,以及一些常用软件出现故障等。如果局域网中是通过身份认证上网的,会突然出现可认证,但不能上网的现象(无法ping通网关),重启机器或在MS-DOS窗口下运行命令arp -d后,又可恢复上网。ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马发作时除了会导致同一局域网内的其他用户上网出现时断时续的现象外,还会窃取用户密码。如盗取QQ密码、盗取各种网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法交易活动等,这是木马的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。ARP攻击原理ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。ARP攻击主要是存在于局域网网络中,局域网中若有一个人感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。手动杀ARP: 1 删除SYSTEM32LOADHW.EXE 2 删除 System32driversnpf.sys a. 在设备管理器中, 单击”查看”->”显示隐藏的设备” b. 在设备树结构中,打开”非即插即用.” c. 找到” NetGroup Packet Filter Driver” ,若没找到,请先刷新设备列表 d. 右键点击” NetGroup Packet Filter Driver” 菜单,并选择”卸载”. e. 重启windows系统, f.删除System32driversnpf.sys 3 删除 System32msitinit.dll 4. 删除以下注册表服务项: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNpf 5.ARP防护,绑定ARP攻击与防护完全手册转贴:关键字: ARP ARP病毒 ARP攻击 ARP防护 ARP故障 网络分析 科来网络分析系统 最近在论坛上经常看到关于ARP病毒的问题,于是在Google上搜索ARP关键字,啊哦!结果出来N多关于这类问题的讨论。呵呵,俺的求知欲很强:),想再学习ARP下相关知识,所以对目前网络中常见的ARP问题进行了一个总结。现在将其贴出来,希望和大家一起讨论! 1. ARP概念 咱们谈ARP之前,还是先要知道ARP的概念和工作原理,理解了原理知识,才能更好去面对和分析处理问题。 1.1 ARP概念知识 ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。 IP数据包常通过以太网发送,以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为的硬件地址(MAC地址),以保证通信的顺利进行。 1.2 ARP工作原理 首先,每台主机都会在自己的ARP缓冲区中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,如果有就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址;源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。 例如: A的地址为:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA B的地址为:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB 根据上面的所讲的原理,我们简单说明这个过程:A要和B通讯,A就需要知道B的以太网地址,于是A发送一个ARP请求广播(谁是192.168.10.2 ,请告诉192.168.10.1),当B收到该广播,就检查自己,结果发现和自己的一致,然后就向A发送一个ARP单播应答(192.168.10.2 在BB-BB-BB-BB-BB-BB)。 1.3 ARP通讯模式 通讯模式(Pattern Analysis):在网络分析中,通讯模式的分析是很重要的,不同的协议和不同的应用都会有不同的通讯模式。更有些时候,相同的协议在不同的企业应用中也会出现不同的通讯模式。ARP在正常情况下的通讯模式应该是:请求 -> 应答 -> 请求 -> 应答,也就是应该一问一答。 2. 常见ARP攻击类型 个人认为常见的ARP攻击为两种类型:ARP扫描和ARP欺骗。 2.1 ARP扫描(ARP请求风暴) 通讯模式(可能): 请求 -> 请求 -> 请求 -> 请求 -> 请求 -> 请求 -> 应答 -> 请求 -> 请求 -> 请求. 描述: 网络中出现大量ARP请求广播包,几乎都是对网段内的所有主机进行扫描。大量的ARP请求广播可能会占用网络带宽资源;ARP扫描一般为ARP攻击的前奏。 出现原因(可能): *病毒程序,侦听程序,扫描程序。 *如果网络分析软件部署正确,可能是我们只镜像了交换机上的部分端口,所以大量ARP请求是来自与非镜像口连接的其它主机发出的。 *如果部署不正确,这些ARP请求广播包是来自和交换机相连的其它主机。 2.2 ARP欺骗 ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。所以在网络中,有人发送一个自己伪造的ARP应答,网络可能就会出现问题。这可能就是协议设计者当初没考虑到的! 2.2.1 欺骗原理 假设一个网络环境中,网内有三台主机,分别为主机A、B、C。主机详细信息如下描述: A的地址为:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA B的地址为:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB C的地址为:IP:192.168.10.3 MAC: CC-CC-CC-CC-CC-CC 正常情况下A和C之间进行通讯,但是此时B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A被欺骗了),这时B就伪装成C了。同时,B同样向C发送一个ARP应答,应答包中发送方IP地址四192.168.10.1(A的IP地址),MAC地址是BB-BB-BB-BB-BB-BB(A的MAC地址本来应该是AA-AA-AA-AA-AA-AA),当C收到B伪造的ARP应答,也会更新本地ARP缓存(C也被欺骗了),这时B就伪装成了A。这样主机A和C都被主机B欺骗,A和C之间通讯的数据都经过了B。主机B完全可以知道他们之间说的什么:)。这就是典型的ARP欺骗过程。 注意:一般情况下,ARP欺骗的某一方应该是网关。 2.2.2 两种情况 ARP欺骗存在两种情况:一种是欺骗主机作为“中间人”,被欺骗主机的数据都经过它中转一次,这样欺骗主机可以窃取到被它欺骗的主机之间的通讯数据;另一种让被欺骗主机直接断网。 第一种:窃取数据(嗅探) 通讯模式: 应答 -> 应答 -> 应答 -> 应答 -> 应答 -> 请求 -> 应答 -> 应答 ->请求->应答. 描述: 这种情况就属于我们上面所说的典型的ARP欺骗,欺骗主机向被欺骗主机发送大量伪造的ARP应答包进行欺骗,当通讯双方被欺骗成功后,自己作为了一个“中间人“的身份。此时被欺骗的主机双方还能正常通讯,只不过在通讯过程中被欺骗者“窃听”了。 出现原因(可能): *木马病毒 *嗅探 *人为欺骗 第二种:导致断网 通讯模式: 应答 -> 应答 -> 应答 -> 应答 -> 应答 -> 应答 -> 请求 描述: 这类情况就是在ARP欺骗过程中,欺骗者只欺骗了其中一方,如B欺骗了A,但是同时B没有对C进行欺骗,这样A实质上是在和B通讯,所以A就不能和C通讯了,另外一种情况还可能就是欺骗者伪造一个不存在地址进行欺骗。 对于伪造地址进行的欺骗,在排查上比较有难度,这里最好是借用TAP设备(呵呵,这个东东好像有点贵勒),分别捕获单向数据流进行分析! 出现原因(可能): * 木马病毒 *人为破坏 *一些网管软件的控制功能 3. 常用的防护方法 搜索网上,目前对于ARP攻击防护问题出现最多是绑定IP和MAC和使用ARP防护软件,也出现了具有ARP防护功能的路由器。呵呵,我们来了解下这三种方法。 3.1 静态绑定 最常用的方法就是做IP和MAC静态绑定,在网内把主机和网关都做IP和MAC绑定。 欺骗是通过ARP的动态实时的规则欺骗内网机器,所以我们把ARP全部设置为静态可以解决对内网PC的欺骗,同时在网关也要进行IP和MAC的静态绑定,这样双向绑定才比较保险。 方法: 对每台主机进行IP和MAC地址静态绑定。 通过命令,arp -s可以实现 “arp s IP MAC地址 ”。 例如:“arp s 192.168.10.1 AA-AA-AA-AA-AA-AA”。 如果设置成功会在PC上面通过执行 arp -a 可以看到相关的提示: Internet Address Physical Address Type 192.168.10.1 AA-AA-AA-AA-AA-AA static(静态) 一般不绑定,在动态的情况下: Internet Address Physical Address Type 192.168.10.1 AA-AA-AA-AA-AA-AA dynamic(动态) 说明:对于网络中有很多主机,500台,1000台.,如果我们这样每一台都去做静态绑定,工作量是非常大的。,这种静态绑定,在电脑每次重起后,都必须重新在绑定,虽然也可以做一个批处理文件,但是还是比较麻烦的! 3.2 使用ARP防护软件 目前关于ARP类的防护软件出的比较多了,大家使用比较常用的ARP工具主要是欣向ARP工具,Antiarp等。它们除了本身来检测出ARP攻击外,防护的工作原理是一定频率向网络广播正确的ARP信息。我们还是来简单说下这两个小工具。 3.2.1 欣向ARP工具 俺使用了该工具,它有5个功能: ? A. IP/MAC清单 选择网卡。如果是单网卡不需要设置。如果是多网卡需要设置连接内网的那块网卡。 IP/MAC扫描。这里会扫描目前网络中所有的机器的IP与MAC地址。请在内网运行正常时扫描,因为这个表格将作为对之后ARP的参照。 之后的功能都需要这个表格的支持,如果出现提示无法获取IP或MAC时,就说明这里的表格里面没有相应的数据。 ? B. ARP欺骗检测 这个功能会一直检测内网是否有PC冒充表格内的IP。你可以把主要的IP设到检测表格里面,例如,路由器,电影服务器,等需要内网机器访问的机器IP。 (补充)“ARP欺骗记录”表如何理解: “Time”:发现问题时的时间; “sender”:发送欺骗信息的IP或MAC; “Repeat”:欺诈信息发送的次数; “ARP info”:是指发送欺骗信息的具体内容.如下面例子: time sender Repeat ARP info 22:22:22 192.168.1.22 1433 192.168.1.1 is at 00:0e:03:22:02:e8 这条信息的意思是:在22:22:22的时间,检测到由192.168.1.22发出的欺骗信息,已经发送了1433次,他发送的欺骗信息的内容是:192.168.1.1的MAC地址是00:0e:03:22:02:e8。 打开检测功能,如果出现针对表内IP的欺骗,会出现提示。可以按照提示查到内网的ARP欺骗的根源。提示一句,任何机器都可以冒充其他机器发送IP与MAC,所以即使提示出某个IP或MAC在发送欺骗信息,也未必是100的准确。所有请不要以暴力解决某些问题。 ? C. 主动维护 这个功能可以直接解决ARP欺骗的掉线问题,但是并不是理想方法。他的原理就在网络内不停的广播制定的IP的正确的MAC地址。 “制定维护对象”的表格里面就是设置需要保护的IP。发包频率就是每秒发送多少个正确的包给网络内所有机器。强烈建议尽量少的广播IP,尽量少的广播频率。一般设置1次就可以,如果没有绑定IP的情况下,出现ARP欺骗,可以设置到50100次,如果还有掉线可以设置更高,即可以实现快速解决ARP欺骗的问题。但是想真正解决ARP问题,还是请参照上面绑定方法。 ? D. 欣向路由器日志 收集欣向路由器的系统日志,等功能。 ? E. 抓包 类似于网络分析软件的抓包,保存格式是.cap。 3.2.1 Antiarp 这个软件界面比较简单,以下为我收集该软件的使用方法。 A. 填入网关IP地址,点击获取网关地址将会显示出网关的MAC地址。点击自动防护即可保护当前网卡与该网关的通信不会被第三方监听。注意:如出现ARP欺骗提示,这说明攻击者发送了ARP欺骗数据包来获取网卡的数据包,如果您想追踪攻击来源请记住攻击者的MAC地址,利用MAC地址扫描器可以找出IP 对应的MAC地址. B. IP地址冲突 如频繁的出现IP地址冲突,这说明攻击者频繁发送ARP欺骗数据包,才会出现IP冲突的警告,利用Anti ARP Sniffer可以防止此类攻击。 C. 您需要知道冲突的MAC地址,Windows会记录这些错误。查看具体方法如下: 右击我的电脑-管理-点击事件查看器-点击系统-查看来源为TcpIP-双击事件可以看到显示地址发生冲突,并记录了该MAC地址,请复制该MAC地址并填入Anti ARP Sniffer的本地MAC地址输入框中(请注意将:转换为-),输入完成之后点击防护地址冲突,为了使MAC地址生效请禁用本地网卡然后再启用网卡,在CMD命令行中输入Ipconfig /all,查看当前MAC地址是否与本地MAC地址输入框中的MAC地址相符,如果更改失败请与我联系。如果成功将不再会显示地址冲突。 注意:如果您想恢复默认MAC地址,请点击恢复默认,为了使MAC地址生效请禁用本地网卡然后再启用网卡。 3.3 具有ARP防护功能的路由器 这类路由器以前听说的很少,对于这类路由器中提到的ARP防护功能,其实它的原理就是定期的发送自己正确的ARP信息。但是路由器的这种功能对于真正意义上的攻击,是不能解决的。 ARP的最常见的特征就是掉线,一般情况下不需要处理一定时间内可以回复正常上网,因为ARP欺骗是有老化时间的,过了老化时间就会自动的回复正常。现在大多数路由器都会在很短时间内不停广播自己的正确ARP信息,使受骗的主机回复正常。但是如果出现攻击性ARP欺骗(其实就是时间很短的量很大的欺骗ARP,1秒有个几百上千的),它是不断的发起ARP欺骗包来阻止内网机器上网,即使路由器不断广播正确的包也会被他大量的错误信息给淹没。 可能你会有疑问:我们也可以发送比欺骗者更多更快正确的ARP信息啊?如果攻击者每秒发送1000个ARP欺骗包,那我们就每秒发送1500个正确的ARP信息! 面对上面的疑问,我们仔细想想,如果网络拓扑很大,网络中接了很多网络设备和主机,大量的设备都去处理这些广播信息,那网络使用起来好不爽,再说了会影响到我们工作和学习。ARP广播会造成网络资源的浪费和占用。如果该网络出了问题,我们抓包分析,数据包中也会出现很多这类ARP广播包,对分析也会造成一定的影响。 呵呵,不知不觉说这么多,上面会可能会有说的不正确和不够的地方,希望大家多多讨论。防范ARP攻击策略面面观及技巧一则防范方法 1、捆绑MAC和IP地址 杜绝IP 地址盗用现象。如果是通过代理服务器上网:到代理服务器端让网络管理员把上网的静态IP 地址与所记录计算机的网卡地址进行捆绑。如: ARP-s 192.16.10.400-EO-4C-6C-08-75。这样,就将上网的静态IP 地址192.16.10.4 与网卡地址为00-EO-4C-6C-08-75 的计算机绑定在一起了,即使别人盗用您的IP 地址,也无法通过代理服务器上网。如果是通过交换机连接,可以将计算机的IP地址、网卡的MAC 地址以及交换机端口绑定。 2、修改MAC地址,欺骗ARP欺骗技术 就是假冒MAC 地址,所以最稳妥的一个办法就是修改机器的MAC 地址,只要把MAC 地址改为别的,就可以欺骗过ARP 欺骗,从而达到突破封锁的目的。 3、使用ARP服务器 使用ARP 服务器。通过该服务器查找自己的ARP 转换表来响应其他机器的ARP 广播。确保这台ARP 服务器不被攻击。 4、交换机端口设置 (1)端口保护(类似于端口隔离):ARP 欺骗技术需要交换机的两个端口直接通讯,端口设为保护端口即可简单方便地隔离用户之间信息互通,不必占用VLAN 资源。同一个交换机的两个端口之间不能进行直接通讯,需要通过转发才能相互通讯。 (2)数据过滤:如果需要对报文做更进一步的控制用户可以采用ACL(访问控制列表)。ACL 利用IP 地址、TCP/UDP 端口等对进出交换机的报文进行过滤,根据预设条件,对报文做出允许转发或阻塞的决定。华为和Cisco 的交换机均支持IP ACL 和MAC ACL,每种ACL 分别支持标准格式和扩展格式。标准格式的ACL 根据源地址和上层协议类型进行过滤,扩展格式的ACL 根据源地址、目的地址以及上层协议类型进行过滤,异词检查伪装MAC 地址的帧。 5、禁止网络接口做ARP 解析 在相对系统中禁止某个网络接口做ARP 解析(对抗ARP欺骗攻击),可以做静态ARP 协议设置(因为对方不会响应ARP 请求报义)如: ARP s XXX.XXX.XX.X 08-00-20-a8-2e-ac在很多操作系统中如:Unix , NT 等,都可以结合“禁止相应网络接口做ARP 解析”和“使用静态ARP 表”的设置来对抗ARP 欺骗攻击。而Linux 系统,其静态ARP 表项不会被动态刷新,所以不需要“禁止相应网络接口做ARP 解析”,即可对抗ARP 欺骗攻击。 6、使用硬件屏蔽主机 设置好你的路由,确保IP 地址能到达合法的路径。( 静态配置路由ARP 条目),注意,使用交换集线器和网桥无法阻止ARP 欺骗。 7、定期检查ARP缓存 管理员定期用响应的IP 包中获得一个rarp 请求, 然后检查ARP 响应的真实性。定期轮询, 检查主机上的ARP 缓存。使用防火墙连续监控网络。注意有使用SNMP 的情况下,ARP 的欺骗有可能导致陷阱包丢失。 技巧一则 址的方法个人认为是不实用的,首先, 这样做会加大网络管理员的工作量,试想,如果校园网内有3000个用户,网络管理员就必须做3000 次端口绑定MAC 地址的操作,甚至更多。其次, 网络管理员应该比较清楚的是, 由于网络构建成本的原因,接入层交换机的性能是相对较弱的, 功能也相对单一一些, 对于让接入层交换机做地址绑定的工作,对于交换机性能的影响相当大, 从而影响网络数据的传输。 建议用户采用绑定网关地址的方法解决并且防止ARP 欺骗。 1) 首先, 获得安全网关的内网的MAC 地址。( 以windowsXP 为例)点击"开始""运行", 在打开中输入cmd。点击确定后将出现相关网络状态及连接信息, 然后在其中输入ipconfig/all,然后继续输入arp - a 可以查看网关的MAC 地址。 2) 编写一个批处理文件rarp.bat( 文件名可以任意) 内容如下: echo off arp - d arp - s 192.168.200.1 00- aa- 00- 62- c6- 09 将文件中的网关IP 地址和MAC 地址更改为实际使用的网关IP 地址和MAC 地址即可。 3) 编写完以后, 点击"文件" "另存为"。注意文件名一定要是*.bat 如arp.bat 保存类型注意要选择所有类型。点击保存就可以了。最后删除之前创建的"新建文本文档"就可以。 4) 将这个批处理软件拖到"windows- - 开始- - 程序- - 启动"中, ( 一般在系统中的文件夹路径为C:Documents and SettingsAll Users开始菜单 程序 启动) 。 5) 最后重新启动一下电脑就可以。 静态ARP 表能忽略执行欺骗行为的ARP 应答, 我们采用这样的方式可以杜绝本机受到ARP 欺骗包的影响。对于解决ARP 欺骗的问题还有多种方法: 比如通过专门的防ARP 的软件, 或是通过交换机做用户的入侵检测。前者也是个针对ARP欺骗的不错的解决方案, 但是软件的设置过程并不比设置静态ARP 表简单。后者对接入层交换机要求太高, 如果交换机的性能指标不是太高, 会造成比较严重的网络延迟, 接入层交换机的性能达到了要求, 又会使网络安装的成本提高。 在应对ARP 攻击的时候,除了利用上述的各种技术手段,还应该注意不要把网络安全信任关系建立在IP 基础上或MAC 基础上,最好设置静态的MAC->IP 对应表,不要让主机刷新你设定好的转换表,除非很有必要,否则停止使用ARP,将ARP 做为永久条目保存在对应表中。杀毒大赛-ARP病毒入侵原理和解决方案 -转自IT168URL:杀毒大赛:ARP病毒入侵原理和解决方案近些天,ARP病毒入侵网络,使大多网吧及家庭都陷入苦难!中招现象:掉线在这里我在网上到的相关资料,网络高手的研究一下解决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-aaB 192.168.16.2 bb-bb-bb-bb-bb-bbC 192.168.16.3 cc-cc-cc-cc-cc-ccD 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.124MAC Old 00:01:6c:36:d1:7fMAC 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);或“nbtscan192.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: btscan -r 192.168.16.1/24(这里需要根据用户实际网段输入),回车。C:Documents and SettingsALAN>C: btscan -r 192.168.16.1/24Warning: -r option not supported under Windows. Running without it.Doing NBT name scan for addresses from 192.168.16.1/24IP address NetBIOS Name Server User MAC address-192.168.16.0 Sendto failed: Cannot assign requested address192.168.16.50 SERVER 00-e0-4c-4d-96-c6192.168.16.111 LLF ADMINISTRATOR 00-22-55-66-77-88192.168.16.121 UTT-HIPER 00-0d-87-26-7d-78192.168.16.175 JC 00-07-95-e0-7c-d7192.168.16.223 test123 test123 00-0d-87-0d-58-5f3)通过查询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局域网端口MAC地址>)。2)编写一个批处理文件rarp.bat内容如下:echo offarp -darp -s 192.168.16.254 00-22-aa-00-22-aa将文件中的网关IP地址和MAC地址更改为您自己的网关IP地址和MAC地址即可。ARP攻击应急处理攻略ARP攻击应急处理攻略 以真实案例讲解ARP攻击处理思路目录:一:ARP病毒现象与原理 (必修)二:ARP病毒行为与分析(了解)三:ARP问题主机的识别(重点)四:ARP问题主机的处理(难点)五:ARP问题防护的建议(扩展)一:ARP病毒现象与原理ARP欺骗攻击早期被我们熟识的地方主要出现在网吧,经常会导致整个网吧异常掉线。最著名的应用便是所谓的MSN监听。由于msn早期版本通讯并没有做特殊的加密,所以有人就想了一些机制在局域网内进行监听并盗取信息,ARP地址欺骗便是最早使用的攻击技术之一。原理部分请参考网络搜索以及毒霸论坛相关帖,本文不做详述:二:ARP病毒行为与分析近期在局域网中大面积爆发了一款结合ARP欺骗技术传播的“安全杀手下载者53248”病毒,在进程中注入dll监控并删除hosts文件,感染修改exe文件头部并同时进行盗号操作的病毒。以下是该病毒的简单分析:病毒写入执行挂钩:HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerShellExecuteHooks%systemroot%system32dh3oor1.dll%systemroot%system32wgdoor0.dll%systemroot%system32wddoor0.dll%systemroot%system32mydoor0.dll%systemroot%system32qhdoor0.dll%systemroot%system32fydoor0.dll