ARP病毒的攻击与防范论文_第1页
ARP病毒的攻击与防范论文_第2页
ARP病毒的攻击与防范论文_第3页
ARP病毒的攻击与防范论文_第4页
ARP病毒的攻击与防范论文_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、XXXXXXXX 专科毕业设计(论文) 题 目 ARP 病毒的攻击与防范 学生姓名 专业班级 学 号 系 别 指导教师(职称) ARP 病毒的攻击与防范 4 ARP 病毒的攻击与防范 摘 要 ARP攻击是指黑客利用ARP协议缺陷的基本原理,通过在区域内一台终端或服务 器上发布欺骗ARP广播包以达到进行盗取用户帐号、篡改网站内容、嵌入恶意代码、 发布不良信息、监听传输数据等非法活动的目的。 ARP欺骗原理在过去常被运用到简单的拒绝服务攻击中。然而,随着大量缺乏 管理且使用者流动性较大的网吧与其他公共上网环境的普及,互联网上开始出现许 多由ARP基本攻击与侦听、网页篡改等黑客技术相互结合的攻击方式

2、。这种ARP攻击 之所以能在各类公共上网设施内迅速蔓延是因为在拥有上千台机器的公众上网环境 或对外服务的IDC托管机房中,同一网段中往往有着来自不同单位或不同人群使用 的各类终端与服务器,由于其中各类系统的安全责任点归属复杂、使用人员流动性 大,造成环境内安全管理漏洞较大、安全盲点较多,从而使新一代以ARP欺骗为基 础的网页挂码或重定向攻击得以滋生。 而且,ARP攻击相对与通常攻击方式可能造成的更大的破坏在于:一般来说IP 地址的冲突可以通过多种方法和手段来避免,而ARP协议工作在更底层协议上,隐 蔽性更高。系统并不会判断ARP缓存的正确与否,无法像IP地址冲突那样给出提示。 很多黑客工具可以

3、随时发送ARP欺骗数据包和ARP恢复数据包,这对于公众上网环境 来说,就可以在任何权限的终端计算机上通过发送ARP数据包的方法来控制网络中 任何一台计算机甚至服务器或网络设备的网络连接、侦探通讯数据、篡改数据包以 加入病毒代码或不良信息进行传播。黑客还可以最大化的利用ARP欺骗原理,将其 与其他攻击方法组合后运用于多种攻击,如,侦听、拒绝服务、挂载病毒等。从而 达到多种攻击目的,如:窃取信息、病毒传播、破坏网络路由,暴力广告等等。 本文通过现象分析逐步推测出ARP的攻击原理。随后通过对ARP数据帧格式的解 析,证明了ARP协议漏洞是可以被用作ARP欺骗。在探讨ARP攻击的防御措施时,文 章从M

4、AC地址集中管理、ARP数据包探测以及系统安全加固三方面进行论述。对于公 众上网环境中存在可被ARP攻击的漏洞进行分析,并对整体防御构架进一步探索。 关键词 ARP 攻击/ARP 协议/安全防护 ARP 病毒的攻击与防范 4 目 录 第第 1 章绪论章绪论.1 1.1 引言.1 1.2 研究背景及意义.2 1.3 本文研究内容和组织结构.3 第第 2 章章 ARP 攻击原理综述攻击原理综述.3 2.1ARP 工作原理 .3 2.1.1以太网中的协议简介.3 2.1.2ARP协议原理.4 2.2 ARP 攻击的危害.6 2.3 ARP 攻击程序结构.7 2.4 ARP 协议缺陷.8 2.5 AR

5、P 表的操作方法.12 2.6 ARP 伪造帧格式.13 2.7 网关出口上的 ARP 欺骗.20 第第 3 章章 ARP 欺骗攻击的实现欺骗攻击的实现.22 3.1 构造 ARP 欺骗帧 .22 3.2 发送 ARP 欺骗帧 .28 3.3 同时发向两台机器的“MAN-IN-THE-MIDDLE”.29 3.4IP 数据包的转发.31 3.5 侦听.35 3.6 用 ARP 攻击 WINDOWS 系统.35 3.7 对交换机攻击.35 3.8 挂载病毒.36 第第 4 章章 ARP 欺骗攻击防范欺骗攻击防范.38 4.1 ARP 防护整体布局思路.38 4.2 计算机系统安全加固.40 4.

6、3 ARP 杀毒软件.40 4.4 ARP 攻击探测器.41 4.5 MAC 地址集中管理 .42 4.5.1传统的交换机 MACMAC 地址管理.43 4.5.2基于地址扫描的 MAC 中央管理.43 ARP 病毒的攻击与防范 4 总结总结 结论结论.45 致致 谢谢.46 参考文献参考文献.46 ARP 病毒的攻击与防范 4 第 1 章绪论 1.1 引言 网络安全问题一直是网络发展中的突出问题,2008年5月公安部公共信息网络 安全监察局举办的2008年度信息网络安全状况与计算机病毒疫情调查结果显示,我 国信息网络安全事件发生比例为62.7%,计算机病毒感染率下降为85.5%,感染计 算机

