
blackstar
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 IP的ARP协议请求广播到局域网络上的所有主机,并接受包含目标主机B MAC地址的ARP协议响应,并按照IP和MAC一一映射的方式存入本机ARP缓存表到一定时间,方便下次主机A访问目标主机B时直接查询本地ARP缓存表。具体过程视图如下:
如果两台设备处于不同局域网内,当主机A访问主机B时,需要通过路由器的转发功能实现获取目标主机B的MAC地址的目的。
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询问主机B的MAC地址,主机C的攻击者可以响应,主机A会接收主机C的响应作为主机B的真实响应,从而达到欺骗主机A的目的。
三、什么是ARP欺骗
3.1.原理
-
假如局域网内有三台主机,分别为:A、B和C,IP和MAC地址绑定关系如下:
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
-
正常情况下,主机A发送ARP广播包,询问谁是172.20.1.1请回复主机A的过程视图如下:
通过arp -a查询主机A的ARP缓存表信息如下:
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
-
如果主机B上被植入ARP欺骗程序,主机A发送ARP广播包,询问谁是172.20.1.1请求回复主机A。如果主机B上的ARP欺骗程序先接收到这个ARP广播包,会将宿主主机B的MAC地址或ARP欺骗程序虚拟的MAC地址填充到ARP响应包中,回复给主机A的过程视图如下:
通过arp -a查询主机A的ARP缓存表信息如下:
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.类型
-
ARP欺骗主机
-
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.模拟步骤
-
查看WIN10上网络绑定的MAC地址信息
GETWAY和UOS绑定的MAC地址是正常的,WIN10设备可以正常上网
-
启动UOS上的欺骗软件
-
-i : UOS主机网卡 -
-t : 被欺骗主机IP -
-r : 被欺骗主机访问的主机IP(网关)
-
查看WIN10上的缓存
UOS绑定的MAC地址变为GATEWAY的MAC地址,和背景中的情况基本一致
-
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
一个常年混迹于摸鱼网站的码农