blackstar

V1

2022/07/08阅读:43主题:默认主题

网络安全之ARP欺骗

一、背景

在某次线上排查问题的过程中,使用arp -a指令查询到主机本地ARP缓存列表上,出现多个IP绑定同一个MAC地址的情况:

正常情况下,主机本地ARP缓存列表上一个IP唯一绑定一个MAC,但是目前的情况却不是,初步怀疑主机可能受到ARP欺骗病毒攻击;为了进一步了解ARP在网络中的安全问题,于是对ARP协议安全性进行理论性学习和模拟验证,整理成文档,方便大家学习。

二、ARP协议概述

2.1.什么是ARP协议

ARP协议全称为Address Resolution Protocol,即地址解析协议,它位于TCP/IP协议簇的数据链路层。

2.2.ARP协议作用

网络中,一台设备要想和另外一台设备进行通信,除了知道目标设备的IP地址外,还需要知道目标地址的MAC地址。ARP协议的作用就是通过目标设备的IP地址查询目标设备的MAC地址,保证通信的顺利进行。

2.3.ARP协议原理

两台设备在同一局域网内,当主机A访问目标主机B时,主机A发送包含目标主机B IPARP协议请求广播到局域网络上的所有主机,并接受包含目标主机B MAC地址的ARP协议响应,并按照IPMAC一一映射的方式存入本机ARP缓存表到一定时间,方便下次主机A访问目标主机B时直接查询本地ARP缓存表。具体过程视图如下:

如果两台设备处于不同局域网内,当主机A访问主机B时,需要通过路由器的转发功能实现获取目标主机BMAC地址的目的。

2.4.ARP协议数据存储结构

ARP协议栈结构图

  • HTYPE (Hardware Type) : 传输ARP消息的本地网络类型,其中包含:
Hardware Type(HTYPE) Value
Ethernet 1
IEEE 802 Networks 6
ARCENT 7
Frame Relay 15
Asynchronous Transfer Mode (ATM) 16
HDLC 17
Fibre Channel 18
Asynchronous Transfer Mode (ATM) 19
Serial Line 20
  • PTYPE (Protocol Type) : 协议类型,包括:IPv4和IPv6
  • HLEN (Hardware Length) : 物理地址长度
  • PLEN (Protocl Length): 协议长度
  • OPER (Operation): ARP包类型
InARP Reply Opcode (Operation Code)
ARP Request 1
ARP Reply 2
RARP Request 3
RARP Reply 4
DRARP Request 5
DRARP Reply 6
DRARP Error 7
InARP Request 8
InARP Reply 9
  • SHA (Sender Hardware Address) : 发送者的物理地址,长度不固定
  • SPA (Sender Protocol Address) : 发送者的逻辑地址,长度不固定
  • THA (Target Hardware Address) : 目标主机的物理地址

2.5.ARP协议存在的安全隐患

由于ARP协议设计之初就没有考虑安全性的验证机制来验证ARP消息的真伪,所以无论原始消息是否针对它,网络上的设备都可以响应ARP请求。攻击者可以基于这种未验证的机制,实现本地网络的欺骗。例如:主机A询问主机BMAC地址,主机C的攻击者可以响应,主机A会接收主机C的响应作为主机B的真实响应,从而达到欺骗主机A的目的。

三、什么是ARP欺骗

3.1.原理

  1. 假如局域网内有三台主机,分别为:ABCIPMAC地址绑定关系如下:
A主机地址为:IP : 172.20.1.2 MAC : 02-02-02-02-02-02
B主机地址为:IP : 172.20.1.3 MAC : 03-03-03-03-03-03
C主机地址为:IP : 172.20.1.1 MAC : 01-01-01-01-01-01
  1. 正常情况下,主机A发送ARP广播包,询问谁是172.20.1.1请回复主机A的过程视图如下:

通过arp -a查询主机AARP缓存表信息如下:

