ARP欺骗

1.定义

ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线

2.原理

1.1网关

网关并不是指具体的设备,路由器,计算机终端等各种各样的设备都可以是⽹关,⽹关就是数据必须经过的关⼝。正常情况下路由器是⽹关,但是在ARP欺骗的时候,攻击者终端就变成了⽹关,受害者的数据都流向攻击者。

1.2 ARP协议

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。

1.3 ARP欺骗原理

通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包

一般情况下,ARP欺骗并不是使网络无法正常通信,而是通过冒充网关或其他主机使得到达网关或主机的流量通过攻击进行转发。通过转发流量可以对流量进行控制和查看,从而控制流量或得到机密信息。

下面这段话很形象:

假设主机

A 192.168.1.2

B 192.168.1.3

C 192.168.1.4

网关 G 192.168.1.1

在同一局域网,主机A和B通过网关G相互通信,就好比A和B两个人写信,由邮递员G送信,C永远都不会知道A和B之间说了些什么话。

双向欺骗

C假扮邮递员G,首先要告诉A说:"我就是邮递员" (C主机向A发送构造好的返回包,源IP为G 192.168.1.1,源MAC为C自己的MAC地址),愚蠢的A很轻易的相信了,直接把"C是邮递员"这个信息记在了脑子里;

C再假扮A,告诉邮递员:"我就是A" (C向网关G发送构造好的返回包,源IP为A 192.168.1.2,源MAC地址为自己的MAC地址),智商捉急的邮递员想都没想就相信了,以后就把B的来信送给了C,C当然就可以知道A和B之间聊了些什么

单向欺骗

ARP单向欺骗就更好理解了,C只向A发送一个返回包,告诉A:G 192.168.1.1 的MAC地址为 5c-63-bf-79-1d-fa(一个错误的mac地址),A把这个信息记录在了缓存表中,而G的缓存表不变,也就是说,A把数据包给了C,而G的包还是给A,这样就是ARP单向欺骗了。

3.实验

3.1参数

-a # 主机 :显示 arp 缓冲区的所有条目;

-H # 地址类型 :指定 arp 指令使用的地址类型;

-d # 主机 :从 arp 缓冲区中删除指定主机的 arp 条目;

-D # 使用指定接口的硬件地址;

-e # 以 Linux 的显示风格显示 arp 缓冲区中的条目;

-i # 接口 :指定要操作 arp 缓冲区的网络接口;

-s # 主机 MAC 地址 :设置指定的主机的 IP 地址与 MAC 地址的静态映射;

-n # 以数字方式显示 arp 缓冲区中的条目;

-v # 显示详细的 arp 缓冲区条目,包括缓冲区条目的统计信息;

-f # 文件 :设置主机的 IP 地址与 MAC 地址的静态映射。

3.2 实验环境

kali

win7

3.3 实验过程

1.在win7的cmd中用ipconfig查看网关ip

使用arp -a 查看网关mac

2.为了使被欺骗的主机能够正常访问网站需要开启路由转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

3.在kali中使用arpspoof进行ARP欺骗

arpspoof的使用

语法
arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host


参数
-i interface 指定要使用的接口。
-c own|host|both 指定范围own|host|both(自己|主机|两者)
-t target 指定一台特定主机进行ARP(如果未指定,则为LAN上的所有主机)
-r 两个主机(主机和目标)以捕获两个方向的流量。(仅对-t有效)
host 指定您希望抓取数据包的host(通常是本地网关)

arpspoof -i eth0 -t 192.168.75.129 192.168.75.2

表示对目标机,伪装成其网关

4.在win7上查看arp -a 查看可以发现,网关61.2的mac地址与61.130的mac地址一样。证明欺骗成功

4.防御

1、使用静态ARP缓存

2、使用三层交换设备

3、IP 与MAC地址绑定

4、ARP防御工具

相关推荐
虹科数字化与AR31 分钟前
安宝特应用 | 美国OSHA扩展Vuzix AR眼镜应用,强化劳动安全与效率
安全·ar·远程协助
小林熬夜学编程1 小时前
【Linux网络编程】第十四弹---构建功能丰富的HTTP服务器:从状态码处理到服务函数扩展
linux·运维·服务器·c语言·网络·c++·http
Hacker_Fuchen1 小时前
天融信网络架构安全实践
网络·安全·架构
炫彩@之星1 小时前
Windows和Linux安全配置和加固
linux·windows·安全·系统安全配置和加固
上海运维Q先生1 小时前
面试题整理15----K8s常见的网络插件有哪些
运维·网络·kubernetes
ProtonBase1 小时前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
独行soc9 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
独行soc11 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
fantasy_arch11 小时前
CPU性能优化-磁盘空间和解析时间
网络·性能优化
Clockwiseee11 小时前
php伪协议
windows·安全·web安全·网络安全