7、病毒、蠕虫和木马程序的情况依然最为突出,其次是网络攻击、端口扫描、垃 圾邮件和网页篡改。在发生的安全事件中,攻击或传播源涉及内部人员的达到 54%,比去年激增了15%;涉及外部人员的却锐减了18%。由此可见,计算机病毒 对网络安全的影响仍然很大,发生在局域网的网络安全问题也更为突出,因此,网 络安全形势依旧严峻。 网络的飞速发展改变了人们的工作和生活,在带来便利的同时也带来了很多麻 烦。由于网络安全问题的日益突出,使得计算机病毒、网络攻击和犯罪频繁发生。 根据国家计算机病毒应急处理中心发布的中国互联网网络安全报告(2009年上半 年)中的数据显示,2009年上半年,国家互联网应急中心(CNCE

8、RT)通过技术 平台共捕获约90万个恶意代码,比去年同期增长62.5%。每年都有相当数量具有一 定影响力的新计算机病毒出现,它们造成的破坏和损失也更大,人们花费在病毒防 治方面的精力和技术也越多。如2008年ARP(Address Resolution Protocol)病毒就 表现很突出,江民公司发布的07年上半年病毒报告及十大病毒中病毒排 名第四,瑞星公司发布的2007年上半年电脑病毒疫情和互联网安全报告中ARP 病毒排名第六。造成信息和网络安全问题的因素很多,主要可归纳为两方面。一方 面是技术方面的问题,目前的计算机操作系统和应用软件或多或少存在一定的安全 漏洞,而攻击者恰恰利用了这些漏

9、洞,由于计算机病毒防治技术相对要落后于病毒 攻击,因此会造成病毒在一定范围内蔓延;另一方面是管理方面的问题,由于管理 人员的技术水平不足和管理不善造成的安全问题也层出不穷,系统漏洞修复的滞后 和安全防护措施的不够给攻击者提供了机会。再加之,互联网是一个开放的系统, 任何微小的漏洞和病毒都会快速蔓延,甚至殃及全球,因此网络安全问题不容忽视。 ARP病毒很大程度上是因为技术方面的问题而导致的,因此,可以通过技术改进加 以防范。 ARP 病毒的攻击与防范 4 1.2 研究背景及意义 ARP协议是一个基础协议,它的应用非常广泛。ARP由口层复用,用于解析局 域网内任意合法第3层协议地址和第2层硬件地址

10、之间的映射关系。ARP协议工作在 局域网中,早期的协议设计者认为局域网是可信赖的,同时为了考虑传输效率,没 有加入安全机制。现在的网络规模已经今非昔比,局域网已经不再是原始意义上的 局域网络,但ARP协议仍然扮演着同样重要的角色,攻击者正是利用了这一特点, 利用该协议实现攻击目的。ARP欺骗攻击通过伪造IP地址和MAC地址映射来实现, 它造成目标主机ARP高速缓存信息错误,从而影响网络通信、实施网络欺骗。 目前,“ARP”骗技术正在被越来越多的病毒所使用,成为局域网安全的新杀 手。病毒预报(2008-2009)报道,国家计算机病毒应急处理中心通过互联网 络监测发现,一种新型“地址解析协议欺骗”

11、(简称:ARP欺骗)的恶意木马程序的 正在互联网络中传播,并且它会在局域网络中寻找网络数据响应包,在包内加入恶 意木马程序的代码信息,最终导致局域网中用户计算机系统感染木马程序,使得计 算机系统中的信息篡改或丢失。该“ARP欺骗”的恶意木马程序入侵某个局域网中 的计算机系统后,它会试图通过“ARP欺骗”手段截获所在局域网络内其它计算机 系统的通信信息,导致该局域网出现突然掉线,过一段时间后又会恢复正常的现象。 同时,网内的其他计算机系统也会受到影响,出现IP地址冲突、频繁断网、浏览器 频繁出错,以及一些系统内常用软件出现故障等现象。除外,它会对局域网络中所 有的数据包进行分析,过滤出网页浏览请

12、求的应答数据包,并在数据包里面插入恶 意代码,一旦计算机系统中的IE浏览器存在漏洞,那么计算机用户浏览网页的同时 就会自动下载并运行恶意木马程序。 “ARP欺骗”类恶意木马程序的危害性比较大,特别是对校园网、网吧等局域 网会造成大范围的破坏和影响,轻则影响网络使用,重则导致网络瘫痪,是个不容 忽视的问题。 目前,很多研究者已经给出了针对ARP欺骗攻击的防治方法,在一定程度上减 少了ARP问题的发生,这类方法主要是通过保护ARP高速缓存等方法来实现,它们 没有从根本上解决ARP欺骗问题,因为ARP欺骗问题的发生是因为ARP协议本身存 在在不可信网络中运行的漏洞。本文将从ARP协议本身出发,分析A

13、RP协议的不安 全因素,并针对存在的问题给出解决的具体方法,达到从根本上解决ARP病毒问题 ARP 病毒的攻击与防范 4 的目的。 1.3 本文研究内容和组织结构 本文主要目的是通过研究ARP协议缺陷,来阐述ARP攻击原理。然后根据此原 理剖析ARP侦听、病毒挂载等众多攻击手段。文章的创新点在于阐述了MAC地址 绑定等常用方法只能针对单机防护,而在大型公众上网环境中必须以MAC地址集 中管理、ARP广播包探测等综合管理手段相辅助,进行整体防护。文章最后以上海 东方数字社区为实例说明综合防护手段的实施方法。 第一章绪论。本章介绍了本文的课题研究背景,阐述了课题的研究目的以及意 义,然后说明了本文

14、的主要创新点和全文结构。 第二章 ARP攻击原理综述。本章首先用实例说明ARP攻击的危害性,然后详 细介绍ARP协议概念、ARP帧结构、以及其他相关概念。此章最后论证了ARP协议 缺陷是ARP攻击症结所在。 第三章 ARP欺骗攻击的实现。本章通过Socket程序代码说明如何实现ARP欺骗 攻击,然后通过程序代码叙述D.O.S拒绝服务攻击、侦听、病毒挂载、Windows系 统攻击、交换机攻击等多种混合类攻击的实现原理。 第四章 ARP欺骗攻击的防范。针对如何在拥有上千个终端大型社区网络中有 效防止ARP攻击蔓延,本章比较了常用的MAC地址绑定、系统安全加固等方法指 出要在大范围内防止ARP攻击需

