ARP欺骗攻击技术分析与防御论文.doc

上传人:wj 文档编号:345654 上传时间:2023-04-29 格式:DOC 页数:14 大小:210.50KB
下载 相关 举报
ARP欺骗攻击技术分析与防御论文.doc_第1页
第1页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第2页
第2页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第3页
第3页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第4页
第4页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第5页
第5页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第6页
第6页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第7页
第7页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第8页
第8页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第9页
第9页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第10页
第10页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第11页
第11页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第12页
第12页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第13页
第13页 / 共14页
ARP欺骗攻击技术分析与防御论文.doc_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ARP欺骗攻击技术分析与防御论文.doc

《ARP欺骗攻击技术分析与防御论文.doc》由会员分享,可在线阅读,更多相关《ARP欺骗攻击技术分析与防御论文.doc(14页珍藏版)》请在冰点文库上搜索。

ARP欺骗攻击技术分析与防御论文.doc

ARP欺骗攻击技术分析与防御

AddressResolutionProtocolDeceitAttackTechnologyAnalysisAndDefense

姜志坤

摘要:

世界上没有绝对安全的网络。

用户即使想尽一切办法升级自己的系统,并且及时地为它补上各种补丁,也不能保证自己的系统就是绝对的安全。

Internet和TCP/IP从出现开始,在安全问题上就存在着难以克服的缺陷。

TCP/IP很容易相信别人,即使对方是不怀好意的入侵者。

TCP/IP的欺骗技术有很多种,包括ARP欺骗、序列号欺骗、路由攻击、源地址欺骗和授权欺骗等。

本文针对ARP欺骗的工作原理以及攻击过程,提出了一系列的解决方法。

关键字:

入侵者ARP欺骗工作原理攻击过程

所谓ARP即地址解析协议(AddressResolutionProtocol),是在仅知道主机的IP地址时确定其物理地址的一种协议。

因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址,但其也能在ATM和FDDIIP网络中使用。

从IP地址到物理地址的映射有两种方式:

表格方式和非表格方式。

ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。

1.ARP欺骗原理

1.1ARP欺骗机制分析

ARP(AddressResolutionProtocol,地址解析协议)是一个位于TCP/IP协议栈中的低层协议,负责将某个IP地址解析成对应的MAC地址。

从影响网络连接通畅的方式来看,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。

第一种ARP欺骗的原理是——截获网关数据。

它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。

第二种ARP欺骗的原理是——伪造网关。

它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。

在PC看来,就是上不了网了,“网络掉线了”。

一般来说,ARP欺骗攻击的后果非常严重,大多数情况下会造成大面积掉线。

有些网络管理员对此不甚了解,出现故障时,认为PC没有问题,交换机没掉线的“本事”,电信也不承认宽带故障。

而且如果第一种ARP欺骗发生时,只要重启路由器,网络就能全面恢复,那问题一定是在路由器了。

为此,宽带路由器背了不少“黑锅”。

另外,为对抗假冒网关的ARP欺骗,路由器设计了网关的ARP广播机制,它以一个可选定的频次,向内网宣布正确的网关地址,维护网关的正当权益。

在暂时无法及时清除ARP病毒,网络管理员还没有做PC上的IP-MAC绑定时,它能在一定程度上维持网络的运行,避免灾难性后果,赢取系统修复的时间。

这就是ARP主动防范机制。

不过,如果不在PC上绑定IP-MAC,虽然有主动防范机制,但网络依然在带病运行。

因为这种ARP是内网的事情,是不通过路由器的。

让路由器插手只能做到对抗,不能根绝。

ARP太猖獗时,就会发生时断时续的故障,那是主动防范机制在与ARP欺骗进行拉锯式的斗争。

1.2ARP欺骗攻击分析

要想了解ARP欺骗攻击的原理,首先就要了解什么是ARP协议。

ARP是地址转换协议的英文缩写,它是一个链路层协议,工作在OSI模型的第二层,在本层和硬件接口间进行联系,同时为上层(网络层)提供服务。

我们知道,二层的以太网交换设备并不能识别32位的IP地址,它们是以48位以太网地址(就是我们常说的MAC地址)传输以太网数据包的。

因此IP地址与MAC地址之间就必须存在一种对应关系,而ARP协议就是用来确定这种对应关系的协议。

