day14、1 - 网络层--ARP协议

本文介绍了ARP协议的工作原理,包括广播域的概念、ARP请求与应答的过程,以及为何需要缩小广播域。同时,讨论了ARP攻击和欺骗的机制,如伪造ARP报文导致的通信中断或数据篡改,并阐述了ARP欺骗如何成为中间人攻击的手段。最后,提到了ARP攻击的防范措施和Windows中查看及清理ARP缓存的命令。
摘要由CSDN通过智能技术生成

一、ARP协议

1.广播与广播域

  • 广播:将广播地址做为目的地址的数据帧

  • 广播域:网络中能接收到同一个广播所有节点的集合(表示一个范围)

  • 广播地址:

    • MAC广播地址:FF-FF-FF-FF-FF-FF

      交换机也可以发送广播,但是如果只有IP广播地址,由于交换机是二层设备,不知道第三层的IP包头中的IP广播地址,所以还需要一个二层广播地址FF-FF-FF-FF-FF-FF告诉二层设备该帧是需要广播的

    • IP广播地址:①255.255.255.255;②该网段的最后一个地址属于广播IP地址—如192.168.1.255/24

  • 目前为止,我们学过哪些情况需要广播:①DHCP协议自动获取IP时,需要发送广播包,②交换机收到帧,MAC地址表中没有对应的MAC地址记录时,需要广播

  • 广播域越小越好:为什么呢?因为如果一个广播域中有很多台PC,假如每台PC都会发广播,那么在这个广播域中的每台主机会受到很多无用的广播信息,无非加大工作量去处理无效的信息。所以如果在一个大型公司内部规划网络,是需要考虑广播域的划分大小的

  • 交换机无法控制广播,路由器可以隔绝广播,即路由器可以隔绝广播域,所以广播只能在内网中传播

  • 如何隔绝广播域:

    1. 使用物理隔离:由于路由器可以有隔绝广播域的作用(后面会学习原理),所以如果大型网络中有很多PC,可以购买多个路由器来隔离广播域,但是开销巨大且费时费力,不推荐
    2. 通过vlan技术隔绝广播域

2.ARP协议概述

1)什么是ARP协议
  • Address Resolution Protocol,地址解析协议
  • ARP协议只能在内网传播,属于内网协议
2)为什么需要ARP协议
  • 我们前面学习TCP/IP五层协议栈的数据封装时,讲到当第三层将封装好的报文传到第二层数据链路层,数据链路层需要封装帧头和帧尾,帧头中包含信息:自己的MAC地址,目标的MAC地址,类型。只有知道这全部的信息,才能封装好发到物理层,从网卡发出去。那么电脑是如何得知对方的MAC地址的,就要用到ARP协议!
3)ARP协议作用
  • 将一个已知的IP地址解析成MAC地址

3.ARP协议原理

1)ARP广播请求
  • 在同一个局域网中有两台PC,PC1想向PC2通信,PC1将信息传到第四层在首部添加TCP/UDP头封装成数据段,发到第三层在首部添加IP包头封装成报文通过IP协议发到第二层,第二层现在无法将报文封装成帧,因为帧头中应该包含目标MAC地址,而此时还不知道PC2的MAC地址。

  • 那么三层会通过ARP协议(跟IP和ICMP无关)直接生成一个ARP请求解析报文,又称ARP请求报文,ARP请求报文中内容为:①我的IP是xx,②我的MAC地址是xx,③谁是目标IP,④你的MAC地址是多少。再将ARP请求报文发到第二层

  • 第二层一看是ARP请求报文,所以会将ARP请求报文通过广播发送,即封装成帧时,帧头中目标MAC地址为FF-FF-FF-FF-FF-FF(MAC广播地址),源MAC为自己的MAC,类型值为0x0806。将封装好的帧从网卡通过物理层发送到交换机

  • 交换机收到帧后解封装得知目标MAC地址为MAC广播地址,所以会将此帧广播出去

  • 当PC2收到此帧后,传到第四层得到目标MAC地址为MAC广播地址且类型值为0x0806,所以会继续解封装送到网络层的ARP协议,通过ARP协议得到ARP请求报文的内容,发现目标IP是自己

    当其他不相干的PC收到这个帧,传到第四层得到目标MAC地址为MAC广播地址且类型值为0x0806,所以会继续解封装送到第三层的ARP协议,第三层通过ARP协议解析到ARP请求报文的内容,发现IP地址不是自己,所以此时会将此报文丢弃

2)ARP单播应答
  • PC2得到ARP请求报文内容后发现IP是自己,那么会通过ARP协议再生成一个ARP单播应答报文,内容为:①我的IP就是你要找的IPxx,②我的MAC地址为xx。将此报文发到第二层,第二层将ARP单播应答报文封装成帧,帧头的目标MAC即为对方的(收到时ARP广播请求报文中含有对方的MAC地址),源MAC为自己,类型值为0x0806。再从网卡通过网线发送给交换机
  • 交换机收到后,通过MAC地址表将此帧转发给PC1
  • PC1收到帧后第四层得到目标MAC地址为自己的MAC,且根据类型值0x0806将帧解封装送到第三层的ARP协议,第三层通过ARP协议解析得到了ARP单播应答报文中对方的MAC地址为xx,那么此时会将对方的MAC地址告诉第四层,第四层将目标MAC地址封装到帧头,此时一个完整的帧就生成了,那么会经过网卡将帧发出去

