个人主页 : 个人主页
个人专栏 : 《数据结构》 《C语言》《C++》《Linux》《网络》 《redis学习笔记》
文章目录
- 前言
- ARP具体过程
- ARP欺骗原理
- 总结
前言
本文仅作为ARP具体过程和ARP欺骗的知识总结
- 硬件类型 :指定发送和接受ARP包的硬件类型,如 1 为 以太网
- 协议类型:指定ARP包所携带的网络层协议类型,如 0X0800 为 IPv4协议的数据包
- 硬件地址长度:指定硬件地址的长度,如以太网地址 为 6字节
- 协议地址长度:指定协议地址的长度,如IP地址为4字节
- 操作码(Operation Code):指定ARP包的操作类型,如 1表示ARP请求,2表示ARP应答
现在有一个场景,当一个局域网的入口路由器,收到一个数据包,要转发到局域网中的目的主机;现在入口路由器知道目的主机IP地址,但入口路由器还需要知道目的主机的mac地址,才能把数据报封装称为mac帧发送出去。这里需要一个将目的主机IP地址 转换为 目的主机mac地址 的过程,而这个过程就是ARP协议
ARP具体过程
入口路由器R要发送数据给主机B,但不知道主机B的mac地址。此时就需要ARP协议,下面我们就来看看ARP的具体过程。
入口路由器先组织如下 mac帧:
其中以太网目的地址 和 目的以太网地址 为 全F 表示 广播地址。同一个局域网中所有设备都会接收到这个数据包
以太网原地址为 入口路由器R的mac地址
帧类型,0806表示ARP请求/响应报文
硬件类型,1表示以太网
协议类型,0806表示ARP请求/响应
硬件地址长度,6表示以太网地址,也就是mac地址
协议地址长度,4表示IPv4地址
OP,1表示ARP请求
发送端以太网地址,macR
发送端IP地址,IPR
目的IP地址,IPB
再向局域网发送mac帧,此时该局域网中所有的主机都可以收到 该 mac帧。
此时所有主机发现该mac帧的以太网目的地址为 FFFF…FFFF(全F) 是广播,再分离 mac报头 和 有效载荷,再看帧类型 为 0806是ARP请求/响应,将 有效载荷 向上交付给 ARP。
主机先查看操作码 为 1 表示 ARP请求,再看目的IP地址 为 IPB,发现是向 主机B 的ARP请求;主机A,主机C,主机D都丢弃该ARP请求。
主机B组织如下mac帧
其中以太网目的地址 和 目的以太网地址 都是 入口路由器的macR
以太网原地址为 macB(主机B的mac地址)
帧类型,0806表示ARP请求/响应
硬件类型,1表示以太网
协议类型,0806表示ARP请求/响应
硬件地址长度,6表示以太网地址
协议地址长度,4表示IPv4地址
OP,2表示ARP响应
发送端以太网地址,macB
发送端IP地址,IPB
目的IP地址,IPR
主机B向局域网发送mac帧,其它主机 和 入口路由器 都会收到该mac帧,查看mac帧报头,发现以太网目的地址是macR(入口路由器的mac地址),其它主机丢弃该mac帧。
入口路由器分离 报头 和 有效载荷,查看帧类型是 0806,将有效载荷交付给ARP层。
入口路由器查看操作码(OP) 为2 ,表示为ARP响应,再查看发送端以太网地址,目的以太网地址,发送端IP地址等。建立主机B的mac与ip映射。
以上就是ARP的过程。
ARP欺骗原理
第一步:信息收集
攻击者需要收集目的网络中的关键信息
- 目标主机的ip地址 和 mac地址
- 该局域网的路由器的ip地址 和 mac地址
第二步:ARP缓存中毒
攻击者分别向目标主机 和 路由器 大量发送伪造ARP响应,目的是让目标主机 和 路由器更新它们的ARP缓存,使目标主机的ARP缓存中奖路由器的ip地址映射到攻击者的mac地址;路由器的ARP缓存中将目标主机的ip地址映射到攻击者的mac地址。这样,当目标主机尝试与路由器通信时,会将数据包发送给攻击者;同样,当路由器尝试与目标主机通用时,也会将数据包发送给攻击者。
第三步:中间人攻击
攻击者已经成功的称为目标主机和路由器之间的中间人。
- 伪造路由器和目标主机之间的通信信息
- 窃听目标主机和路由器之间的通信内容
- 修改或丢弃数据包
总结
以上就是ARP的具体过程和ARP欺骗的知识总结