ARP工作时,首先请求主机发送出一个含有所希望到达的IP地址的以太网广播数据包,然后目标IP的所有者会以一个含有IP和MAC地址对的数据包应答请求主机。

这样请求主机就能获得要到达的IP地址对应的MAC地址,同时请求主机会将这个地址对放入自己的ARP表缓存起来,以节约不必要的ARP通信。

ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用(Windows系统这个时间为2分钟,而Cisco路由器的这个时间为5分钟),就会被删除。

通过下面的例子我们可以很清楚地看出ARP的工作机制。

假定有如下五个IP地址的主机或者网络设备,它们分别是:

主机A192.168.1.2

主机B192.168.1.3

网关C192.168.1.1

主机D10.1.1.2

网关E10.1.1.1

假如主机A要与主机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包,大致的意思是192.168.1.3的MAC地址是02-02-02-02-02-02。

这样的话主机A就得到了主机B的MAC地址,并且它会把这个对应的关系存在自己的ARP缓存表中。

之后主机A与主机B之间的通信就依靠两者缓存表里的MAC地址来通信了,直到通信停止后2分钟,这个对应关系才会从表中被删除。

再来看一个非局域网内部的通信过程。

假如主机A需要和主机D进行通信,它首先会发现这个主机D的IP地址并不是自己同一个网段内的,因此需要通过网关来转发,这样的话它会检查自己的ARP缓存表里是否有网关192.168.1.1对应的MAC地址,如果没有就通过ARP请求获得,如果有就直接与网关通信,然后再由网关C通过路由将数据包送到网关E,网关E收到这个数据包后发现是送给主机D(10.1.1.2)的,它就会检查自己的ARP缓存,看看里面是否有10.1.1.2对应的MAC地址,如果没有就使用ARP协议获得,如果有就是用该MAC地址与主机D通信。

通过上面的例子我们知道,在以太局域网内数据包传输依靠的是MAC地址,IP地址与MAC对应的关系依靠ARP表,每台主机(包括网关)都有一个ARP缓存表。

在正常情况下这个缓存表能够有效保证数据传输的一对一性,像主机B之类的是无法截获A与D之间的通信信息的。

但是主机在实现ARP缓存表的机制中存在一个不完善的地方,当主机收到一个ARP的应答包后,它并不会去验证自己是否发送过这个ARP请求,而是直接将应答包里的MAC地址与IP对应的关系替换掉原有的ARP缓存表里的相应信息。

这就导致主机B截取主机A与主机D之间的数据通信成为可能。

首先主机B向主机A发送一个ARP应答包说192.168.1.1的MAC地址是02-02-02-02-02-02,主机A收到这个包后并没有去验证包的真实性而是直接将自己ARP列表中的192.168.1.1的MAC地址替换成02-02-02-02-02-02,同时主机B向网关C发送一个ARP响应包说192.168.1.2的MAC是02-02-02-02-02-02,同样,网关C也没有去验证这个包的真实性就把自己ARP表中的192.168.1.2的MAC地址替换成02-02-02-02-02-02。

当主机A想要与主机D通信时,它直接把应该发送给网关192.168.1.1的数据包发送到02-02-02-02-02-02这个MAC地址,也就是发给了主机B,主机B在收到这个包后经过修改再转发给真正的网关C,当从主机D返回的数据包到达网关C后,网关也使用自己ARP表中的MAC地址,将发往192.168.1.2这个IP地址的数据发往02-02-02-02-02-02这个MAC地址也就是主机B,主机B在收到这个包后再转发给主机A完成一次完整的数据通信,这样就成功地实现了一次ARP欺骗攻击。

因此简单点说,ARP欺骗的目的就是为了实现全交换环境下的数据监听。

大部分的木马或病毒使用ARP欺骗攻击也是为了达到这个目的。

局域网内一旦有ARP的攻击存在,会欺骗局域网内所有主机和网关,让所有上网的流量必须经过ARP攻击者控制的主机。

其他用户原来直接通过网关上网,现在却转由通过被控主机转发上网。

由于被控主机性能和程序性能的影响,这种转发并不会非常流畅,因此就会导致用户上网的速度变慢甚至频繁断线。

另外ARP欺骗需要不停地发送ARP应答包,会造成网络拥塞。

一旦怀疑有ARP攻击我们就可以使用抓包工具来抓包,如果发现网内存在大量ARP应答包,并且将所有的IP地址都指向同一个MAC地址,那么就说明存在ARP欺骗攻击,并且这个MAC地址就是用来进行ARP欺骗攻击的主机MAC地址,我们可以查出它对应的真实IP地址,从而采取相应的控制措施。

