<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>温室小花.技术.博客 --纯粹的unix技术博客 &#187; 病毒预防</title>
	<atom:link href="http://www.evanjiang.net.cn/archives/category/network_security/%e7%97%85%e6%af%92%e9%a2%84%e9%98%b2/feed" rel="self" type="application/rss+xml" />
	<link>http://www.evanjiang.net.cn</link>
	<description>红颜弹指老，刹那芳华，与其天涯思君，恋恋不舍，莫若相忘于江湖！</description>
	<lastBuildDate>Sun, 05 Sep 2010 14:51:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>ARP欺骗病毒的原理及防治办法</title>
		<link>http://www.evanjiang.net.cn/archives/773.html</link>
		<comments>http://www.evanjiang.net.cn/archives/773.html#comments</comments>
		<pubDate>Sun, 08 Mar 2009 12:22:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[病毒预防]]></category>
		<category><![CDATA[ARP 欺骗病毒 原理 防治办法]]></category>

		<guid isPermaLink="false">http://www.evanjiang.net.cn/?p=773</guid>
		<description><![CDATA[<p>


 <p>1、什么是ARP协议
2、ARP欺骗原理
3、ARP欺骗病毒
4、ARP欺骗的检测与控制办法
5、防范ARP欺骗的常用工具
6、ARP欺骗病毒的最新状况
7、其他相关
8、讨论</p>
<p>________________________________________</p>
<p>1、什么是ARP协议</p>
<p>要想了解ARP欺骗攻击的原理，首先就要了解什么是ARP协议。
ARP是地址转换协议（Address Resolution Protocol）的英文缩写，它是一个链路层协议，工作在OSI
模型的第二层，在本层和硬件接口间进行联系，同时对上层（网络层）提供服务。我们知道二层的以
太网交换设备并不能识别32位的IP地址，它们是以48位以太网地址（就是我们常说的MAC地址）传输
以太网数据包的。也就是说IP数据包在局域网内部传输时并不是靠IP地址而是靠MAC地址来识别目标
的，因此IP地址与MAC地址之间就必须存在一种对应关系，而ARP协议就是用来确定这种对应关系的
协议。ARP工作时，首先请求主机会发送出一个含有所希望到达的IP地址的以太网广播数据包，然
后目标IP的所有者会以一个含有IP和MAC地址对的数据包应答请求主机。这样请求主机就能获得要
到达的IP地址对应的MAC地址，同时请求主机会将这个地址对放入自己的ARP表缓存起来，以节约不
必要的ARP通信。ARP缓存表采用了老化机制，在一段时间内如果表中的某一行没有使用（windows系
统这个时间为2分钟，而Cisco路由器的这个时间为5分钟），就会被删除，这样可以大大减少ARP缓
存表的长度，加快查询速度。通过下面的例子我们可以很清楚的看出ARP的工作机制。

如上图所示，假如我们有两个网段、三台主机、两个网关、分别是：
主机名 IP地址 MAC地址
网关1 192.168.1.1 01-01-01-01-01-01
主机A 192.168.1.2 02-02-02-02-02-02
主机B 192.168.1.3 03-03-03-03-03-03
网关2 10.1.1.1 04-04-04-04-04-04
主机C 10.1.1.2 05-05-05-05-05-05</p>
<p>假如主机A要与主机B通讯，它首先会通过网络掩码比对，确认出主机B是否在自己同一网段内，如果
在它就会检查自己的ARP缓存中是否有192.168.1.3这个地址对应的MAC地址，如果没有它就会向局域
网的广播地址发送ARP请求包，大致的意思是192.168.1.3的MAC地址是什么请告诉192.168.1.2,而
广播地址会把这个请求包广播给局域网内的所有主机，但是只有192.168.1.3这台主机才会响应这个
请求包，它会回应192.168.1.2一个arp reply包，大致的意思是192.168.1.3的MAC地址是
03-03-03-03-03-03。这样的话主机A就得到了主机B的MAC地址，并且它会把这个对应的关系存在自
己的ARP缓存表中。之后主机A与主机B之间的通讯就依靠两者缓存表里的MAC地址来通讯了，直到通
讯停止后两分钟，这个对应关系才会被从表中删除。</p>
<p>再来看一个非局域网内部的通讯过程，假如主机A需要和主机C进行通讯，它首先会通过比对掩码发
现这个主机C的IP地址并不是自己同一个网段内的，因此需要通过网关来转发，这样的话它会检查
自己的ARP缓存表里是否有网关1(192.168.1.1)对应的MAC地址，如果没有就通过ARP请求获得，如果
有就直接与网关通讯，然后再由网关1通过路由将数据包送到网关2，网关2收到这个数据包后发现
是送给主机C（10.1.1.2）的，它就会检查自己的ARP缓存（没错，网关一样有自己的ARP缓存），
看看里面是否有10.1.1.2对应的MAC地址，如果没有就使用ARP协议获得，如果有就是用该MAC地址将
数据转发给主机C。</p>
<p>2、ARP欺骗原理</p>
<p>在了解ARP协议后我们再来看看什么是ARP欺骗，它的目的又是什么？通过上面的例子我们知道了
在以太局域网内数据包传输依靠的是MAC地址，IP地址与MAC对应的关系依靠ARP表，每台主机（包
括网关）都有一个ARP缓存表。在正常情况下这个缓存表能够有效的保证数据传输的一对一性，
也就是说主机A与主机C之间的通讯只通过网关1和网关1，象主机B之类的是无法截获A与C之间的
通讯信息的。但是在ARP缓存表的实现机制中存在一个不完善的地方，当主机收到一个ARP的应答
包后，它并不会去验证自己是否发送过这个ARP请求，而是直接将应答包里的MAC地址与IP对应的
关系替换掉原有的ARP缓存表里的相应信息。如下图所示：</p>
<p>这就导致主机B截取主机A与主机C之间的数据通信成为可能。首先主机B向主机A发送一个ARP应答
包说192.168.1.1的MAC地址是03-03-03-03-03-03，主机A收到这个包后并没有去验证包的真实性而
是直接将自己ARP列表中的192.168.1.1的MAC地址替换成03-03-03-03-03-03，同时主机B向网
关1发送一个ARP响应包说192.168.1.2的MAC是03-03-03-03-03-03，同样网关1也没有去验证这个
包的真实性就把自己ARP表中的192.168.1.2的MAC地址替换成03-03-03-03-03-03。当主机A想要与
主机C通讯时，它直接把应该发送给网关1(192.168.1.1)的数据包发送到03-03-03-03-03-03这个
MAC地址，也就是发给了主机B，主机B在收到这个包后经过修改再转发给真正的网关1，当从主
机C返回的数据包到达网关1后，网关1也使用自己ARP表中的MAC，将发往192.168.1.2这个IP地
址的数据发往03-03-03-03-03-03这个MAC地址也就是主机B，主机B在收到这个包后再转发给主
机A完成一次完整的数据通讯，这样就成功的实现了一次ARP欺骗攻击。
因此简单点说ARP欺骗的目的就是为了实现全交换环境下的数据监听与篡改。到这里我们可以知道
要完成一次有效的ARP欺骗的关键点就是双向欺骗，也就是说欺骗者必须同时对网关和主机进行欺骗。</p>
<p>3、ARP欺骗病毒</p>
<p>首先需要说明的是，这里说的ARP欺骗病毒并不是特指某一种病毒，而是指所有包含有ARP欺骗功
能的病毒的总称。由于ARP欺骗到目前为止依然是一种难以控制且非常有效的攻击手段，在今后很
长一段时间它都会被病毒、木马程序等利用。这也加大了我们对这类病毒的控制难度。








ARP病毒的危害：
影响局域网正常运行——局域网内一旦有ARP的攻击存在，会欺骗局域网内所有主机和网关，让所
有上网的流量必须经过ARP攻击者控制的主机。其他用户原来直接通过网关上网现在转由通过被控
主机转发上网，由于被控主机性能和程序性能的影响，这种转发并不会非常流畅，因此就会导致用
户上网的速度变慢。而由于ARP表存在老化机制，这就导致在某段时候主机能获得正确的网关MAC直
到新的欺骗完成，这两种情况的交替过程中，主机显示的状况就是时断时续。</p>
<p>泄露用户敏感信息——大部分时候这些信息是黑客们所感兴趣的东西（如游戏帐号和密码、QQ号
和密码、网银帐号和密码等）</p>
<p>ARP病毒的传播方式
前面讲过ARP欺骗是一种攻击方式，所有的病毒都可以采用这种方式，因此ARP病毒传播的方式
包括现有大部分病毒传播的方式，从前我们掌握的情况来看，主要为以下几种：
通过网页下载传播（目前大部分ARP木马的传播方式）
网络共享传播（弱口令共享等）
移动存储介质传播（如U盘、移动硬盘等）
文件感染</p>
<p>ARP病毒的查杀
对于已知的ARP病毒，可以使用杀毒软件或者是专杀工具进行查杀，而对于一些杀毒软件无法查杀
的未知ARP病毒，建议用户重新安全系统并及时升级补丁程序！</p>
<p>4、ARP欺骗的检测与控制办法</p>
<p>目前比较有效的检测ARP欺骗攻击的方法主要有两种，一种是在局域网内部使用抓包软件进行抓
包分析、另一种是直接到到三层交换机上查询ARP表，这两种方法各有优缺点，具体分析如下：</p>
<p>1、抓包分析
方法——使用抓包软件（如windump、sniffer pro等）在局域网内抓ARP的reply包，以windump为
例，使用windump -i 2 -n arp and host 192.168.0.1(192.168.0.1是您的网关地址）抓下来
的包我们只分析包含有reply字符的，格式如下：
18:25:15.706335 arp reply 192.168.0.1 is-at 00:07:ec:e1:c8:c3
如果最后的mac不是您网关的真实mac的话，那就说明有ARP欺骗存在，而这个mac就是那台进行
ARP欺骗主机的mac。</p>
<p>优点——简单易行，无需特别权限设置，所有用户都可以做，误判率较小！</p>
<p>缺点——必须在局域网内部（广播域内部）听包才有效。</p>
<p>2、三层交换机上查询ARP缓存表
方法——登陆局域网的上联三层交换机，并查看交换机的ARP缓存表（各种品牌的交换机命令有差异）
如果在ARP表中存在一个MAC对应多个端口（请注意是一个MAC对应多个端口，而不是一个端口上
存在多个MAC）的情况，那么就表明存在ARP欺骗攻击，而这个MAC就是欺骗主机的MAC。</p>
<p>优点——可以远程操作，无需到局域网内部，可以通过脚本来自动分析。</p>
<p>缺点——需要特殊权限，普通用户无法进行操作。</p>
<p>ARP欺骗的控制方法</p>
<p>1、主机静态绑定网关MAC
方法——使用arp命令静态绑定网关MAC，格式如下：
arp －s 网关IP 网关MAC
如果觉得每次手动输入比较复杂，您可以编写一个简单的批处理文件然后让它每次开机时自动运行，
批处理文件如下：
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
@echo off
echo &#8220;arp set&#8221;
arp -d
arp －s 网关IP 网关MAC
exit
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>优点——简单易行，普通用户都能操作</p>
<p>缺点——只能单向绑定。需要跟网关绑定MAC结合使用。</p>
<p>2、网关使用IP+MAC绑定模式
方法——交换机启用静态ARP绑定功能，将用户的IP与MAC进行静态绑定，防止ARP欺骗发生。</p>
<p>优点——效果明显</p>
<p>缺点——操作复杂，工作量巨大。无法保证主机端不被欺骗，需要与主机端绑定网关MAC结合使用。</p>
<p>3、使用ARP服务器
方法——在局域网内架设ARP服务器，替代主机应答ARP包。</p>
<p>优点——效果明显</p>
<p>缺点——配置复杂，需要改变客户端设置。成本高，需要大量的服务器。</p>
<p>4、使用防ARP攻击的软件
方法——下载和使用防ARP攻击的软件，如ARPFix或者是AntiARP等。</p>
<p>优点——简单易行</p>
<p>缺点——需要用户端都安装，无法保证网关不被欺骗。</p>
<p>总结：因为ARP欺骗利用的是ARP协议本身的缺陷，所以到目前为止，我们依然没有一个十分有效
的方法去控制这种攻击。目前难点主要集中在网关交换机上，我们还没有找到一个很有效
的方法来防范网关上的ARP列表不被欺骗修改。所以当前最有效的办法还是迅速阻断这种攻击的来源。
这就要求能够快速检测到攻击并定位出攻击主机位置后加以处理。</p>
<p>5、防范ARP欺骗的常用工具</p>
<p>ARP防火墙——ARPFix
这是我们CCERT为了解决ARP病毒所开发的一个小防火墙软件，当它被安装在正常主机上时，它能
有效地防范自身被ARP欺骗并能检测出感染主机的MAC地址，如果它被安装在感染主机上时它
可以阻断感染主机对外发起的ARP欺骗攻击。需要说明的是这只是一款防火墙软件，它不具备查
杀ARP病毒的能力，如果需要查杀ARP病毒，您还是需要专业杀毒软件。</p>
<p>windump软件——windump
tcpdump软件在windows系统下的版本，简单易用！需要winpcap的支持。</p>
<p>sniffer pro软件——sniffer
windows系统低下功能最强大的抓包分析软件。</p>
<p>趋势的ARP专杀工具——TSC_ARP
趋势提供的最新的ARP专杀工具，解压缩后直接运行TSC.exe即可。</p>
<p>AntiARP软件——AntiArp
网络上比较流行的防范ARP欺骗攻击的软件。这个是试用版。正式版本需要购买！</p>
<p>6、ARP欺骗病毒的最新状况</p>
<p>以往的ARP病毒使用ARP欺骗的目的绝大多数都是为了窃取用户的敏感信息，但是我们最近监测到
ARP欺骗在病毒中又得到了新的应用，那就是作为传播网页木马病毒的传播手段，当一台主机感
染带有这种ARP欺骗功能的病毒后，会在局域网内发动ARP欺骗，它会监听局域网内所有主机的数据
包，一旦发现其它主机有访问WEB网页的行为后，就会通过修改相应的数据封包在你访问的网页代
码里加入包含有木马程序的网页链接。从而导致局域网内其它主机不管访问什么网站都会被导引到含
有木马病毒的网站上去的。当您访问任何网站您的杀毒软件都在报该网页有毒的话，很可能您的局域
网内就存在这种攻击。</p>
<p>7、其他相关</p>
<p>ARP在注册表中的项：
1、关于arp缓存表项的生存期(有效时间)
在默认情况下，Windows Server 2003家族和Windows XP中，ARP缓存中的表项仅存储2分钟。
如果一个ARP缓存表项在2分钟内被用到，则其期限再延长2分钟，直到最大生命期限10分钟为止。
超过10分钟的最大期限后，ARP缓存表项将被移出，并且通过另外一个ARP请求——ARP回应交换
来获得新的对应关系。
ARP缓存表项的存放时间可以通过改变ArpCacheLife和ArpCacheMinReferencedLife的注册表
值来重新设置。</p>
<p>ArpCacheLife
Location:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Data Type: REG_DWORD
Valid range: 0-0xFFFFFFFF
Default value: 120
Present by default: No</p>
<p>ArpCacheLife设置了未被使用的ARP缓存表项可以被保持的时间。如果注册表中没有ArpCacheLife项，
则ArpCacheLife的默认值是120秒(2分钟)。 </p>
<p>ArpCacheMinReferencedLife
Location:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Data Type: [...]]]></description>
			<content:encoded><![CDATA[<p style="float: left;margin: 4px;"><script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 160x600, 创建于 10-2-7 */
google_ad_slot = "8970910006";
google_ad_width = 160;
google_ad_height = 600;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p> <p><span style="color: #000000;">1、什么是ARP协议<br />
2、ARP欺骗原理<br />
3、ARP欺骗病毒<br />
4、ARP欺骗的检测与控制办法<br />
5、防范ARP欺骗的常用工具<br />
6、ARP欺骗病毒的最新状况<br />
7、其他相关<br />
8、讨论</span></p>
<p><span style="color: #000000;">________________________________________</span></p>
<p><span style="color: #000000;">1、什么是ARP协议</span></p>
<p><span style="color: #000000;">要想了解ARP欺骗攻击的原理，首先就要了解什么是ARP协议。<br />
ARP是地址转换协议（Address Resolution Protocol）的英文缩写，它是一个链路层协议，工作在OSI<br />
模型的第二层，在本层和硬件接口间进行联系，同时对上层（网络层）提供服务。我们知道二层的以<br />
太网交换设备并不能识别32位的IP地址，它们是以48位以太网地址（就是我们常说的MAC地址）传输<br />
以太网数据包的。也就是说IP数据包在局域网内部传输时并不是靠IP地址而是靠MAC地址来识别目标<br />
的，因此IP地址与MAC地址之间就必须存在一种对应关系，而ARP协议就是用来确定这种对应关系的<br />
协议。ARP工作时，首先请求主机会发送出一个含有所希望到达的IP地址的以太网广播数据包，然<br />
后目标IP的所有者会以一个含有IP和MAC地址对的数据包应答请求主机。这样请求主机就能获得要<br />
到达的IP地址对应的MAC地址，同时请求主机会将这个地址对放入自己的ARP表缓存起来，以节约不<br />
必要的ARP通信。ARP缓存表采用了老化机制，在一段时间内如果表中的某一行没有使用（windows系<br />
统这个时间为2分钟，而Cisco路由器的这个时间为5分钟），就会被删除，这样可以大大减少ARP缓<br />
存表的长度，加快查询速度。通过下面的例子我们可以很清楚的看出ARP的工作机制。<br />
<span id="more-773"></span><br />
如上图所示，假如我们有两个网段、三台主机、两个网关、分别是：<br />
主机名 IP地址 MAC地址<br />
网关1 192.168.1.1 01-01-01-01-01-01<br />
主机A 192.168.1.2 02-02-02-02-02-02<br />
主机B 192.168.1.3 03-03-03-03-03-03<br />
网关2 10.1.1.1 04-04-04-04-04-04<br />
主机C 10.1.1.2 05-05-05-05-05-05</span></p>
<p><span style="color: #000000;">假如主机A要与主机B通讯，它首先会通过网络掩码比对，确认出主机B是否在自己同一网段内，如果<br />
在它就会检查自己的ARP缓存中是否有192.168.1.3这个地址对应的MAC地址，如果没有它就会向局域<br />
网的广播地址发送ARP请求包，大致的意思是192.168.1.3的MAC地址是什么请告诉192.168.1.2,而<br />
广播地址会把这个请求包广播给局域网内的所有主机，但是只有192.168.1.3这台主机才会响应这个<br />
请求包，它会回应192.168.1.2一个arp reply包，大致的意思是192.168.1.3的MAC地址是<br />
03-03-03-03-03-03。这样的话主机A就得到了主机B的MAC地址，并且它会把这个对应的关系存在自<br />
己的ARP缓存表中。之后主机A与主机B之间的通讯就依靠两者缓存表里的MAC地址来通讯了，直到通<br />
讯停止后两分钟，这个对应关系才会被从表中删除。</span></p>
<p><span style="color: #000000;">再来看一个非局域网内部的通讯过程，假如主机A需要和主机C进行通讯，它首先会通过比对掩码发<br />
现这个主机C的IP地址并不是自己同一个网段内的，因此需要通过网关来转发，这样的话它会检查<br />
自己的ARP缓存表里是否有网关1(192.168.1.1)对应的MAC地址，如果没有就通过ARP请求获得，如果<br />
有就直接与网关通讯，然后再由网关1通过路由将数据包送到网关2，网关2收到这个数据包后发现<br />
是送给主机C（10.1.1.2）的，它就会检查自己的ARP缓存（没错，网关一样有自己的ARP缓存），<br />
看看里面是否有10.1.1.2对应的MAC地址，如果没有就使用ARP协议获得，如果有就是用该MAC地址将<br />
数据转发给主机C。</span></p>
<p><span style="color: #000000;">2、ARP欺骗原理</span></p>
<p><span style="color: #000000;">在了解ARP协议后我们再来看看什么是ARP欺骗，它的目的又是什么？通过上面的例子我们知道了<br />
在以太局域网内数据包传输依靠的是MAC地址，IP地址与MAC对应的关系依靠ARP表，每台主机（包<br />
括网关）都有一个ARP缓存表。在正常情况下这个缓存表能够有效的保证数据传输的一对一性，<br />
也就是说主机A与主机C之间的通讯只通过网关1和网关1，象主机B之类的是无法截获A与C之间的<br />
通讯信息的。但是在ARP缓存表的实现机制中存在一个不完善的地方，当主机收到一个ARP的应答<br />
包后，它并不会去验证自己是否发送过这个ARP请求，而是直接将应答包里的MAC地址与IP对应的<br />
关系替换掉原有的ARP缓存表里的相应信息。如下图所示：</span></p>
<p><span style="color: #000000;">这就导致主机B截取主机A与主机C之间的数据通信成为可能。首先主机B向主机A发送一个ARP应答<br />
包说192.168.1.1的MAC地址是03-03-03-03-03-03，主机A收到这个包后并没有去验证包的真实性而<br />
是直接将自己ARP列表中的192.168.1.1的MAC地址替换成03-03-03-03-03-03，同时主机B向网<br />
关1发送一个ARP响应包说192.168.1.2的MAC是03-03-03-03-03-03，同样网关1也没有去验证这个<br />
包的真实性就把自己ARP表中的192.168.1.2的MAC地址替换成03-03-03-03-03-03。当主机A想要与<br />
主机C通讯时，它直接把应该发送给网关1(192.168.1.1)的数据包发送到03-03-03-03-03-03这个<br />
MAC地址，也就是发给了主机B，主机B在收到这个包后经过修改再转发给真正的网关1，当从主<br />
机C返回的数据包到达网关1后，网关1也使用自己ARP表中的MAC，将发往192.168.1.2这个IP地<br />
址的数据发往03-03-03-03-03-03这个MAC地址也就是主机B，主机B在收到这个包后再转发给主<br />
机A完成一次完整的数据通讯，这样就成功的实现了一次ARP欺骗攻击。<br />
因此简单点说ARP欺骗的目的就是为了实现全交换环境下的数据监听与篡改。到这里我们可以知道<br />
要完成一次有效的ARP欺骗的关键点就是双向欺骗，也就是说欺骗者必须同时对网关和主机进行欺骗。</span></p>
<p><span style="color: #000000;">3、ARP欺骗病毒</span></p>
<p><span style="color: #000000;">首先需要说明的是，这里说的ARP欺骗病毒并不是特指某一种病毒，而是指所有包含有ARP欺骗功<br />
能的病毒的总称。由于ARP欺骗到目前为止依然是一种难以控制且非常有效的攻击手段，在今后很<br />
长一段时间它都会被病毒、木马程序等利用。这也加大了我们对这类病毒的控制难度。<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
ARP病毒的危害：<br />
影响局域网正常运行——局域网内一旦有ARP的攻击存在，会欺骗局域网内所有主机和网关，让所<br />
有上网的流量必须经过ARP攻击者控制的主机。其他用户原来直接通过网关上网现在转由通过被控<br />
主机转发上网，由于被控主机性能和程序性能的影响，这种转发并不会非常流畅，因此就会导致用<br />
户上网的速度变慢。而由于ARP表存在老化机制，这就导致在某段时候主机能获得正确的网关MAC直<br />
到新的欺骗完成，这两种情况的交替过程中，主机显示的状况就是时断时续。</span></p>
<p><span style="color: #000000;">泄露用户敏感信息——大部分时候这些信息是黑客们所感兴趣的东西（如游戏帐号和密码、QQ号<br />
和密码、网银帐号和密码等）</span></p>
<p><span style="color: #000000;">ARP病毒的传播方式<br />
前面讲过ARP欺骗是一种攻击方式，所有的病毒都可以采用这种方式，因此ARP病毒传播的方式<br />
包括现有大部分病毒传播的方式，从前我们掌握的情况来看，主要为以下几种：<br />
通过网页下载传播（目前大部分ARP木马的传播方式）<br />
网络共享传播（弱口令共享等）<br />
移动存储介质传播（如U盘、移动硬盘等）<br />
文件感染</span></p>
<p><span style="color: #000000;">ARP病毒的查杀<br />
对于已知的ARP病毒，可以使用杀毒软件或者是专杀工具进行查杀，而对于一些杀毒软件无法查杀<br />
的未知ARP病毒，建议用户重新安全系统并及时升级补丁程序！</span></p>
<p><span style="color: #000000;">4、ARP欺骗的检测与控制办法</span></p>
<p><span style="color: #000000;">目前比较有效的检测ARP欺骗攻击的方法主要有两种，一种是在局域网内部使用抓包软件进行抓<br />
包分析、另一种是直接到到三层交换机上查询ARP表，这两种方法各有优缺点，具体分析如下：</span></p>
<p><span style="color: #000000;">1、抓包分析<br />
方法——使用抓包软件（如windump、sniffer pro等）在局域网内抓ARP的reply包，以windump为<br />
例，使用windump -i 2 -n arp and host 192.168.0.1(192.168.0.1是您的网关地址）抓下来<br />
的包我们只分析包含有reply字符的，格式如下：<br />
18:25:15.706335 arp reply 192.168.0.1 is-at 00:07:ec:e1:c8:c3<br />
如果最后的mac不是您网关的真实mac的话，那就说明有ARP欺骗存在，而这个mac就是那台进行<br />
ARP欺骗主机的mac。</span></p>
<p><span style="color: #000000;">优点——简单易行，无需特别权限设置，所有用户都可以做，误判率较小！</span></p>
<p><span style="color: #000000;">缺点——必须在局域网内部（广播域内部）听包才有效。</span></p>
<p><span style="color: #000000;">2、三层交换机上查询ARP缓存表<br />
方法——登陆局域网的上联三层交换机，并查看交换机的ARP缓存表（各种品牌的交换机命令有差异）<br />
如果在ARP表中存在一个MAC对应多个端口（请注意是一个MAC对应多个端口，而不是一个端口上<br />
存在多个MAC）的情况，那么就表明存在ARP欺骗攻击，而这个MAC就是欺骗主机的MAC。</span></p>
<p><span style="color: #000000;">优点——可以远程操作，无需到局域网内部，可以通过脚本来自动分析。</span></p>
<p><span style="color: #000000;">缺点——需要特殊权限，普通用户无法进行操作。</span></p>
<p><span style="color: #000000;">ARP欺骗的控制方法</span></p>
<p><span style="color: #000000;">1、主机静态绑定网关MAC<br />
方法——使用arp命令静态绑定网关MAC，格式如下：<br />
arp －s 网关IP 网关MAC<br />
如果觉得每次手动输入比较复杂，您可以编写一个简单的批处理文件然后让它每次开机时自动运行，<br />
批处理文件如下：<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
@echo off<br />
echo &#8220;arp set&#8221;<br />
arp -d<br />
arp －s 网关IP 网关MAC<br />
exit<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span></p>
<p><span style="color: #000000;">优点——简单易行，普通用户都能操作</span></p>
<p><span style="color: #000000;">缺点——只能单向绑定。需要跟网关绑定MAC结合使用。</span></p>
<p><span style="color: #000000;">2、网关使用IP+MAC绑定模式<br />
方法——交换机启用静态ARP绑定功能，将用户的IP与MAC进行静态绑定，防止ARP欺骗发生。</span></p>
<p><span style="color: #000000;">优点——效果明显</span></p>
<p><span style="color: #000000;">缺点——操作复杂，工作量巨大。无法保证主机端不被欺骗，需要与主机端绑定网关MAC结合使用。</span></p>
<p><span style="color: #000000;">3、使用ARP服务器<br />
方法——在局域网内架设ARP服务器，替代主机应答ARP包。</span></p>
<p><span style="color: #000000;">优点——效果明显</span></p>
<p><span style="color: #000000;">缺点——配置复杂，需要改变客户端设置。成本高，需要大量的服务器。</span></p>
<p><span style="color: #000000;">4、使用防ARP攻击的软件<br />
方法——下载和使用防ARP攻击的软件，如ARPFix或者是AntiARP等。</span></p>
<p><span style="color: #000000;">优点——简单易行</span></p>
<p><span style="color: #000000;">缺点——需要用户端都安装，无法保证网关不被欺骗。</span></p>
<p><span style="color: #000000;">总结：因为ARP欺骗利用的是ARP协议本身的缺陷，所以到目前为止，我们依然没有一个十分有效<br />
的方法去控制这种攻击。目前难点主要集中在网关交换机上，我们还没有找到一个很有效<br />
的方法来防范网关上的ARP列表不被欺骗修改。所以当前最有效的办法还是迅速阻断这种攻击的来源。<br />
这就要求能够快速检测到攻击并定位出攻击主机位置后加以处理。</span></p>
<p><span style="color: #000000;">5、防范ARP欺骗的常用工具</span></p>
<p><span style="color: #000000;">ARP防火墙——ARPFix<br />
这是我们CCERT为了解决ARP病毒所开发的一个小防火墙软件，当它被安装在正常主机上时，它能<br />
有效地防范自身被ARP欺骗并能检测出感染主机的MAC地址，如果它被安装在感染主机上时它<br />
可以阻断感染主机对外发起的ARP欺骗攻击。需要说明的是这只是一款防火墙软件，它不具备查<br />
杀ARP病毒的能力，如果需要查杀ARP病毒，您还是需要专业杀毒软件。</span></p>
<p><span style="color: #000000;">windump软件——windump<br />
tcpdump软件在windows系统下的版本，简单易用！需要winpcap的支持。</span></p>
<p><span style="color: #000000;">sniffer pro软件——sniffer<br />
windows系统低下功能最强大的抓包分析软件。</span></p>
<p><span style="color: #000000;">趋势的ARP专杀工具——TSC_ARP<br />
趋势提供的最新的ARP专杀工具，解压缩后直接运行TSC.exe即可。</span></p>
<p><span style="color: #000000;">AntiARP软件——AntiArp<br />
网络上比较流行的防范ARP欺骗攻击的软件。这个是试用版。正式版本需要购买！</span></p>
<p><span style="color: #000000;">6、ARP欺骗病毒的最新状况</span></p>
<p><span style="color: #000000;">以往的ARP病毒使用ARP欺骗的目的绝大多数都是为了窃取用户的敏感信息，但是我们最近监测到<br />
ARP欺骗在病毒中又得到了新的应用，那就是作为传播网页木马病毒的传播手段，当一台主机感<br />
染带有这种ARP欺骗功能的病毒后，会在局域网内发动ARP欺骗，它会监听局域网内所有主机的数据<br />
包，一旦发现其它主机有访问WEB网页的行为后，就会通过修改相应的数据封包在你访问的网页代<br />
码里加入包含有木马程序的网页链接。从而导致局域网内其它主机不管访问什么网站都会被导引到含<br />
有木马病毒的网站上去的。当您访问任何网站您的杀毒软件都在报该网页有毒的话，很可能您的局域<br />
网内就存在这种攻击。</span></p>
<p><span style="color: #000000;">7、其他相关</span></p>
<p><span style="color: #000000;">ARP在注册表中的项：<br />
1、关于arp缓存表项的生存期(有效时间)<br />
在默认情况下，Windows Server 2003家族和Windows XP中，ARP缓存中的表项仅存储2分钟。<br />
如果一个ARP缓存表项在2分钟内被用到，则其期限再延长2分钟，直到最大生命期限10分钟为止。<br />
超过10分钟的最大期限后，ARP缓存表项将被移出，并且通过另外一个ARP请求——ARP回应交换<br />
来获得新的对应关系。<br />
ARP缓存表项的存放时间可以通过改变ArpCacheLife和ArpCacheMinReferencedLife的注册表<br />
值来重新设置。</span></p>
<p><span style="color: #000000;">ArpCacheLife<br />
Location:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters<br />
Data Type: REG_DWORD<br />
Valid range: 0-0xFFFFFFFF<br />
Default value: 120<br />
Present by default: No</span></p>
<p><span style="color: #000000;">ArpCacheLife设置了未被使用的ARP缓存表项可以被保持的时间。如果注册表中没有ArpCacheLife项，<br />
则ArpCacheLife的默认值是120秒(2分钟)。 </span></p>
<p><span style="color: #000000;">ArpCacheMinReferencedLife<br />
Location:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters<br />
Data Type: REG_DWORD<br />
Valid range: 0-0xFFFFFFFF<br />
Default value: 600<br />
Present by default: No<br />

<!-- Begin alimama Adserver code -->
<script type="text/javascript"><!--
google_ad_client = "pub-8438729971248494";
/* 728x90, ������ 10-2-7 */
google_ad_slot = "4752526529";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<!-- End Alimama Adserver code -->
<br />
ArpCacheMinReferencedLife设置被重复使用的表项可以在ARP缓存中存放的时间。<br />
ArpCacheMinReferencedLife的默认值是600秒(10分钟)。<br />
在注册表中ArpCacheMinReferencedLife和ArpCacheLife的值的使用方法如下：<br />
如果ArpCacheLife比ArpCacheMinReferencedLife的值大或与之相等，则被使用和未被使用的ARP<br />
缓存表项可存储的时间都是ArpCacheLife。<br />
如果ArpCacheLife比ArpCacheMinReferencedLife的值小，则未被使用的ARP缓存表项在<br />
ArpCacheLife秒的时间后就过期了，被使用的表项的生存期为ArpCacheMinReferencedLife秒。</span></p>
<p><span style="color: #000000;">2、无偿ARP和重复的IP地址检测<br />
ARP可以被用来检测重复的IP地址，这是通过传送一种叫做无偿ARP的ARP请求来完成的。无偿<br />
ARP就是一个发往自己IP地址的ARP请求。在无偿ARP中，SPA(发送者协议地址)和TPA(目标协议<br />
地址)被设置成同一个IP地址。<br />
如果节点发送一个发往自己IP地址的ARP请求，就不应收到任何一个ARP回应帧，这样节点就可以<br />
判断没有其他节点使用跟它相同的IP地址。如果节点发送一个发往自己IP地址的ARP请求，结果收<br />
到ARP回应，这样此节点就可以判断有另外一个节点使用同样的IP地址。注册表中对ArpRetryCount<br />
的设置控制了无偿ARP的发送数量。</span></p>
<p><span style="color: #000000;">ArpRetryCount<br />
Location:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters<br />
Data Type: REG_DWORD<br />
Valid range: 0-3<br />
Default value: 3<br />
Present by default: No</span></p>
<p><span style="color: #000000;">ArpRetryCount设置了当初始化某个IP地址时，发送的无偿ARP的次数。如果发送了ArpRetryCount<br />
个无偿ARP后，都没有收到ARP回应，IP就假定此IP地址在此网络段中是唯一的。 </span></p>
<p><span style="color: #000000;">提示：无偿ARP试图检测在同一个网络段中的IP地址重复。由于路由器并不转发ARP帧，无偿ARP<br />
并不能检测在不同网络段之间的IP地址冲突。个人感觉这种无偿ARP是不是能够用在开发检测ARP<br />
病毒的机制上？</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.evanjiang.net.cn/archives/773.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