15、要用综合手段,并提出ARP攻击探测、MAC地址 中央管理等适用于大型网络的新方法。 第五章总结与展望。本章对全文的研究工作进行总结,提出了主要结论,并介 绍了课题今后进一步的改进和发展方向。 第 2 章 ARP 攻击原理综述 2.1ARP 工作原理 2.1.1 以太网中的协议简介 IEEE的802标准委员会和802项目组定义了两种主要的LAN传输方法以太 网和令牌环网。以太网在IEEE802.3规范中被定义为LAN标准,令牌环网则在 IEEE802.5规范中定义。这两种方法的使用范围都很广泛,本文的研究针对以太网 ARP 病毒的攻击与防范 4 进行。 以太网利用了总线和星形拓扑结构的优点,采用

16、了CSMA/CD技术,网络上想 要发送帧的结点与另外的结点竞争资源,没有哪个结点的优先级比其他结点高,帧 按照物理地址查找其特定的目标,以太网通过一个广播信道向所有结点发送数据, 处于同一广播域的结点都会收到该数据。虽然每台主机都由一个IP地址,但是IP地 址是运行TCP/IP协议机器的通用标识,IP地址自身不能使报文到达其目的地,数据 传输必须依靠网络适配器唯一的硬件地址,该地址也被称为MAC地址或者数据链 路地址,该地址通常在网络适配器生产厂家唯一编址,具有全球唯一性。以太网中 的硬件地址采用48位长度表示,ARP协议为IP地址到对应的硬件地址之间提供动态 映射脚,因此,担负IP地址和硬件

17、地址转换的ARP协议具有非常重要的地位。 2.1.2ARP 协议原理 ARP协议起初是为DEC/Intel/Xerox的10兆以太网设计的,现在已允许用在其它 类型的网络上。当来自上层的数据要发送时,需要知道目标主机的硬件地址,这时 就需要通过IP地址找到相应的硬件地址,网络接口输出函数会调用ARP协议进行 ARP解析。ARP解析函数发送ARP请求(作为广播包发送),目标主机收到ARP请 求后发送ARP应答(作为单播包发送),当发送主机收到ARP应答后就可发送数据。 为了避免频繁发送ARP请求和应答,实现时在主机中都会有一个ARP高速缓存用来 存放已经解析成功的ARP信息,所以通常数据发送前先

18、查找ARP高速缓存,找不到 时才会发送ARP请求。 2.1.2.1ARP 分组格式 RFC826定义了ARP分组的格式,在以太网上使用的ARP分组格式见图2-1。该 分组由以太网首部和以太网ARP字段两部分组成。 图2-1ARP的分组格式 (1)以太网首部:以太网首部包括以太网目的地址、以太网源地址和帧类型 三部分,以太网目的地址是通信目的端的MAC地址,长度为48位,目的地址为全1 ARP 病毒的攻击与防范 4 是广播地址,这时,电缆上的所有以太接口都要接收此数据并进行处理。以太网源 地址是通信源端的MAC地址,长度为48位。帧类型表示以太网首部所携带数据的 类型,如果是IP帧则为0 x08

19、00,如果是帧则为0 x0806。 (2)以太网ARP字段:包括ARP首部和ARP数据两部分。其中ARP首部包括 硬件类型、协议类型、硬件地址长度、协议地址长度和操作码五部分,硬件类型字 段值为1表示是以太网地址,协议类型字段值为0 x8000表示IP地址,硬件地址长度 为6表示是以太网硬件地址,协议地址长度字段值为4表示是IP地址,操作码指出了 ARP操作的四种类型,其中ARP请求值为1,ARP应答值为2,RARP请求和应答分 别人3和4(可参见RARP协议的相关资料,本文不进行介绍);ARP数据部分包括 了发送方硬件地址、发送方IP地址、目的硬件地址和目的IP地址,它们根据不同情 况进行填

20、充,ARP请求包填充除目的硬件地址以外的所有数据,而应答数据 则填充全部数据。 2.1.2.2ARP 发包和收包流程 (1)发包 当网络层往下传来一个包,路由选择将确定该包下一跳的协议地址(目的主 机的口地址),为了正确发送该数据包,必须知道目的主机的硬件地址,这时就需 要进行IP地址至MAC地址的解析,为此需要发送ARP请求,即发送一个帧类型字段 为0 x0806的以太网包,该包中以太网目的地址全为(ARP请求以广播形式发送), 除了目的硬件地址外全部填充,其中以太网源地址、发送者硬件地址和发送者IP地 址填充本机的信息,ARP操作码填充1,协议地址长度填充4,硬件地址长度填充 6,目的IP

21、地址填充路由确定的下一跳协议地址,目的硬件地址的值是想要得到的 值。ARP请求包会被广播到所有在以太网电缆上的主机,如果目的主机得到该ARP 请求包则会发送一个ARP应答包,如果一定时间没有收到ARP应答包,则会继续发 送若干次,如果还没有收到应答包,则认为该主机不可达到,停止发送ARP请求。 为了提高通信效率,通常主机中会保存已经解析到的IP和MAC地址的映射,通常 称之为ARP高速缓存。它保存了IF索引(物理接口索引)、IP和MAC地址的映射, 以及该映射的类型信息等,类型有4种可能的值,值2意味着表项是无效的,值3意 味着映射是动态的(表项可能改变),值4说明是静态项(表项不变化),值1