另外,我们也可以到路由器或者网关交换机上查看IP地址与MAC地址的对应表,如果发现某一个MAC对应了大量的IP地址,那么也说明存在ARP欺骗攻击,同时通过这个MAC地址查出用ARP欺骗攻击的主机在交换机上所对应的物理端口,从而进行控制。

在局域网中,通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)。

ARP协议对网络安全具有重要的意义。

通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞或者实现“maninthemiddle”进行ARP重定向和嗅探攻击。

用伪造源MAC地址发送ARP响应包,对ARP高速缓存机制的攻击。

每个主机都用一个ARP高速缓存存放最近IP地址到MAC硬件地址之间的映射记录。

MSWindows高速缓存中的每一条记录(条目)的生存时间一般为60秒,起始时间从被创建时开始算起。

默认情况下,ARP从缓存中读取IP-MAC条目,缓存中的IP-MAC条目是根据ARP响应包动态变化的。

因此,只要网络上有ARP响应包发送到本机,即会更新ARP高速缓存中的IP-MAC条目。

攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。

ARP协议并不只在发送了ARP请求才接收ARP应答。

当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。

因此,B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.1.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。

当A接收到B伪造的ARP应答,就会更新本地的ARP缓存(A可不知道被伪造了)。

当攻击源大量向局域网中发送虚假的ARP信息后,就会造成局域网中的机器ARP缓存的崩溃。

Switch上同样维护着一个动态的MAC缓存,它一般是这样,首先,交换机内部有一个对应的列表,交换机的端口对应MAC地址表Portn<->Mac记录着每一个端口下面存在哪些MAC地址,这个表开始是空的,Switch从来往数据帧中学习。

因为MAC-PORT缓存表是动态更新的,那么让整个Switch的端口表都改变,对Switch进行MAC地址欺骗的Flood,不断发送大量假MAC地址的数据包,Switch就更新MAC-PORT缓存,如果能通过这样的办法把以前正常的MAC和Port对应的关系破坏了,那么Switch就会进行泛洪发送给每一个端口,让Switch基本变成一个HUB,向所有的端口发送数据包,要进行嗅探攻击的目的一样能够达到。

也将造成SwitchMAC-PORT缓存的崩溃,如下下面交换机中日志所示:

Internet172.20.156.10000b.cd85.a193

ARPAVlan256Internet172.20.156.50000b.cd85.a193

ARPAVlan256Internet172.20.156.2540000b.cd85.a193

ARPAVlan256Internet172.20.156.530000b.cd85.a193

ARPAVlan256Internet172.20.156.330000b.cd85.a193

ARPAVlan256Internet172.20.156.130000b.cd85.a193

ARPAVlan256Internet172.20.156.150000b.cd85.a193

ARPAVlan256Internet172.20.156.140000b.cd85.a193

1.3ARP欺骗病毒分析

当局域网内某台主机运行ARP欺骗的木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。

其他用户原来直接通过路由器上网现在转由通过病毒主机上网,切换的时候用户会断一次线。

切换到病毒主机上网后,如果用户已经登陆了传奇服务器,那么病毒主机就会经常伪造断线的假像,那么用户就得重新登录传奇服务器,这样病毒主机就可以盗号了。

由于ARP欺骗的木马程序发作的时候会发出大量的数据包导致局域网通讯拥塞以及其自身处理能力的限制,用户会感觉上网速度越来越慢。

当ARP欺骗的木马程序停止运行时,用户会恢复从路由器上网,切换过程中用户会再断一次线。

在路由器的“系统历史记录”中看到大量如下的信息:

MACChged10.128.103.124MACOld00:

01:

6c:

36:

d1:

7fMACNew00:

05:

5d:

60:

c7:

18

这个消息代表了用户的MAC地址发生了变化,在ARP欺骗木马开始运行的时候,局域网所有主机的MAC地址更新为病毒主机的MAC地址(即所有信息的MACNew地址都一致为病毒主机的MAC地址),同时在路由器的“用户统计”中看到所有用户的MAC地址信息都一样。

如果是在路由器的“系统历史记录”中看到大量MACOld地址都一致,则说明局域网内曾经出现过ARP欺骗(ARP欺骗的木马程序停止运行时,主机在路由器上恢复其真实的MAC地址)。

