收藏 分享(赏)

ARP地址解析协议介绍.doc

上传人:j35w19 文档编号:7055072 上传时间:2019-05-04 格式:DOC 页数:3 大小:35KB
下载 相关 举报
ARP地址解析协议介绍.doc_第1页
第1页 / 共3页
ARP地址解析协议介绍.doc_第2页
第2页 / 共3页
ARP地址解析协议介绍.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、ARP(AddressResolutionProtocol)地址解析协议用于将计算机的网络地址(IP 地址 32位)转化为物理地址(MAC 地址 48位)RFC826。ARP 协议是属于链路层的协议,在以太网中的数据帧从一个主机到达网内的另一台主机的根据。ARP(AddressResolutionProtocol)地址解析协议用于将计算机的网络地址(IP 地址 32 位)转化为物理地址(MAC 地址 48 位)RFC826。ARP 协议是属于链路层的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据 48 位的以太网地址 (硬件地址)来确定接口的,而不是根据 32 位的 IP 地址。

2、内核(如驱动)必须知道目的端的硬件地址才能发送数据。当然,点对点的连接是不需要 ARP 协议的。ARP 协议的数据结构:以下是引用片段:typedefstructarphdr unsignedshortarp_hrd;/*硬件类型*/ unsignedshortarp_pro;/*协议类型*/ unsignedchararp_hln;/*硬件地址长度*/ unsignedchararp_pln;/*协议地址长度*/ unsignedshortarp_op;/*ARP 操作类型*/ unsignedchararp_sha6;/*发送者的硬件地址*/ unsignedlongarp_spa;/*发

3、送者的协议地址*/ unsignedchararp_tha6;/*目标的硬件地址*/ unsignedlongarp_tpa;/*目标的协议地址*/ ARPHDR,*PARPHDR;为了解释 ARP 协议的作用,就必须理解数据在网络上的传输过程。这里举一个简单的PING 例子。假设我们的计算机 IP 地址是 192.168.1.1,要执行这个命令:ping192.168.1.2 。该命令会通过 ICMP 协议发送 ICMP 数据包。该过程需要经过下面的步骤:1、应用程序构造数据包,该示例是产生 ICMP 包,被提交给内核(网络驱动程序);2、内核检查是否能够转化该 IP 地址为 MAC 地址,

4、也就是在本地的 ARP 缓存中查看IP-MAC 对应表;3、如果存在该 IP-MAC 对应关系,那么跳到步骤 9;如果不存在该 IP-MAC 对应关系,那么接续下面的步骤;4、内核进行 ARP 广播,目的地的 MAC 地址是 FF-FF-FF-FF-FF-FF,ARP 命令类型为 REQUEST(1),其中包含有自己的 MAC 地址;5、当 192.168.1.2 主机接收到该 ARP 请求后,就发送一个 ARP 的 REPLY(2)命令,其中包含自己的 MAC 地址;6、本地获得 192.168.1.2 主机的 IP-MAC 地址对应关系,并保存到 ARP 缓存中;7、内核将把 IP 转化为

5、 MAC 地址,然后封装在以太网头结构中,再把数据发送出去;使用 arp-a 命令就可以查看本地的 ARP 缓存内容,所以,执行一个本地的 PING 命令后,ARP 缓存就会存在一个目的 IP 的记录了。当然,如果你的数据包是发送到不同网段的目的地,那么就一定存在一条网关的 IP-MAC 地址对应的记录。知道了 ARP 协议的作用,就能够很清楚地知道,数据包的向外传输很依靠 ARP 协议,当然,也就是依赖 ARP 缓存。要知道,ARP 协议的所有操作都是内核自动完成的,同其他的应用程序没有任何关系。同时需要注意的是,ARP 协议只使用于本网络。ARP 协议的利用和相关原理介绍。一、交换网络的嗅

6、探ARP 协议并不只在发送了 ARP 请求才接收 ARP 应答。当计算机接收到 ARP 应答数据包的时候,就会对本地的 ARP 缓存进行更新,将应答中的 IP 和 MAC 地址存储在 ARP缓存中。因此,在上面的假设网络中,B 向 A 发送一个自己伪造的 ARP 应答,而这个应答中的数据为发送方 IP 地址是 192.168.10.3(C 的 IP 地址),MAC 地址是 DD-DD-DD-DD-DD-DD(C 的 MAC 地址本来应该是 CC-CC-CC-CC-CC-CC,这里被伪造了)。当 A 接收到B 伪造的 ARP 应答,就会更新本地的 ARP 缓存,将本地的 IP-MAC 对应表更换