22、意味 着不是上面的任何一种情况。动态表项有一定的生存期,动态ARP表项如果在一定 ARP 病毒的攻击与防范 4 时间没有被使用,则会因超时被删除,如果在生存期内被使用,则生存期会被重置 为最大值。通常,在数据发送前先会查找ARP高速缓存寻找相应的MAC地址,如 果没有找到才会发送相应的ARP请求。 免费ARP 主机在启动时会主动发送一个ARP请求包,该包中发送端的协议地址和目的端 的协议地址一致。免费ARP包可以检测在以太网中是否存在IP地址冲突,可以使其 他机器更新其相应信息,使得网络通信快速恢复。如果发送免费ARP的主机正好改 变了硬件地址(有可能是更换网络适配器,然后重新启动),那么这个

23、免费ARP就 可以使其它主机ARP高速缓存中旧的硬件地址进行相应的更新。 (2)收包 当接口收到ARP请求包后会进行检查,检查该包的硬件地址类型及长度和协 议地址类型及长度是不是符合本接口,如果符合,那么在ARP高速缓存中查找发送 者IP地址相关的映射,如果找到一个相符的表项,那么更新此表项(覆盖原来的硬 件地址为新的硬件地址)。 判断本机是不是通信的目标主机,如果是,并且没有进行过中的更新,那 么更新高速缓存。 如果收到的是一个ARP请求,那么生成一个相应的ARP应答包,并且将这个 ARP应答包发送给对方,ARP应答包以单播的形式发送,它填充了ARP包中的所有 内容。 2.2 ARP 攻击的

24、危害 ARP欺骗不同于通常攻击可造成的巨大破坏。ARP欺骗可以造成内部网络的混 乱,某些被欺骗的计算机无法正常访问内外网,让网关无法和客户端正常通信。实 际上他的危害还不仅仅如此,一般来说IP地址的冲突我们可以通过多种方法和手段 来避免,而ARP协议工作在更低层,隐蔽性更高。系统并不会判断ARP缓存的正确 与否,无法像IP地址冲突那样给出提示。而且很多黑客工具,可以随时发送ARP欺 骗数据包和ARP恢复数据包,这样就可以实现在一台普通计算机上通过发送ARP数 据包的方法来控制网络中任何一台计算机的网络连接截获其通讯数据并可做篡改以 加入病毒代码进行传播,甚至还可以直接对网关进行攻击,让所有连接

25、网络的计算 机都无法正常上网。这点在以前是不可能的,因为普通计算机没有管理权限来控制 ARP 病毒的攻击与防范 4 网关所以说。ARP欺骗的危害是巨大的,而且非常难对付,非法用户和恶意用户可 以随时发送ARP欺骗和恢复数据包,这样就增加了网络管理员查找攻击源的难度。 归纳ARP欺骗类攻击的危害性如下: (1)攻击点范围广:不需要攻占具体服务器,在不获得目标主机的权限的条件 下,只要在网络环境的任何一个点上安放一台“肉机”便可以感染整个网段; (2)攻击非常隐蔽:不需要改动任何目标主机的页面或者是配置,在网络传输的 过 程中间直接插入病毒的代码; (3)发觉困难:如没有机房网络管理人员协助协查,

26、服务器系统管理员光靠系 统日志无法在短时间内找到攻击源; (4)恢复复杂:网站管理员即时发现被攻击后,但是从系统层面上无法自己清 除; (5)攻击手段变化多样:黑客可以最大化的利用ARP欺骗,将他与其他攻击方法 组合后运用于多种攻击,如,侦听、拒绝服务、挂载病毒。从而实现多中攻击目的, 如:窃取信息、病毒传播、破坏网络路由,暴力广告等等; 2.3 ARP 攻击程序结构 随着互联网的发展,ARP攻击已经从早期简单模式,即发送ARP回应包使收欺 骗机器无法上网发展到不只是对ARP协议层的攻击。攻击者利用ARP信任局域的重 大缺陷作为突破口,并通过一系列数据包转发的方法模拟出正常的通讯手段来欺骗 数

27、据收发双方,然后作为一个透明的网关在当中进行监听与数据伪装的方法。 图2-2 ARP攻击的结构框架图 整个攻击的结构如图2-2所示,所有ARP类攻击的核心原理是ARP协议MAC地 址欺骗。在数据链接层MAC地址欺骗基础上使用类似于路由器的数据包转发技术 ARP 病毒的攻击与防范 4 可形成对攻击目标的网络数据侦听。然后便可以与各种攻击方式相互结合,达到数 据篡改、数据监听、停止服务攻击,以及病毒挂载的目的。 2.4 ARP 协议缺陷 ARP攻击的突破口是ARP协议缺陷,为了说明黑客程序是如何进行ARP欺骗进 而修改ARP表,首先需要研究ARP协议的工作原理。ARP协议是“Address Res

28、olution Protocol”(地址解析协议)的缩写。位于OSI网络七层模型中的第二层 数据链路层。在数据链路层中网络中实际传输的封装数据包为数据“帧”,帧的传播 寻址方法是依靠目标主机的MAC地址。在以太网中,一个主机要和另一个主机进 行直接通信,必须要知道目标主机的MAC地址。这个目标MAC地址是通过地址解 析协议获得的。 Internet上常用到DNS域名解析是将IP地址与域名对应起 来,而数据链接层的“MAC地址解析”原理与DNS相似,其实就是将网卡的MAC 硬件地址与IP地址对应,整个“MAC地址解析”的过程其实就是主机在发送帧前 将目标IP地址转换成目标MAC地址的过程。而AR

