1ARP协议
1.1广播与广播域
- 广播:将广播地址作为目标地址的数据帧。
- 广播域:网络中能接收到同一个广播的所有结点的集合。交换机隔离不了广播域,路由器隔离广播域。
- MAC广播地址:FF-FF-FF-FF-FF-FF。
- IP地址广播:ARP广播属于指向子网的广播。
- 受限广播(全局广播):IP地址的网络字段和主机字段全为1就是地址255.255.255.255,该地址用于主机配置过程中IP数据包的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道。
- 指向网络:指向网络的广播地址是主机号为全1的地址。A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发的选择。
- 指向子网:指向子网的广播地址为主机号为全1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码。例如,如果路由器收到发往128.1.2.255的数据报,当B类网络128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但如果该子网的掩码为255.255.254.0,该地址就不是指向子网的广播地址。
- 指向所有子网:指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。指向所有子网的广播地址的子网号及主机号为全1。例如,如果目的子网掩码为255.255.255.0,那么IP地址128.1.255.255是一个指向所有子网的广播地址。然而,如果网络没有划分子网,这就是一个指向网络的广播。
1.2ARP协议原理
- 定义:Address Resolution Protocol,地址解析协议。
- 功能:工作在第三层(网络层),将一个已知的IP地址解析成MAC地址。
- 简要原理:广播请求、单播应答。
- 工作流程:
- 当A已知B的IP地址要向B发送数据时,首先检查自己的ARP缓存表中有没有B的MAC地址,发现没有B的MAC地址时,数据帧无法完整封装,此时,ARP协议发送ARP请求报文(我是A,MAC地址是AA,谁是B,MAC地址是多少?)
- ARP报文从A的第三层送到第四层,网卡发现是ARP报文,对该报文进行封装时,目标地址写FF-FF-FF-FF-FF-FF,源MAC地址写AA,类型是0x0806,发送给交换机。
- 交换机收到报文,发现目标MAC地址是FF-FF-FF-FF-FF-FF,向广播域内所有主机广播。
- 所有主机收到报文后,数据链路层解读出A的MAC地址、目标MAC地址是FF-FF-FF-FF-FF-FF、类型是0x0806,哦,发现是ARP请求报文,将报文送到第三层,解读出A的IP和MAC地址(更新到自己的ARP缓存表中),如果发现询问是我自己,则回复信息(我是B,MAC地址是BB);如果不是我自己,则不搭理。
- B将信息传递到数据链路层,进行封装,目标MAC地址是AA,源MAC地址是BB,类型0x0806,发送给交换机。
- 交换机收到数据帧解析后,单播发给A。
- A收到数据帧解析后,就知道了B的MAC地址,将其记录在自己的内存中,形成ARP缓存表。
- 上述是B的IP与A的IP处于同一网段的情况,当不在同一网段时,arp找到与A所处网段路由器的mac地址。
- 天然逻辑漏洞:该协议就是用于询问对方MAC地址的,无法验证对方是否回答正确。
1.3ARP相关命令
新开两台虚拟机win7与win2003,进入cmd窗口进行ARP相关命令操作,先清空两个电脑的arp缓存表,再利用win7ping通win2003,最后查看两个电脑的arp缓存表,发现win7中出现了win2003的arp缓存条目,win2003也出现了win7的缓存条目,说明接到信息就会更新缓存表。
arp -a #查看ARP缓存表
arp -d #清除ARP缓存表
arp -s IP MAC #ARP静态绑定
2ARP攻防
2.1ARP攻击
- 原理:通过发送伪造虚假的ARP报文,目标是把捏造的MAC塞到别人的ARP缓存表。
- 发送虚假广播请求报文:C发送一个虚假广播请求(我是A,MAC地址是捏造的,谁是SB,MAC地址是?),交换机将该请求广播给所有主机,则所有主机都修改了A原本对应的MAC地址,将导致所有主机无法主动与A通信。如果此处的A是网关,则所有人断网。
- 发送虚假单播应答报文:在收到A请求B的ARP报文后,C伪造虚假的ARP报文,其中MAC地址是捏造的,单播给A后,A将B的IP与捏造的MAC地址记录下来,将导致A后续想发给B的信息在封装时采用的是假的MAC,该消息没有人能收到。如果此处的B是网关,则A无法上外网;如果此处的B是局域网内部其他主机,则当B主动联系A后,A才能与B联系。
- 结果:中断通信。
- 案例:后续将在学习kaili时再完善相应案例。
2.2ARP欺骗
- 原理:通过发送伪造虚假的ARP报文(别人的IP与自己的MAC),C骗A说“我是B,我的MAC地址是CC”,同时骗B说“我是A,我的MAC 地址是CC”。
- 结果:中间人监听、窃取、篡改、控制流量。
- 案例:后续将在学习kaili时再完善相应案例。
2.3防御ARP攻击
- 静态IP绑定:在客户机与网关上,双向静态绑定,手动绑定。
//客户机,cmd窗口
arp -s IP MAC #ARP静态绑定
//交换机与路由器
conf t
arp IP MAC arpa 接口号 #将IP、MAC绑定到对应的接口上
- ARP防火墙:ARP防火墙自动绑定静态ARP,另外可以主动进行防御(与攻击者同样的做法,不断广播自己的IP和MAC地址)。
- 硬件级ARP防御:采用企业级管理型交换机,支持端口做动态ARP绑定。
3总结
- 掌握ARP协议的工作原理与流程;
- 了解利用ARP攻击的思路、了解防御ARP攻击的思路。