美文网首页
ARP协议和ARP攻击

ARP协议和ARP攻击

作者: 达文西_Huong | 来源:发表于2020-11-17 22:20 被阅读0次

    ARP协议


    介绍

    ARP地址解析协议

    地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取MAC地址的一种TCP/IP协议。在主机和主机之间的通讯物理上,其实就相当于是网卡和网卡之间的通讯,而网卡之间的通讯又只认识MAC地址,所以要想实现主机与主机之间的通信,需要知道对方的IP的地址所对饮的MAC地址,完成这一过程的协议就是ARP协议。

    原理

    每台主机或路由器都有一个ARP缓存表,用来保存IP地址和MAC地址的对应关系

    举个例子,A主机(192.168.1.5)向主机B(192.168.1.1)发送数据。当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了MAC地址。然后把它写进发送帧即可

    而如果从缓存表中没有找到,那么主机就会在网络上发送一个广播 arp Request,请求包中包含了主机A的IP地址和Mac地址。网络上其他主机并不会响应,只有主机B在接收到A的请求包的时候会以单播方式向A主机做出回应,并且带上自己的ip和mac地址。

    同时,B主机会把A主机的IP地址和MAC地址缓存进自己的ARP缓存中,此后A再向B发送数据,就可以直接从缓存表中获取B的地址。

    ARP表中设置有生存时间TTL,在一段时间内,如果表中的某一行没有使用,就会被删除,这样可以缩短ARP表的长度,同时提高搜索的速度

    补充

    ARP攻击

    ARP欺骗的运作原理是由攻击者发送的假的ARP数据包到网络上,尤其是送到网关上。目的是要让送至特定的IP地址的流量被错误的送到了攻击者所取代的地方。因此攻击者可以将这些流量另行转送到真正的网关(被动式数据包嗅探)或篡改后再转回去(中间人攻击)或把ARP数据包导到不存在的MAC地址以达到阻断服务器的攻击效果

    image

    正常情况下,A主机想主机B发送一份数据,而如果攻击者想窃取这份数据那么要怎么做呢?

    1. 首先发送一个伪造主机B的ARP包到主机A告诉主机A,主机B的MAC地址是攻击者自身的MAC地址,这样主机A就会更新自己的ARP缓存表,把B的Ip地址更新成攻击者的MAC地址

    2. 同样的对B主机进行相同的操作。

    3. 之后当主机A还是像往常一样给B发送数据,这个时候主机A首先会从本地的ARP缓存表获取MAC地址,但是此时的MAC地址其实是攻击者的MAC地址,所以数据会先发给攻击者,攻击者可以篡改数据包的内容或者别的操作。这也就完成了ARP攻击

    ARP防御

    从攻击原理就可以看出来,实现ARP防御关键在于主机信任了伪造的ARP包并且更新了本地路由表。

    1. 最简单的方式,就是使用静态路由表。但是弊端就是如果局域网中主机数量多的时候静态表会很繁杂。

    2. 动态ARP检测DAI(利用交换机,路由器实现)

    交换机会记录每个对外连接端口对应的IP地址,以及MAC地址,生成DAI检测表
    交换机在接收到ARP包的时候会检测一下你链接的端口绑定的IP地址和MAC地址,如果发现和DAI中绑定的不一致,则回丢弃或者执行相应惩罚

    RARP协议

    反向地址转换协议,就是将局域网中的某个主机的Mac地址转成IP地址

    Mac地址

    采用十六进制数标识,共6个字节(48位)。其中前三个字节由IEEE注册管理机构RA负责给厂家分配,后三位是由各厂家自行指派给生成的适配器。

    本地路由表

    image

    数据包结构

    image

    参考文章:
    https://juejin.im/post/6844903506948653070
    https://juejin.im/post/6844903506571165703
    https://juejin.im/post/6844903878698205191

    相关文章

      网友评论

          本文标题:ARP协议和ARP攻击

          本文链接:https://www.haomeiwen.com/subject/jjnfiktx.html