29、P协议的基本功能就是通过目标设 备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。 图 2-3 互联网名字解析协议原理 在图2-3所示的互联网名字解析方法中,每台使用TCP/IP协议上网的电脑内部 都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的。这个高速缓存存放 ARP 病毒的攻击与防范 4 了最近Internet地址到硬件地址之间的映射记录。高速缓存中每一项的生存时间一般 默认为2 0分钟(可通过注册表修改),缓存的起始时间从被创建时开始算起。 ARP缓存表下图所示。 图2-4 ARP缓存表 举例说明IP-MAC地址表转换工作原理。在192.168.1.0网段中有四

30、台主机,每 台主机都会存有一张 IP-MAC地址对照关系如表2-2。 表 2-1IP-MAC 地址对照关系 根据表2-1的配置,以主机A(192.168.1)向主机B(192.168.2)发送数 据为例。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。 如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就 可以;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一 个广播,目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主 机发出询问:“192. 168.1.2的MAC地址是什么?”网络上其他主机并不响

31、应 ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.2 的MAC地址是“bb-bb-bb-bb -bb-bb”。这样,主机A就知道了主机B的MAC地 址,它就可以向主机B发送信息了。同时它还更新了自己的ARP缓存表,下次再向 ARP 病毒的攻击与防范 4 主机B发送信息时,直接从ARP缓存表里查找就可以了。 ARP缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会 被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。整个ARP查询过程 如图2-5所示。 图2-5 正常ARP查询流程 从图2-5中可以发现,ARP协议存在一个重大的缺陷:每

32、台主机的ARP表的更 新是信任广播域内所有机器的回应包的,也就是在说在ARP协议中,接受回应帧的 主机无法验证回应包的真伪。所以,在ARP协议中就很容易实现在以太网中的ARP 欺骗。 在表2-1所示环境,对目标A进行欺骗。C发出ARP回应数据帧到A,告诉A“B 的MAC地址是CC-CC-CC-CC-CC”,A接受了假回应包,但是无法验证,于是就将 自己的缓存更新了。结果,A去Ping主机却发送到了CC-CC-CC-CC-CC这个地址 ARP 病毒的攻击与防范 4 上。如果进行欺骗的时候,把B的MAC地址欺骗为CC-CC-CC-CC-CC-CC,于是A 发送到B上的数据包都变成发送给C的了。如此

33、一来C能够接收到A发送的数据桢, 数据桢的截获成功。 由于ARP 缓存表项是动态更新的,其生命周期默认是两分钟,如果再没有新 的信息更新,ARP 映射项将会自动去除。所以,如果要保持A上的错误信息,C接 下来要做的就是一直连续不断地向 A和 B发送虚假的 ARP 响应数据帧,让A的 ARP缓存中保持被篡改了的映射表项。 图2-5 ARP欺骗的流程 图2-5演示了如何运用ARP协议固有的缺陷对其进行欺骗,但是仅仅这种欺骗 并不能完成对A与B之间数据交换的窃听与篡改,原因是,光有第二层的欺骗是不 够的,在建立起数据连接层欺骗后,虽然A对这个变化一点都没有意识到,但是接 ARP 病毒的攻击与防范 4

34、 下来在进行网络层TCP/IP握手以及应用层会话建立时由于C上并没有能模仿B的应用 端口监听,所以A和C是无法建立连续连接的,通常当TCP/IP三次握手不成功时,A 与C的接将断开,C对接收到A发送给B的数据包可没有转交给B。这种攻击最多也就 造成A与B之间连接中断,无法造成更大危害。本章介绍数据链接层协议中ARP协议 的先天缺陷,也是整个ARP欺骗攻击的突破口。 2.5 ARP 表的操作方法 2.4中指出了ARP欺骗的突破点ARP协议缺陷,可见对计算机内部ARP缓存表 的修改是ARP欺骗的关键所在。在大多数的TCP/IP实现中,ARP是一个基础协议, 但是它的运行对于应用程序或系统管理员来说

35、一般是透明的。ARP高速缓存在它的 运行过程中非常关键,系统管理员可以用ARP命令对高速缓存进行检查和操作。 高速缓存中的每一项内容都有一个定时器,根据它来删除不完整和完整的表项。 ARP命令可以显示和修改ARP高速缓存中的内容。下面说明操作系统中对ARP缓存 表的基本操作方法。 (1)ARP命令的使用:进行ARP欺骗攻防的基本操作是使用Windows的命令ARP 来实现IP地址和MAC地址的映射与绑定。比如在Windows XP的命令提示符窗口中 键入“arp -a”或“arp -g”可以查看ARP缓存中的内容;键入“arp -d IPaddress”表示删除 指定的IP地址项(IPaddr

36、ess表示IP地址)。arp命令的其他用法可以键入“arp /?”查看 到。 (2)ARP命令其他参数的功能:超级用户可以用选项- d来删除ARP高速缓存中 的某一项内容。另外,可以通过选项- s来增加高速缓存中的内容。这个参数需要主 机名和以太网地址:对应于主机名的IP地址和以太网地址被增加到高速缓存中。新 增加的内容是永久性的(比如,它没有超时值),除非在命令行的末尾附上关键字 temp。位于命令行末尾的关键字pub和-s选项一起,可以使系统起着主机ARP代理 的作用。系统将回答与主机名对应的IP地址的ARP请求,并以指定的以太网地址作 为应答。如果广播的地址是系统本身,那么系统就为指定的

