基于winpcap中的arp欺骗诊断分析毕业设计(编辑修改稿)内容摘要:

的是“帧 ( frame) ”,帧里面是有目标主机的 MAC 地址的。 在以太网中,一个主机要和另一个主机或网关进行直接通信,必 须要知道目标主机的 MAC 地址。 但这个目标 MAC 地址是通过 ARP(地址解析协议)获得的 [6]。 所谓“地址解析”就是主机在发送帧前将目标 IP 地址转换成目标 MAC 地址的过程。 ARP 协议的基本功能就是通过目标设备的 IP 地址,查询目标设备的 MAC 地址,以保证通信的顺利进行。 ARP 协议对网络安全具有重要的意义。 通过伪造 IP 地址和 MAC 地址实现 ARP 欺骗,能够在网络中产生大量的 ARP 通信量使网络阻塞。 ARP 和 RARP 都是通过一对请求和应答报文来完成解析的。 ARP 和 RARP 请求应答报文格式是相同的 ,通过操作类型字段来区分,这个思想在 TCP/IP 协议的设计中被反复利用。 表 地址解析报文格式 00 01 02 03 04 05 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Bit 广播 MAC 地址(全 1) 广播 MAC 地址(全 1) 源 MAC 地址 源 MAC 地址 协议类型 硬件类型 协议类型 硬件地址长度 协议地址长度 操作类型 源 MAC 地址 源 MAC 地址 源 IP 地址 源 IP 地址 目标 MAC 地址(全 0) 目标 MAC 地址(全 0) 目标 IP 地址 表 (这里是 Ether II 类型)的帧头部。 其中,第一个字段是广播类型的 MAC 地址: 0XFFFFFFFFFFFF,其目标是网络上的所有主机。 第二个字段是源 MAC地址,即请求地址解析的主机 MAC 地址。 第三个字段是协议类型,这里用 0X0806代表封装的上层协议是 ARP 协议。 硬件类型: 16比特( 2字节),定义 ARP 实现在何种类型的网络上 ,以太网的硬件类型值为“ 1”。 协议类型: 16位, 2字节, 定义使用 ARP/RARP 的协议类型, 0x0800表示 IPv4。 硬件地址长度: 1字节,以字节为单位定义物理地址的长度,以太网为 6。 协议地址长度: 1字节,以字节为单位定义协议地址的长度, IPv4为 4。 操作类型: 16比特, 2字节,定义报文类型, 1为 ARP 请求, 2为 ARP 应答, 3为 RARP 请求,4为 RARP 应答。 发送方硬件地址:发送方的 MAC 地址, 6字节。 陕西理工学院毕业设计 第 5 页 共 48 页 发送方协议地址:发送方的协议地址 (IP), 4字节, RARP 请求中不填此字段。 目的硬件地址: 6字节, ARP 请求中不填此字段(待解析)。 目的协议地址: 4字节,长度取决于协议地址长度,长度一共 28字节。 ARP 工作原理 ARP 工作原理将 IP 地址翻译成 MAC 地址。 比如: A机 要与 B机通讯在局域网中处在数据链路层。 这个层之间的主机互相通讯是通过 MAC 地址互相区分的。 所以主机 A与主机 B通讯主机 A 知道主机 B的 IP 地址是不能通讯的,那么,主机 A就要用 ARP 协议,通过,广播的方式去寻找主机 B的 MAC 地址,当主机 B接收到 ARP 的广播后,就会主动与主机 A联系并告知主机 A主机 B的 MAC地址是什么这样主机 A知道了主机 B 的 MAC 地址后 ,就可以顺利的与主机 B通讯了,进行 ARP 攻击最直接的方法,就是使用局域网中的一台机器去欺骗这个局域网里的其他机器让他们相信你使用的这台机器就是其他机器想要保持通讯的网关 [7]。 ARP 协议的工作原理在每台安装有 TCP/IP 协议的电脑里都有一个 ARP 缓存表,表里的 IP 地址与 MAC 地址是一一对应的,我们以主机 A( )向主机 B( )发送数据为例。 当发送数据时,主机 A会在自己的 ARP 缓存表中寻找是否有目标 IP 地址 [8]。 如果找到了,也就知道了目标 MAC 地址,直接把目标 MAC 地址写入帧里面发送就可以了;如果在 ARP 缓存表中没有找到相对应的 IP 地址,主机 A 就会在网络上发送一个广播,目标 MAC 地址是“ ”,这表示向同一网段内的所有主机发出这样的询问:“ MAC地址是什么。 ”网络上其他主机并不响应 ARP 询问,只有主机 B接收到这个帧时,才向主机 A做出这样的回应:“ 的 MAC 地址是 00aa0062c609”。 这样,主机 A 就知道了主机 B的 MAC 地址,它就可以向主机 B发送信息了。 同时它还更新了自己的 ARP 缓存表,下次再向主机B发送信息时,直接从 ARP 缓存表里查找就可以了。 ARP 缓存表采用了老化机制,在一段时间内如果表中的某一行没有使用,就会被删除,这样可以大大减少 ARP 缓存表的长度,加快查询速度。 表 ARP 缓存表 每台安装有 TCP/IP 协议的电脑里都有一个ARP 缓存表,表里的 IP 地址与 MAC 地址是一一对应的,如下表所示。 主机 IP 地址 MAC 地址 A aaaaaaaaaaaa B bbbbbbbbbbbb C cccccccccccc D dddddddddddd 如表 ,ARP 缓存表是可以查看的,也可以添加和修改。 在命令提示符下,输入“ ARPA”就可以查看 ARP 缓存表中的内容了。 用“ ARPD”命令可以删除 ARP 表中某一行的内容;用“ ARPS”可以手动在 ARP 表中指定 IP 地址与 MAC 地址的对应。 当一个基于 TCP/IP 的应用程序需要从一台主机发送数据给另一台主机时,它把信息分割并封装成包,附上目的主机的 IP 地址。 然后,寻找 IP 地址到实际 MAC 地址的映射,这需要发送 ARP广播消息。 当 ARP 找到了目 的主机 MAC 地址后,就可以形成待发送帧的完整以太网帧头。 最后,协议栈将 IP 包封装到以太网帧中进行传送 [9]。 假如当主机 A要和主机 B通信(如主机 A Ping主机 B)时。 主机 A会先检查其 ARP 缓存内是否有主机 B的 MAC 地址。 如果没有,主机 A会发送一个 ARP 请求广播包,此包内包含着其欲与之通信的主机的 IP 地址,也就是主机 B的 IP 地址。 当主机 B收到此广播后,会将自己的 MAC 地址利用ARP 响应包传给主机 A,并更新自己的 ARP 缓存,也就是同时将主机 A的 IP 地址 /MAC 地址对保存起来,以供后面使用。 主机 A在得到主机 B的 MAC 地址后,就可以与主机 B通信了。 同时,主机 A也将主机 B的 IP 地址 /MAC 地址保存在自己的 ARP 缓存内。 为了节省 ARP 缓冲区内存,被解析过的 ARP 条目的寿命都是有限的。 如果一段时间内该条目 陕西理工学院毕业设计 第 6 页 共 48 页 没有被参考过,则条目被自动删除。 在工作站 PC的 Windows 环境中, ARP 条目的寿命是 2分钟,在大部分 Cisco 交换机中,该值是 5分钟。 在工作站 PC的 Windows环境中,可以使用命令 ARP a查看当前的 ARP 缓存,如图。 图 命令 arp a 的输出 注意: ARP 不能通过 IP 路由器发送广播, 所以不能用来确定远程网络设备的硬件地址。 对于目标主机位于远程网络的情况, IP 利用 ARP 确定默认网关(路由器)的硬件地址,并将数据包发到默认网关,由路由器按它自己的方式转发数据包。 ARP 安全漏洞 ARP 协议的安全问题主要来 自于其工作机制以及协议栈的实现。 每台主机都会维持一个 IP 地址与硬件 MAC 地址的高速映射缓存,该缓存称为 ARP 缓存表。 ARP 欺骗的实质就是刷新某台主机的 ARP 缓存表.让其出现错误的 IP 地址与 MAC 地址的映射关系。 其安全漏洞主要体现在如下几个方面。 ( 1)高速缓存 漏洞之一来自于存 放 IP 地址与硬件 MAC 地址映射关系的 ARP 高速缓存。 ARP 高速缓存利用动态更新机制及时地淘汰过时 IPMAC 记录.合理地利用缓存.提高了查找的效率和缓存的使用效率。 但是,这个优点却成了恶意者攻击的帮凶。 虽然每个 IPMAC 记录存在都是有生存期的, 但是只要恶意者在这个记录更新之前改变了这条记录, 那么似的记录就会存储在缓存.在这个时间内,相应的主机就会被欺骗 [10]。 ( 2) ARP 的无状态性 漏洞之二源于 ARP 协议请求和应答机制。 ARP 协议并没有对请求和应答进行必要的限制,使得局域网巾的任何主机都能够随意发 送和接收请求数据包和应答数据包,而且接收方对数据包完全信任,并不验证收到的数据包中 IP 和 MAC 对应正确性。 这是 ARP 协议的一个重大的漏洞。 只要是来自局域网内的 ARP 应答分组.就会将其中的 IPARP 地址记录更新到本地 ARP 缓存中,而不进行任何认证,这就是 ARP 安全漏洞的本质 :无状态性。 这也是会造成 ARP 欺骗的一个重要原因。 针对上述的漏洞.局域网中的任何一台主机只要伪造一个虚假的 ARP 请求包并且不停地广播或不停发送应答包(如果伪造网关欺骗,就以广播方式),局域网的主机收到请求包或应答包后不加认证地更新自己 的 ARP 缓存。 在这个环节上没有任何限制, ARP 欺骗就水到渠成了。 ARP 攻击种类 ARP 攻击主要有以盗取数据为主要目的的 ARP 欺骗攻击,还有以捣乱破坏为目的的 ARP 泛洪攻击和 IP 地址冲突等几种。 陕西理工学院毕业设计 第 7 页 共 48 页 IP 地址冲突:制造出局域网上有另一台主机与受害主机共享一个 IP 的假象。 由于违反了唯一性要求,受害主机会自动向用户弹出警告对话框。 大量的攻击数据包能令受害主机 耗费大量的系统资源。 对于 Windows 操作系统,只要接收到一个 ARP 数据包,不管该 ARP 数据包符不符合要求,只要该 ARP 数据包所记录的源 IP 地址 同本地主机相同但 MAC 地址不同, Windows 系统就会弹出 IP地址冲突的警告对话框 [11]。 根据 IP 地址冲突的攻击特征描述,这种类型的 ARP 攻击主要有以下几种: IP 地址冲突:链路层所记录的目的物理地址为被攻击主机的物理地址,这样使得该ARP 数据包只能被受攻击主机所接收而不被局域网内的其它主机所接收实现隐蔽式攻击。 IP 地址冲突:链路层所记录的目的物理地址为广播地址,这样使得局域网内的所有主机都会接受到该 ARP数据包,虽然该 ARP 数据包所记录的目的 IP 地址不是受攻击主机的 IP 地址,但 是由于该 ARP 数据包为广播数据包,这样受攻击主机也会接收到从而弹出 IP 地址冲突的警告对话框。 IP 地址相同但 MAC 地址不同的数据包 [12]。 ARP 泛洪攻击 ARP 泛洪攻击是指攻击主机持续把伪造的 MACIP 映射对发给受害主机,对于局域网内的所有主机和网关进行广播,抢占网络带宽和干扰正常通信。 会出现经常有人反馈上不了网,或网速很慢,查看 ARP 表项也都正确,但在网络中抓报文分析,发现大量 ARP 请求报文。 (正常情况时,网络中 ARP 报文所占比例是很小的)的现象 [13]。 它产生的原因有:恶意用户利用工具 构造大量 ARP 报文发往交换机、路由器或某台 PC机的某个端口,导致 CPU忙于处理 ARP 协议,负担过重,造成设备其他功能不正常甚至瘫痪。 通俗地理解:李四为保障电话薄正确,会定时检查和刷新电话簿,王五就高频率地修改李四的电话簿,导致李四也只能忙着刷新电话簿,无法做其它工作了。 这种攻击类型,攻击者伪造大量不同 ARP 报文在同网段内进行广播,导致网关 ARP 表项被占满,合法用户的 ARP 表项无法正常学习,导致合法用户无法正常访问外网 [14]。 主要是一种对局域网资源消耗的攻击手段。 这种攻击方式的主要攻击特征包含: 不断发送伪造的 ARP 广播数据报使得交换机拼于处理广播数据报耗尽网络带宽。 ,使得正常通信被阻断。 ARP 高速缓存空间,造成主机无法创建缓存表项,无法正常通信,这种攻击特征作者将其命名为 ARP 溢出攻击。 ARP 泛洪攻击不是以盗取用户数据为目的,它是以破坏网络为目的,属于损人不利己的行为。 ARP 溢出攻击 ARP 溢出攻击是恶意用户发出大量的 ARP 报文,造成 L3设备的 ARP 表项溢出,影响正常用户的转发。 方面恶意耗尽了 IP 资源, 使得合法用户无法获得 IP 资源 ARP 溢出攻击的特征主要有: MACIP 映射对的 IP 地址是非本地网的虚拟不存在的 IP 地址但 MAC 地址是固定的,由于当操作系统接收到一个源 IP 地址在 ARP 高速缓存表中不存在的 ARP 数据包时,就会在缓存表中创建一个对应 MACIP 的入口项 [15]。 MACIP 映射对的 IP 地址是非本地网的虚拟不存在的 IP 地址而且 MAC 地址也是虚拟变化的。 发送这种类型的攻击数据包会引起交换机的 CAM 表溢出。 由于交换机是通过学习进入各端口数据帧的源 MAC 地址来构建 CAM 表,将各端口和端口所连接主机的 MAC 地址的对应关系进行记录,因而可根据 CAM 表来决定数据帧发往哪个端口。 如果攻击源持续向交换。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。