7、为接收到的数据格式,由于这一切都是 A 的系统内核自动完成的,A 可不知道被伪造了。ARP 欺骗的主要用途就是进行在交换网络中的嗅探。有关交换网络的嗅探不是本文的讨论内容。二、IP 地址冲突我们知道,如果网络中存在相同 IP 地址的主机的时候,就会报告出 IP 地址冲突的警告。这是怎么产生的呢?比如某主机 B 规定 IP 地址为 192.168.0.1,如果它处于开机状态,那么其他机器 A 更改 IP 地址为 192.168.0.1 就会造成 IP 地址冲突。其原理就是:主机 A 在连接网络(或更改 IP 地址) 的时候就会向网络发送 ARP 包广播自己的 IP 地址,也就是 freearp。

8、如果网络中存在相同 IP 地址的主机 B,那么 B 就会通过 ARP 来 reply 该地址,当 A 接收到这个reply 后, A 就会跳出 IP 地址冲突的警告,当然 B 也会有警告。因此用 ARP 欺骗可以来伪造这个 ARPreply,从而使目标一直遭受 IP 地址冲突警告的困扰。三、阻止目标的数据包通过网关比如在一个局域网内通过网关上网,那么连接外部的计算机上的 ARP 缓存中就存在网关 IP-MAC 对应记录。如果,该记录被更改,那么该计算机向外发送的数据包总是发送到了错误的网关硬件地址上,这样,该计算机就不能够上网了。这里也主要是通过 ARP 欺骗进行的。有两种办法达到这样的目的。

9、1、向目标发送伪造的 ARP 应答数据包,其中发送方的 IP 地址为网关的地址,而MAC 地址则为一个伪造的地址。当目标接收到该 ARP 包,那么就更新自身的 ARP 缓存。如果该欺骗一直持续下去,那么目标的网关缓存一直是一个被伪造的错误记录。当然,如果有些了解的人查看 ARP-a,就知道问题所在了。2、这种方法非常狠,欺骗网关。向网关发送伪造的 ARP 应答数据包,其中发送方的IP 地址为目标的 IP 地址,而 MAC 地址则为一个伪造的地址。这样,网关上的目标 ARP记录就是一个错误的,网关发送给目标的数据报都是使用了错误的 MAC 地址。这种情况下,目标能够发送数据到网关,却不能接收到网

10、关的任何数据。同时,目标自己查看ARP-a 却看不出任何问题来。四、通过 ARP检测混杂模式节点在混杂模式中,网卡进行包过滤不同于普通模式。本来在普通模式下,只有本地地址的数据包或者广播(多播等)才会被网卡提交给系统核心,否则的话,这些数据包就直接被网卡抛弃。现在,混合模式让所有经过的数据包都传递给系统核心,然后被 sniffer 等程序利用。通过特殊设计的 ARP 请求可以用来在一定程度上检测处于混杂模式的节点,比如对网络中的每个节点都发送 MAC 地址为 FF-FF-FF-FF-FF-FE 的 ARP 请求。对于网卡来说这不是一个广播地址(FF-FF-FF-FF-FF-FF),所以处于普通

11、模式的节点就会直接抛弃该数据包,但是多数操作系统核心都认为这是一个广播地址,如果有一般的 sniffer 程序存在,并设置网卡为混杂模式,那么系统核心就会作出应答,这样就可以判断这些节点是否存在嗅探器了。可以查看,很多基于 ARP 的攻击都是通过 ARP 欺骗实现的。至于 ARP 欺骗的防范,还是尽可能使用静态的 ARP。对于 WIN,使用 arp-s 来进行静态 ARP 的设置。当然,如果能够完全使用静态的 IP+MAC 对应,就更好了,因为静态的 ARP 缓存只是相对的。当然,可以有一些方法来实现 ARP 欺骗的检测。设置一个 ARP 的嗅探器,其中维护着一个本地网络的 IP-MAC 地址的静态对应表,查看所有经过的 ARP 数据,并检查其中的 IP-MAC 对应关系,如果捕获的 IP-MAC 对应关系和维护的静态对应关系对应不上,那么就表明是一个欺骗的 ARP 数据包了。一个 ARP 数据包发送程序源代码和编译好的 EXE 程序可以参考 ARPSender 程序。注意:需要先安装 WinPcap。

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报