37、主机名起着委托ARP代 理的作用。 (3)特殊类别ARP的操作:委托ARP(当路由器对来自于另一个路由器接口的 ARP请求进行应答时)和免费ARP(发送自己IP地址的ARP请求,一般发生在引导 ARP 病毒的攻击与防范 4 过程中)。微软的ISA Server中没有提供对于MAC地址的控制功能,这是因为MAC 地址只能在本地网络中使用,当数据包跨越路由器时,数据包中主机的源MAC地 址就会被路由器的出站接口的MAC地址所代替,这个时候,使用MAC地址来进行 控制就不适用了。所以只要是企业级的硬件或者软件防火墙,都基本没有提供对 MAC地址的控制功能。不过在Windows中,如果安装了TCP/I

38、P网络协议组件,就可 以执行命令ARP。ARP命令的作用是查看本机的ARP缓存、静态绑定IP地址和MAC 地址和删除静态绑定项。其实绑定IP地址和MAC地址的本意是为了减少ARP广播流 量,只是可以利用这一功能来控制IP地址的使用。 (4)不同操作系统中ARP设置的差异:在Windows server 2003和XP以前的WIN DOWS系统中,就算设置了静态MAC地址绑定项,同样会通过接收其他主机的数 据包而更新已经绑定的项。而在Windows server 2003和XP中,静态绑定的项不会被 动态更新,直到TCP/IP协议终止为止,例如重启计算机。如果要创建永久的静态 MAC地址绑定项,

39、可以写一个脚本文件来执行ARP静态绑定,然后使用计划任务 在启动计算机时执行该脚本即可。 (5)ARP高速缓存超时设置:在ARP高速缓存中的表项一般都要设置超时值。默 认情况下ARP缓存的超时时限是两分钟,如果再没有新的信息更新, ARP 映射项 会自动去除。所以,为了保持A与C被修改的ARP表,B一直连续不断地向A和C发 送这种虚假的 ARP 响应包。可以在注册表中进行修改。可以修改的键值有两个, 都位于 HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services TcpipParameters。 键值1:ArpCacheLife,类型为Dwor

40、d,单位为秒,默认值为 120。键值2:ArpCacheMinReferencedLife,类型为Dword,单位为秒,默认值为 600这些键值默认是不存在的,如果想修改,必须自行创建。修改后重启计算机后 生效。如果ArpCacheLife的值比ArpCacheMinReferencedLife的值大,那么ARP缓存 的超时时间设置为ArpCacheLife的值。如果ArpCacheLife的值不存在或者比 ArpCacheMinReferencedLife的值小,那么超时时间设置为120秒。对于正在使用的 ARP缓存,超时时间则设置为ArpCacheMinReferencedLife的值。

41、2.6 ARP 伪造帧格式 在ARP攻击中,黑客是运用ARP协议缺陷更改ARP缓存表的。要发动ARP欺骗 攻击需要获得ARP请求与应答帧的格式。ARP帧使用是工作在数据链接层的协议, ARP 病毒的攻击与防范 4 它也可以用于其他类型的网络以解析IP地址以外的地址(报文第13、14两字节的 “帧类型”以及15、16字节“硬件类型”以及17、18字节“协议类型”说明了解析 的是什么网络)。对于ARP攻击我们仅研究在以太网地址解析时的格式。ARP请求 和应答帧的格式如图2-7所示: 图2-7ARP数据帧格式 (1)如图2-7所示,以太网报头中的前两个字段是以太网的源地址和目的地址。 在以太网首部最

42、后两个字节长的以太网“帧类型”表示后面数据的类型。在表示 ARP请求或应答时该字段被设置成“0 x0806”。 (2)头部后面的2字节的“硬件类型”和两字节的“协议类型”用来描述ARP分 组中的各个字段。在以太网的解析中,一个ARP请求分组询问“协议类型”填写 IP(0 x0800即表示IP),硬件类型填写以太网(值为1即表示以太网)。这些类型 字段的值在以太网数据帧中是固定的。 (3)第19与20字段的两个1字节的字段,“硬件地址长度”和“协议地址长度” 分别指出硬件地址和协议地址的长度。当用于在以太网上进行IP地址的ARP查询时, “硬件地址长度”的值为6,“协议地址长度”为4。注意:此处

43、是以字节为单位。 (4)接下来的OP为“操作字段”,可以选择四种操作类型,分别是ARP请求 (值为1)、ARP应答(值为2)、R ARP请求(值为3)和R ARP应答(值为4)。 由于在ARP请求和ARP应答时的“帧类型”字段值相同(都为0 x0806),所以需要 从这个字段来区分是请求还是应答。 (5)报文最后的四个字段将重复出现发送与接受端的硬件地址(在以太网的数 据帧报头中出现过)。最后四个字段分别是:发送源以太网地址、目的地以太网地 址、发送源IP地址以及目的地IP地址。 (6)另外,由于ARP请求或回答的数据帧长都是42字节(28字节的ARP数据加上 14字节的以太网帧头),因此,每

44、一帧都必须加入填充字符以达到以太网数据帧60 ARP 病毒的攻击与防范 4 字节的最小长度要求。 表2-2 ARP帧机构实验的IP-MAC地址对照关系 (1)假设在表2-2网络环境中:A主机的IP地址为192.168.1.1,它现在需要与IP为 192.168.1.2的主机(主机B)进行通讯,那么将进行以下动作: (2)A主机查询自己的ARP缓存列表,如果发现具有对应于目的IP地址 192.168.1.2的MAC地址项,则直接使用此MAC地址项构造并发送以太网数据包, 如果没有发现对应的MAC地址项则继续下一步; (3)在A主机发出ARP解析请求广播的过程中,A会发出一个目的MAC地址是 FF

