arp协议与arp欺骗

1、介绍

arp,address resolution protocol地址解析协议,是根据ip地址获取物理地址的一个tcp/ip协议,也是局域网中相邻主机通信使用的一个必要协议。

2、工作过程

(1)主机A期待与主机B通信,知道主机B地址。(一般主机A代表路由器或者网关设备,而主机B代表局域网中的用户主机,局域网外发送携带目标ip的报文交给主机A后进行转发)

(2)主机A查找本地arp缓存,这是一张ip-Mac地址映射表,其中ip地址属于自己管理的ip,mac地址是与当前主机直接相邻的,如果存在则直接在转发请求的数据链路层的报文填写目标mac地址

(3)如果没有找到,则在当前局域网下发送arp协议。其目标mac地址为ff ff ff ff ff ff,表示局域网下所有主机都需要接收,目标ip为期待查询的ip。并且携带自己的mac地址和ip地址

(4)局域网下各主机接到arp请求报文,与自己的ip地址匹配,如果就是询问自己,则返回arp响应报文,发送方为自己的ip和mac地址,接收方为arp请求报文中的发送方ip和mac地址。如果不是询问自己,则丢弃

(5)主机A未接收到任何arp响应报文,则不发起对目标ip的请求或者转发。反之,则会进行请求或转发。

(6)主机中一般会有arp缓存表,分为动态和静态。静态是由用户人为配置,而动态的则是根据arp报文进行获取,每次请求获取后会进行缓存,保留一定时间。失效后会再次arp请求。

3、arp报文

(1)报文格式

  • 目的mac地址,arp请求一般是ff ff ff ff ff ff,也存在直接询问某mac地址,arp响应时是arp请求的发送方mac地址
  • 源mac地址
  • 类型,arp是0806
  • 硬件类型,以太网是0001
  • 协议类型,ip是0800
  • 硬件地址长度,06
  • 协议长度,04

硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;

  • 操作类型,用来表示这个报文的类型,ARP请求为0001,ARP响应为0010,RARP请求为0011,RARP响应为0100;
  • 源mac地址
  • 源ip地址
  • 目的mac地址
  • 目标ip地址

(2)wireshark分析

4、arp命令

windows和linux都可以使用arp命令查看

arp -a 查看所有项目
arp -a ip 查看指定ip的项目,比如本地主机有多个网卡,进行筛选
arp -s ip mac地址 设置一个静态的项目
arp -d ip 删除一个静态项目

5、arp欺骗

ARP请求为广播形式发送的,网络上的主机可以自主发送ARP应答消息,并且当其他主机收到应答报文时不会检测该报文的真实性就将其记录在本地的MAC地址转换表。

这样攻击者就可以向目标主机发送伪ARP应答报文,从而篡改本地的MAC地址表。 ARP欺骗可以导致目标计算机与网关通信失败,更会导致通信重定向,所有的数据都会通过攻击者的机器,因此存在极大的安全隐患。

防御:

  • 静态的mac-ip映射表,禁止修改静态映射
  • rarp检查arp真实性,或者防火墙监控等

 

posted @ 2023-04-18 17:31  挖洞404  阅读(32)  评论(0编辑  收藏  举报