ARP协议通过广播来实现的,所以ARP协议碰到路由器就被干掉了,ARP为内网协议,只能在内网传播。

3)形成ARP缓存
  • 当PC1收到ARP单播应答后,会将学习到的对方的MAC地址存到缓存中,以后与目标IP主机通信,就不会再去请求。此时得到的缓存为ARP缓存(只要没到老化时间、保持通信、没有关机,缓存就会一直存在)

4.windows中ARP相关命令

  • arp -a:查看本机ARP缓存表
  • arp -d:清除ARP缓存
  • arp -s:ARP绑定(其实绑定了再关机开机也会消息)

二、ARP攻击和欺骗

1.ARP攻击或欺骗的原理

  • 通过发送伪造虚假的ARP报文(广播或单播),来实现的攻击或欺骗!
    • 如虚假报文的mac是伪造的不存在的,实现ARP攻击,结果为中断通信/断网!
    • 如虚假报文的mac是攻击者自身的mac地址,实现ARP欺骗,结果可以监听、窃取、篡改、控制流量,但不中断通信!

2.易于用ARP攻击的原因

  • ARP协议没有验证机制,所以ARP攻击者易于通过发送虚假伪造的arp报文对受害者进行ARP缓存投毒

3.ARP攻击举例

1)伪造虚假的ARP单播应答报文
  • 阻断局域网内双发的通信

    • 现在小周想与小白通信,小周会发送ARP请求报文:问谁是小白(IP),你的MAC地址是多少?当交换机收到后会将此帧在局域网内广播,如果现在老王想搞破坏,收到ARP请求广播后,使用一些工具,发送一个伪造的ARP单播应答报文,当中的MAC地址是伪造的,内容是:我是小白,我的MAC地址是xxx(伪造MAC)。真正的小白也会发送ARP单播应答。两个ARP单播应答都会通过交换机发送到小周的主机
    • 现在小周的主机收到两个ARP应答,两个都说自己是小白,但是MAC地址不同,PC会把后接收到的ARP应答中的MAC地址作为对方的MAC地址封装到帧头中。所以如果老王的ARP应答晚于小白的ARP应答到达,那么小周就会用老王伪造的虚假的MAC地址与小白通信。小白就永远收不到小周的消息。由此可见ARP攻击可以阻断局域网内两个人之间的通信
    • 也可能小周的主机后收到小白的ARP应答,那么就可以正常通信。但是如果老王不断的发送伪造的ARP应答,那么也会阻断两者之间的通信
  • 阻断与网关的通信–断网

    • 当主机要与某设备通信,会先判断目标IP地址与自己是否是同一网段,如果是直接向对方发送ARP请求广播;如果不在同一网段,那么主机要与网关通信,通过网关将数据转发到其他的网段。假如现在小周想上百度,就要和百度的网页服务器通信,主机先判断目标IP地址与自己不在同一网段,所以会发送ARP请求报文,目标IP为网关,向网关通信询问网关的MAC地址。交换机收到后也会将帧在局域网内广播,如果现在老王伪造一个ARP应答报文:我就是网关,我的MAC地址是xxx(伪造的)。同样的网关收到后也会发送ARP单播应答。两个ARP应答都通过交换机发送到小周主机
    • 假如现在小周后收到老王伪造的ARP应答,那么就会把伪造的MAC地址作为网关的MAC地址封装到帧头,然后发送给一个不存的MAC地址,那么小周的主机就无法和百度服务器通信,其他的上网活动也都无法进行
2)伪造虚假的ARP请求广播报文
  • 现在老王伪造ARP请求报文,内容是:我是网关(IP),我的MAC地址是xx(虚假的),谁是xxx(IP),你的MAC地址是。然后封装好发送出去给交换机,交换机收到后会将此帧广播出去
  • 局域网内的人收到广播后,会解封装将ARP请求报文送到三层ARP协议解析,虽然自己的IP不是此报文中的目标IP,但是得到网关的IP和虚假的网关的MAC地址,那么在主机上形成ARP缓存。那么此后所有的主机要想上网都会去和网关通信,但是现在ARP缓存中的网关的MAC地址是老王伪造的,那么此局域网内的所有主机都无法上网了

4.ARP欺骗举例

  • 原理与ARP攻击类似,只是将虚假的MAC地址换成了自己的MAC地址。现在小周与小白通信,小周发送ARP请求广播,通过交换机将帧在局域网内广播,此时老王收到了你的ARP请求,伪造一个ARP单播应答报文,MAC地址写自己真实的MAC地址,然后再经过交换机发送到小周的主机,将老王的MAC地址作为小白的MAC,那么所有帧都会发到老王的主机上去
  • 老王收到后可以对帧的内容等信息做监听,篡改,控制等。然后再将此帧发给真正的小白。同理小白发送给小周的信息也可以被老王截获做相关操作,再转发给小周。那么老王就成为了中间人。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值