45、:FF:FF:FF:FF:FF的ARP请求帧,来请求IP为192.168.1.2的主机回复MAC地址; 图2-8 ARP请求数据帧格式 (4)B主机收到ARP解析请求广播后,回复给A主机一个ARP应答数据包,其中 包含自己的IP地址192.168.1.2和MAC地址bb-bb-bb-bb-bb-bb; ARP 病毒的攻击与防范 4 图2-9 ARP回复数据帧格式 (5)A接收到B主机的ARP回复后,将B主机的MAC地址放入自己的ARP缓存列 表,然后使用B主机的MAC地址作为目的MAC地址,B主机的IP地址 (192.168.1.2)作为目的IP地址,构造并发送以太网数据包. (6)如果A主机

46、还要发送数据包给192.168.1.2,由于在ARP缓存列表中已经具有 IP地址192.168.1.2的MAC地址,所以A主机直接使用此MAC地址发送数据包,而不 再发送ARP解析请求广播;当此缓存地址项超过两分钟没有活动(没有使用)后, 此ARP缓存将超时被删除。 以上是正常情况下ARP查询与回复的数据帧结构,如果使用ARP欺骗,从C发 送伪造的ARP数据包,则当C收到一份目的端为B的ARP请求广播报文后,C会把自 己的硬件地址填进去,然后将目的端的MAC与IP地址写成发送源A的物理与逻辑地 址,源MAC地址伪装成自己的地址,源IP地址填写B的IP。最后把操作字段置为 2,发回数据帧。伪装的

47、数据帧结构如图2-10示。 图2-10ARP欺骗数据帧格式 2.7 网关出口上的 ARP 欺骗 在公众上网环境的实际运行中,最大的威胁就是服务器在网关出口处被加入中 间层欺骗服务器“man-in-the-middle”。利用上文所说的ARP欺骗报文以及ARP代理 中存在的缺陷,可以在服务器和网关之间插入一个“伪造的网关”,在上面进行数 ARP 病毒的攻击与防范 4 据的重定向与篡改操作。目前,一般的交换网络对探测进行了限制,目的是限制探 测的深入程度,让他被隔绝在局域网内部。但是,只要主机以及交换设备中的ARP 缓存表依然是动态的,利用ARP协议漏洞,依然可以形成“man-in-the-mid

48、dle”攻击 方式。 图2-14 网关类ARP欺骗 如图2-14示,主机C同时向主机A与网关B发出ARP应答数据包,之后主机A的 缓存表中网关的MAC地址变成CCCCCCCCCCCC。所以当A要发出数据包时,他会 将数据发往主机C,C又将数据包转发给网关B,由B转发到目的地网络。所以此时 C相当与A的网关,插入A与B的路由之间,所以此时C能够收取A与公网之间的所 有数据并可进行篡改。此时,相当于网络中的路由设备被黑客攻占了。 第第3章章ARP欺骗攻击的实现欺骗攻击的实现 3.1 构造 ARP 欺骗帧 在知道了ARP欺骗攻击的原理以及ARP数据请求与响应帧格式后,接下来就是 研究如何通过编程实现

49、ARP攻击黑客工具。在ARP攻击程序编写中,使用Parcket32 开发包编写程序实现攻击。假设使用windows 2000/XP系统,则在ARP协议并不只 在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会 立即对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因 ARP 病毒的攻击与防范 4 此,在表2-2示例的网络环境中,C向A发送一个自己伪造的ARP应答,而这个应答 中的数据为发送方IP地址是192.168.1.2(B的IP地址),MAC地址是CC-CC-CC- CC-CC-CC(B的MAC地址本来应该是BB-BB-BB-BB-BB-

50、BB,这里被用C的MAC 地址伪造了)。当A接收到C伪造的ARP应答后,由于A并不知道地址是被C伪造的, 就会更新自己的ARP缓存。现在192.168.1.2的 MAC地址在A上被改变成了攻击源C 的MAC地址。以下来研究如何使用编程实现这样的ARP欺骗。编写欺骗程序的主 要思路是:首先,构造一个ARP数据包,其中包含目标主机的IP地址与欺骗主机的 MAC地址;然后,将这个arp数据包利用底层API驱动发送到A机器,致使A修改自 己的缓存。ARP报文使用是工作在数据链接层的协议,所以可以用于其他类型的网 络以解析IP地址以外的地址(报文第13、14两字节的“帧类型”以及15、16字节 “硬件类

51、型”以及17、18字节“协议类型”说明了解析的是什么网络)。在以太网 上解析IP地址时,ARP请求和应答分组的格式如图2-8所示,以太网报头中的前两 个字段是以太网的源地址和目的地址。在以太网首部最后两个字节长的以太网“帧 类型”表示后面数据的类型。在表示ARP请求或应答时该字段被设置成“0 x0806”。 头部后面的2字节的“硬件类型”和两字节的“协议类型”用来描述ARP分组中的 各个字段。在以太网的解析中,一个ARP请求分组询问“协议类型”填写 IP(0 x0800即表示IP),硬件类型填写以太网(值为1即表示以太网)。这些类型 字段的值在以太网数据帧中是固定的。第19与20字段的两个1字