B主机地址为:IP : 172.20.1.3 MAC : 03-03-03-03-03-03 
C主机地址为:IP : 172.20.1.1 MAC : 01-01-01-01-01-01
  1. 如果主机B上被植入ARP欺骗程序,主机A发送ARP广播包,询问谁是172.20.1.1请求回复主机A。如果主机B上的ARP欺骗程序先接收到这个ARP广播包,会将宿主主机BMAC地址或ARP欺骗程序虚拟的MAC地址填充到ARP响应包中,回复给主机A的过程视图如下:

通过arp -a查询主机AARP缓存表信息如下:

B主机地址为:IP : 172.20.1.3 MAC : 03-03-03-03-03-03 
C主机地址为:IP : 172.20.1.1 MAC : 03-03-03-03-03-03

3.2.类型

  1. ARP欺骗主机
  1. ARP欺骗网关

3.3.危害

  • 使同一网段内其他设备无法正常上网
  • 可以嗅探到同子网段内的所有数据包
  • 可以对被欺骗主机发送的信息包进行篡改
  • 可以控制被欺骗的主机设备

四、ARP欺骗实战

下面是真实环境下出现的ARP欺骗场景,通过两个关键步骤即可知道主机是否中了ARP欺骗病毒。

1.查看主机ARP缓存列表

该主机ARP缓存表中非广播IP绑定的MAC地址全部是一样的,结合上述理论介绍,中了ARP欺骗病毒的概率非常高。

2.Wireshark抓包验证

抓取的ARP包可以非常清楚地看到主机设备的ARP响应包都是上述MAC地址为c4-70-ab-f3-80-a0主机上的欺骗软件伪造的。

五、ARP欺骗模拟

正常的网络环境中,很难出现ARP欺骗病毒,那么我们该如何模拟出这种环境呢?

1环境准备

  • 物理主机-被欺骗主机(WIN10)
  • IP : 172.220.988.124
  • MAC : e0-d5-5e-a5-a4-f6
  • 虚拟主机-欺骗主机(UOS)
  • IP : 172.20.98.180
  • MAC : 00-0c-29-92-ed-bf
  • ARP欺骗软件包 :arpspoof
  • 网关(GATEWAY)
  • IP : 172.20.98.1
  • MAC : 44-a1-91-9e-52-29

2.模拟步骤

  1. 查看WIN10上网络绑定的MAC地址信息

GETWAYUOS绑定的MAC地址是正常的,WIN10设备可以正常上网

  1. 启动UOS上的欺骗软件
  • -i : UOS主机网卡
  • -t : 被欺骗主机IP
  • -r : 被欺骗主机访问的主机IP(网关)
  1. 查看WIN10上的缓存

UOS绑定的MAC地址变为GATEWAYMAC地址,和背景中的情况基本一致

  1. Wireshark抓包

3.网络情况

  • 无法PING通网关
  • 无法正常上网

六、ARP欺骗防护

  • 强制绑定MAC地址
  • 使用静态ARP缓存表
  • 使用ARP欺骗防护软件
  • 使用ARP服务器,通过服务器查找ARP转换表来响应其他设备的广播

七、ARP防护实战

针对ARP欺骗的几种防护手段,下面只详细介绍下在WINOWS系统上如何通过强制绑定MAC地址防护欺骗

1.查看WIN10网卡信息

2.绑定IP到指定MAC地址

3.启动UOS设备的ARP欺骗软件,验证防护措施是否生效

  • PING网关
  • 访问网络

4.清除WIN10本地ARP缓存列表,重新查看WIN10本地ARP缓存列表,网关IP和MAC地址绑定关系已经被篡改

  • PING网关提示超时

综合,强制绑定MAC地址防护措施无法起到一劳永逸的目的,最好是找到安装有欺骗程序的主机,然后将被欺骗主机IP和MAC地址在路由器上进行静态绑定,最后安装ARP欺骗防护安全软件。

参考文献

  • https://www.practicalnetworking.net/series/arp/traditional-arp/
  • https://blog.csdn.net/whoim_i/article/details/104194975/
  • https://blog.51cto.com/u_4048786/3206259/
  • https://www.freebuf.com/articles/network/210852.html/
  • https://blog.csdn.net/who_im_i/article/details/120234324/

分类:

后端

标签:

计算机网络

作者介绍

blackstar
V1

一个常年混迹于摸鱼网站的码农