BKDR_NPFECT.A病毒引起ARP欺骗之实例分析:

(1)病毒现象

中毒机器在局域网中发送假的APR应答包进行APR欺骗,造成其他客户机无法获得网关和其他客户机的网卡真实MAC地址,导致无法上网和正常的局域网通信。

(2)病毒的组件

本文研究的病毒样本有三个组件构成:

%windows%\SYSTEM32\LOADHW.EXE(108,386bytes)…“病毒组件释放者”

%windows%\System32\drivers\npf.sys(119,808bytes)…“发ARP欺骗包的驱动程序”

%windows%\System32\msitinit.dll(39,952bytes)…“命令驱动程序发ARP欺骗包的控制者”

(3)病毒运作基理

LOADHW.EXE执行时会释放两个组件npf.sys和msitinit.dll,LOADHW.EXE释放组件后即终止运行。

注意:

病毒假冒成winPcap的驱动程序,并提供winPcap的功能.客户若原先装有winPcap,npf.sys将会被病毒文件覆盖掉。

随后msitinit.dll将npf.sys注册(并监视)为内核级驱动设备:

“NetGroupPacketFilterDriver”,msitinit.dll还负责发送指令来操作驱动程序npf.sys(如发送APR欺骗包,抓包,过滤包等)。

以下从病毒代码中提取得服务相关值:

BinaryPathName="system32\drivers\npf.sys"StartType=ERVICE_AUTO_STARTServiceType=SERVICE_KERNEL_DRIVERDesiredAccess=SERVICE_ALL_ACCESSDisplayName="NetGroupPacketFilterDriver"ServiceName="Npf"

npf.sys负责监护msitinit.dll.并将LOADHW.EXE注册为自启动程序:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]

dwMyTest=LOADHW.EXE

注:

由于该项位于RunOnce下,该注册表启动项在每次执行后,即会被系统自动删除。

(4)反病毒应急响应解决方案

按以下顺序删除病毒组件:

1)删除“病毒组件释放者”

%windows%\SYSTEM32\LOADHW.EXE

2)删除“发ARP欺骗包的驱动程序”(兼“病毒守护程序”)

%windows%\System32\drivers\npf.sys

a.在设备管理器中,单击”查看”-->”显示隐藏的设备”

b.在设备树结构中,打开“非即插即用…”

c.找到“NetGroupPacketFilterDriver”,若没找到,请先刷新设备列表

d.右键点击“NetGroupPacketFilterDriver”菜单,并选择“卸载”

e.重启windows系统

f.删除%windows%\System32\drivers\npf.sys

3)删除“命令驱动程序发ARP欺骗包的控制者”

%windows%\System32\msitinit.dll

4)删除以下“病毒的假驱动程序”的注册表服务项

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Npf

2.定位ARP攻击源头和防御方法

2.1定位ARP攻击源头

主动定位方式:

因为所有的ARP攻击源都会有其特征——网卡会处于混杂模式,可以通过ARPKiller这样的工具扫描网内有哪台机器的网卡是处于混杂模式的,从而判断这台机器有可能就是“元凶”。

定位好机器后,再做病毒信息收集,提交给病毒应急中心做分析处理。

标注:

网卡可以置于一种模式叫混杂模式(promiscuous),在这种模式下工作的网卡能够收到一切通过它的数据,而不管实际上数据的目的地址是不是它。

这实际就是Sniffer工作的基本原理:

让网卡接收一切它所能接收的数据。

图2-1ARPKiller扫描结果

被动定位方式:

在局域网发生ARP攻击时,查看交换机的动态ARP表中的内容,确定攻击源的MAC地址;也可以在局域网中部署Sniffer工具,定位ARP攻击源的MAC地址。

也可以直接Ping网关IP,完成Ping后,用ARP–a查看网关IP对应的MAC地址,此MAC地址应该为欺骗的MAC地址。

通过上述方法,我们就能够快速的找到病毒源,确认其MAC地址——〉机器名和IP地址。

2.2ARP欺骗防范

(1)防御方法

1)使用可防御ARP攻击的三层交换机,绑定端口-MAC-IP,限制ARP流量,及时发现并自动阻断ARP攻击端口,合理划分VLAN,彻底阻止盗用IP、MAC地址,杜绝ARP的攻击。

