首页 > 技术文章 > ARP协议分析与防护

qvpenglou 2020-03-18 21:11 原文

一、广播与广播域

  1.广播:将广播地址作为目的地址的数据帧。

  2.广播域:网络中能接收到同一个广播所有节点的集合。

  3.MAC地址广播:广播地址为 FF-FF-FF-FF-FF-FF

  4.IP地址广播:   255.255.255.255。广播IP地址为IP地址网段的广播地址,如192.168.1.255/24

 

二、ARP协议

   1、ARP  地址解析协议。英文全称为Address Resolution Protocol 。

       ARP就是将一个已知的IP地址解析成MAC地址。

  2、ARP原理(1)发送ARP广播请求。    

            ARP报文内容:我是10.1.1.1,我的MAC为:XXX;谁是10.1.1.3,你的MAC是什么?

         (2)接收ARP单播应答。

              ARP报文内容:谁是10.1.1.3,你的MAC是XXX。

         (总共以上两步)

   (给目标IP发送信息时会先查看自己的ARP缓存表中有没有该IP对应的MAC地址,没有将会发送以下ARP请求)

   过程大致为:ARP请求报文为:“我是10.1.1.1,我的MAC是XX-XX-XX-XX-XX-XX,请问谁是10.1.1.3,你的MAC是什么?”,然后交给网卡进行帧封装;

         该数据的帧头里的目标MAC为:FF-FF-FF-FF-FF-FF,源MAC地址为:XX-XX-XX-XX-XX-XX;

         该数据包会发给交换机,交换机拆开帧头分析,目标地址为广播MAC地址FF-FF-FF-FF-FF-FF,就会将该数据帧在局域网内进行广播;

         所有人收到广播后,发现IP不是自己将会丢弃,IP是自己则将数据送给三层ARP,ARP就会将自己的IP和MAC地址通过ARP应答发送给对方,同时在ARP缓存表中记下对方的IP和MAC。

  3、ARP缓存表:通过学习记录网络中主机的IP和对应MAC地址,缓存起来。关机后就会消失。

  4、Windows系统中的ARP命令:

           arp -a          查看ARP缓存表

           arp -d          清除ARP缓存表

           arp -s          ARP绑定

  5、ARP协议只要接收到ARP广播,不管是不是发给自己的都会将其IP和MAC记录到ARP缓存表中。

  6、ARP单播响应后者会覆盖前者,也就是ARP缓存表中会记录最后一个ARP响应的IP和MAC。

    (在ARP攻击和欺骗中,黑客可以不停的发送伪造的ARP响应包,以覆盖真实的ARP响应包。)

 

三、ARP攻击

  1、ARP攻击的目的之使被攻击者断网。

  2、ARP请求和响应都可以被利用进行攻击。

  3、ARP攻击原理:(攻击时用虚假的不存在的MAC地址

     目标主机发送ARP广播请求时,攻击者收到该广播请求后伪造ARP响应包(用虚拟的不存在的MAC地址),目标主机收到该伪造的响应包后将IP地址和错误的MAC地址记录到ARP缓存表中,这样目标主机发出去的包永远也得不到回应。

     同样当目标主机发送ARP广播请求想要知道网关的MAC地址时,也会被攻击者发送虚假的ARP响应包,这样目标主机想要上网时永远也无法发给真的网关,从而断网。

   

 

  4、ARP不仅可以通过应答进行攻击,还可以通过广播报文进行攻击

    攻击者发送ARP广播请求,请求报文中伪造虚假的不存在的MAC地址,收到广播的人都会信心学习,记录到ARP缓存表中。(这是ARP的贪婪造成的)

      比如:攻击者发送的广播报文内容为:“我是10.1.1.254(网关ip),我的MAC是XXX(假的不存在的MAC),谁是10.1.1.x,你的MAC是什么?”。收到该广播的主机都会将10.1.1.254(网关ip)MAC为XXX记录到ARP缓存中,那么被攻击者在访问外网时向网关发送数据时就会在帧头中写入目标MAC为XXX(假的不存在的网关的MAC),这样被攻击的内网中的所有人都无法上网了。

 

四、ARP欺骗

  1、ARP欺骗的目的是作为中间人进行截获数据。被攻击者依然能够正常通信,只是攻击者在中间进行了截获(篡改)并转发,被攻击者不易察觉。

  2、ARP欺骗原理:(欺骗时用攻击者自己的真实MAC地址

  

  

  

 

 

五、Cisco系统中的ARP命令:

  

 

推荐阅读