ARP

92 阅读6分钟

概述

  • Address Resolution Protocol地址解析协议,制定了由IP地址获取MAC地址的标准。
  • RARP(Reverse Address Resolution Protocol) 反向地址解析协议(逆地址解析协议),制定了由MAC地址获取IP地址的标准。
  • 相同网络下主机通信依靠MAC地址定位,不同网络下主机通信依靠IP地址定位;
  • ARP协议工作在网络层;
  • ARP数据包会被路由器拦截,ARP数据包不能跨网络传输;

命令

  • 查看主机MAC表
    arp /a
  • 清空主机MAC表信息
    arp /d
  • 添加MAC条目(绑定静态MAC)
    arp /s 目标IP 目标MAC
    netsh interface ip add neighbors "网卡名称" 目标IP 目标MAC

工作原理

同网络下

image.png

  • 192.168.102.176主机向192.168.102.145主机发送数据过程:
  • 发送主机:检查自己的MAC表中是否存在目标IP(192.168.102.145)的MAC信息,如果不存在,发送广播ARP请求(who has 192.168.102.145);
  • 交换机:检查源MAC是否存在于自己的MAC表中,如果不存在,则将该数据来源的物理接口与数据包的源MAC建立对应关系写入到自己的MAC表中,检查数据包目的MAC地址,发现为广播地址FF-FF-FF-FF-FF-FF,则将该数据包从所有物理接口转发;
  • 其它主机:收到交换机转发的广播数据包后,检查自己的IP是否为目标IP,不是,则丢包;
  • 接收主机:收到交换机转发的广播数据包后,检查自己的IP是否为目标IP,是,会单播形式发送ARP响应数据包,该响应数据包会携带自己的MAC地址;
  • 交换机:收到ARP响应数据包后,检查源MAC地址是否存在于自己的MAC表中,如果不存在,则将数据包来源的物理接口与数据包的源MAC地址建立对应关系写入到自己的MAC表中,检查目标MAC地址是否存在于自己的MAC表中,如果存在,则将该数据包通过对应物理接口进行转发;
  • 接收主机:将ARP响应数据包中IP地址与MAC地址对应结果写入到自己的MAC表中

不同网络下

image.png

  • 192.168.102.176主机向22.33.44.55主机发送数据过程:
  • 发送主机:检查目标IP与自己是否属于相同网络,如果不是,获取网关IP,检查自己的MAC表中是否存在网关IP(192.168.102.1)的MAC信息,如果不存在,发送广播ARP请求(who has 192.168.102.1);
  • 交换机:检查源MAC是否存在于自己的MAC表中,如果不存在,则将该数据来源的物理接口与数据包的源MAC建立对应关系写入到自己的MAC表中,检查数据包目的MAC地址,发现为广播地址FF-FF-FF-FF-FF-FF,则将该数据包从所有物理接口转发;
  • 其它主机:收到交换机转发的广播数据包后,检查自己的IP是否为目标IP,不是,则丢包;
  • 网关:收到交换机转发的广播数据包后,检查自己的IP是否为目标IP,是,会单播形式发送ARP响应数据包,该响应数据包会携带自己的MAC地址;
  • 交换机:收到ARP响应数据包后,检查源MAC地址是否存在于自己的MAC表中,如果不存在,则将数据包来源的物理接口与数据包的源MAC地址建立对应关系写入到自己的MAC表中,检查目标MAC地址是否存在于自己的MAC表中,如果存在,则将该数据包通过对应物理接口进行转发;
  • 发送主机:将ARP响应数据包中网关IP地址与MAC地址对应结果写入到自己的MAC表中,将要发送到外网的数据源MAC设置为自己MAC地址,目标MAC设置为网关MAC,源IP设置为自己的,目标IP设置为目标主机(22.33.44.55)

数据包字段

Hardware type: Ethernet (1) 物理地址类型,1表示以太网(Ethernet) Protocol type: IPv4 (0x0800) 逻辑地址类型(协议地址类型),0x0800表示IPv4 Hardware size: 6 物理地址大小,MAC地址占6字节 Protocol size: 4 逻辑地址大小,IPv4地址占4字节 Opcode: request (1) 操作类型码,1表示ARP请求,2表示ARP响应,3表示RARP请求,4表示RARP响应 Sender MAC address: 8c:16:45:ef:68:75 发送方物理地址(MAC) Sender IP address: 192.168.102.176 发送方IP地址 Target MAC address: 00:00:00:00:00:00 目的物理地址(MAC) Target IP address: 192.168.102.1 目的IP地址

ARP攻击与欺骗

image.png

攻击

  • 攻击主机向靶机伪造ARP响应数据包,告诉靶机攻击主机为网关,靶机会将攻击主机的MAC地址以网关身份写入到自己的MAC表中,当靶机要与外网通信时,会将数据包发送给网关,由于网关IP对应的MAC地址为攻击主机的,故数据实际会发送给攻击主机,攻击主机收到数据可以进行靶机外网数据监听,但由于数据包未成功发送到外网,则靶机不会收到外网响应数据,会造成靶机无法访问互联网;

欺骗

  • 在攻击基础上,攻击主机开启数据转发功能,将收到的靶机数据转发给真实网关,真实网关将数据发送给互联网中目标主机,目标主机将响应数据发送给网关,靶机可以正常接收到互联网响应数据,则靶机可以正常访问互联网

ARP攻击与欺骗实验

环境

  • 靶机:win10
  • 攻击主机:kali

攻击

  • 下载dsniff

    • apt-get install dsniff
  • 使用命令发送ARP攻击数据(持续伪造ARP响应数据),停止攻击ctrl+c
    arpspoof -i 攻击主机网卡名称 -t 靶机IP 网关IP
    arpspoof -i eth0 -t 192.168.126.141 192.168.126.2

欺骗

开启数据转发功能(/proc/sys/net/ipv4/ip_forward):0表示关闭,1表示开启 echo 1 > /proc/sys/net/ipv4/ip_forward

ARP攻击与欺骗研判

攻击

  • 现象:不能访问互联网

  • 排除网络本身问题:查看同网络下其它主机是否能正常访问(正常),查看当前主机网络配置是否正常:网卡是否正常工作(正常)、IP配置信息是否正常(正常) image.png image.png

  • 排除网关问题:检查是否能够跟网关正常通信

  • ARP攻击可能异常现象:

  • 查看网关IP对应MAC地址是否存在其它IP记录,如果存在,则可能遭受ARP攻击; image.png

  • 快速清空MAC表,触发网关ARP请求发送,并查询新的MAC表信息,如果前后网关的MAC不一致,则可能遭受ARP攻击; image.png

欺骗

  • 利用tracert实现路由跟踪功能,查看追踪结果第一跳设备IP是否为网关IP,如果不是,则可能遭受了ARP欺骗; image.png

ARP攻击与欺骗防御

  • 第三方工具:360局域网防护
  • 设置静态MAC地址 image.png