52、节的字段,“硬件 地址长度”和“协议地址长度”分别指出硬件地址和协议地址的长度。当用于在以 太网上进行IP地址的ARP查询时,“硬件地址长度”的值为6,“协议地址长度” 为4。注意:此处是以字节为单位。接下来的OP为“操作字段”,可以选择四种操 作类型,分别是ARP请求(值为1)、ARP应答(值为2)、R ARP请求(值为3) 和R ARP应答(值为4)。由于在ARP请求和ARP应答时的“帧类型”字段值相同 (都为0 x0806),所以需要从这个字段来区分是请求还是应答。 报文最后的四个字段将重复出现发送与接受端的硬件地址(在以太网的数据帧 报头中出现过)。最后四个字段分别是:发送源以太网地址

53、、目的地以太网地址、 发送源IP地址以及目的地IP地址。 另外,由于ARP请求或回答的数据帧长都是42字节(28字节的ARP数据加上14 字节的以太网帧头),因此,每一帧都必须加入填充字符以达到以太网数据帧60字 ARP 病毒的攻击与防范 4 节的最小长度要求。 在表2-2示例的网络环境中,当主机A在自己的缓存中找不到B的MAC地址而需 要进行询问时。A发送了一个ARP询问报文,在这个报文中,目的地址为全1(FF- FF -FF-FF-FF-FF)的特殊广播地址。广播域内链接的所有以太卡网都会接收广播 的数据帧。广播报文结构如图3-1所示: 图3-1 ARP广播帧构造 对于一个ARP请求来说,

54、除目的端硬件地址外的所有其他的字段都有填充值。 当系统收到一份目的端为本机的ARP请求报文后,它就把硬件地址填进去,然后用 两个目的端地址分别替换两个发送端地址,并把操作字段置为2,最后把它发送回 去。所以,我们要进行ARP欺骗所需要构造的伪装应答报文如下所示: 图3-2 ARP欺骗帧构造 构造报文的结构代码可以这样写: (1)首先我们定义“14字节的以太网头部”结构ETHHDR1: typedef struct ethhdr1( /*定义“14字节的以太网头部”*/ unsigned chareh_dst6; /*目标以太网地址 6字节 */ unsigned chareh_src6; /*

55、源以太网地址 6字节 */ unsigned shorteh_type;) /*帧类型 2字节*/ ARP 病毒的攻击与防范 4 ETHHDR1, *PETHHDR1; (2)定义“28字节的ARP请求或应答”的结构: typedef struct arphdr1 /*定义“28字节的ARP请求或应答”*/ unsigned shortarp_hrd; /*帧类型 2字节*/ unsigned shortarp_pro; /*协议类型 2字节 */ unsigned chararp_hln; /*硬件地址(MAC)长度 1字节 */ unsigned chararp_pln; /*协议地址(I

56、P)长度 1字节*/ unsigned shortarp_op; /*op操作类型2字节 */ unsigned chararp_sha6; /*源以太网地址 6字节*/ unsigned longarp_spa; /*源IP网地址 4字节*/ unsigned chararp_tha6; /*目标以太网地址 6字节*/ unsigned longarp_tpa; /*目标以IP地址 4字节*/ ARPHDR1, *PARPHDR1; (3)接下来,将构造好的前14字节与后28字节连在一起,成为ARP报文: typedef struct arpPacket1 /*构造42字节ARP报文arpP

57、acket1结构*/ ETHHDR1 ethhdr1; /*“14字节的以太网头部”结构*/ ARPHDR1 arphdr1; /*“28字节的ARP请求或应答”结构*/ ARPPACKET1, *PARPPACKET1; (4)定义数据报文中的常量 #define T_IP 0 x0800 /*常量IP协议表示IP的类型值*/ #define T_ARP 0 x0806 /*常量ARP表示ARP的类型值 */ #define H_ARP 0 x0001 /*值为1即表示以太网硬件类型*/ #define OP_ARPR 0 x0001 /* OP操作类型1表示ARP请求*/ #define

58、OP_ARPB 0 x0002 /* OP操作类型2表示ARP应答 */ (5)当报文结构定义好后,需要定义一个报文并把数据填入: ARPPACKET1 ARPPacket1; /*定义一个数据报文结构ARPPacket1*/ ARP 病毒的攻击与防范 4 ToMacAddr(AAAAAAAAAAAA, MacAddr) /*将字符串AAAAAAAAAAAA 转化成MAC地址 */ memcpy(ARPPacket1.e1hhdr1.eh_dst, MacAddr, 6); /*定义目的MAC地址 AAAAAAAAAAAA*/ ToMacAddr(CCCCCCCCCCCC, MacAddr)

59、/*将字符串CCCCCCCCCCCC转化 成MAC地址*/ memcpy(ARPPacket1.ethhdr1.eh_src, MacAddr, 6); /*定义源MAC地址 CCCCCCCCCCCC*/ ARPPacket1.ethhdr1.eh_type = htons(T_ARP); /*常量ARP表示ARP的类型值 */ ARPPacket1.ethhdr1.arp_hrd = htons(H_ARP); /*值为1即表示以太网硬件类型*/ ARPPacket1.ethhdr1.arp_pro = htons(T_IP); /*常量IP协议表示IP的类型值*/ ARPPacket1.e

60、thhdr1.arp_hln = 6; /*MAC地址长度为6字节*/ ARPPacket1.ethhdr1.arp_pln = 4; /*IP地址长度为4字节*/ ARPPacket1.ethhdr1.arp_op = htons(OP_ARPB); /* OP操作类型2表示ARP应答 */ ToMacAddr(CCCCCCCCCCCC, MacAddr); memcpy(ARPPacket1.arphdr1.arp_sha, MacAddr, 6);/伪造的B的MAC地址 ARPPacket1.arphdr1.arp_spa = inet_addr(192.168.1.2); /B的IP地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论