2)对于经常爆发病毒的网络,进行Internet访问控制,限制用户对网络的访问。

此类ARP攻击程序一般都是从Internet下载到用户终端,如果能够加强用户上网的访问控制,就能极大的减少该问题的发生。

3)在发生ARP攻击时,及时找到病毒攻击源头,并收集病毒信息,可以使用趋势科技的SIC3.3,同时收集可疑的病毒样本文件,一起提交到趋势科技的TrendLabs进行分析,TrendLabs将以最快的速度提供病毒码文件,从而可以进行ARP病毒的防御。

图2-2SIC3.3扫描中

(2)防御措施

1)在客户端使用arp命令绑定网关的真实MAC地址命令如下:

arp(先清除错误的ARP表)

arp192.168.168.400-13-32-03-19-9a(静态指定网关的MAC地址)

2)在交换机上做端口与MAC地址的静态绑定。

3)在路由器上做IP地址与MAC地址的静态绑定。

4)使用“ARPSERVER”按一定的时间间隔广播网段内所有主机的正确IP-MAC映射表。

5)最主要是要提高用户的安全意识,养成良好的安全习惯,包括:

及时安装系统补丁程序;为系统设置强壮的密码;安装防火墙;安装有效的杀毒软件并及时升级病毒库;不主动进行网络攻击;不随便运行不受信任的软件。

3.ARP病毒的处理方法

3.1基于DOS命令

(1)故障现象

机器以前可正常上网的,突然出现可认证,不能上网的现象(无法ping通网关),重启机器或在MSDOS窗口下运行命令ARP-d后,又可恢复上网一段时间。

(2)故障原因

这是APR病毒欺骗攻击造成的。

引起问题的原因一般是游戏外挂、垃圾邮件、恶意网站等携带的ARP木马攻击。

当在局域网内使用外挂、接受垃圾邮件、访问恶意网站时,携带的病毒会将该机器的MAC地址映射到网关的IP地址上,向局域网内大量发送ARP包,从而致使同一网段地址内的其它机器误将其作为网关,这就是为什么掉线时内网是互通的,计算机却不能上网的原因。

(3)处理对策

步骤一:

在能上网时,进入MS-DOS窗口,输入命令:

ARP–a查看网关IP对应的正确MAC地址,将其记录下来。

注:

如果已经不能上网,则先运行一次命令ARP–d将ARP缓存中的内容删空,计算机可暂时恢复上网(攻击如果不停止的话),一旦能上网就立即将网络断掉(禁用网卡或拔掉网线),再运行ARP–a。

步骤二:

如果已经有网关的正确MAC地址,在不能上网时,手工将网关IP和正确MAC绑定,可确保计算机不再被攻击影响。

手工绑定可在MS-DOS窗口下运行以下命令:

ARP–s网关IP网关MAC

例如:

假设计算机所处网段的网关为192.168.168.4,本机地址为192.168.168.44在计算机上运行ARP–a后输出如下:

C:

\DocumentsandSettings>arp-a

Interface:

192.168.168.44---0x10005

InternetAddressPhysicalAddressType

192.168.168.400-13-32-03-19-9adynamic

其中00-13-32-03-19-9a就是网关192.168.168.4对应的MAC地址,类型是动态(dynamic)的,因此是可被改变。

被攻击后,再用该命令查看,就会发现该MAC已经被替换成攻击机器的MAC,如果大家希望能找出攻击机器,彻底根除攻击,可以在此时将该MAC记录下来,为以后查找做准备。

手工绑定的命令为:

ARP–s192.168.168.400-13-32-03-19-9a

绑定完,可再用ARP–a查看ARP缓存,具体操作如下:

C:

\DocumentsandSettings>arp-a

Interface:

192.168.168.44---0x10005

InternetAddressPhysicalAddressType

192.168.168.400-13-32-03-19-9astatic

这时,类型变为静态(static),就不会再受攻击影响了。

但是,需要说明的是,手工绑定在计算机关机重开机后就会失效,需要再绑定。

所以,要彻底根除攻击,只有找出网段内被病毒感染的计算机,令其杀毒,方可解决。

3.2防止ARP欺骗工具

(1)NBTSCAN

如果已有病毒计算机的MAC地址,可使用NBTSCAN软件找出网段内与该MAC地址对应的IP,即病毒计算机的IP地址,然后可报告网络中心对其进行查封。

1)NBTSCAN的使用方

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2