使用Kali Linux进行ARP欺骗

使用Kali Linux进行ARP欺骗

一、什么是ARP欺骗

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

二、前言

1.ARP协议

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

2.原理

RP欺骗的运作原理是由攻击者发送假的ARP数据包到网上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。攻击者亦可将ARP数据包导到不存在的MAC地址以达到阻断服务攻击的效果,例如netcut软件。

3. 简单案例分析

这里用一个最简单的案例来说明ARP欺骗的核心步骤。假设在一个LAN里,只有三台主机A、B、C,且C是攻击者。
攻击者聆听局域网上的MAC地址。它只要收到两台主机洪泛的ARP Request,就可以进行欺骗活动。 主机A、B都洪泛了ARP
Request.攻击者现在有了两台主机的IP、MAC地址,开始攻击。 攻击者发送一个ARP Reply给主机B,把此包protocol header里的sender IP设为A的IP地址,sender mac设为攻击者自己的MAC地址。 主机B收到ARP Reply后,更新它的ARP表,把主机A的MAC地址(IP_A, MAC_A)改为(IP_A, MAC_C)。
当主机B要发送数据包给主机A时,它根据ARP表来封装数据包的Link报头,把目的MAC地址设为MAC_C,而非MAC_A。
当交换机收到B发送给A的数据包时,根据此包的目的MAC地址(MAC_C)而把数据包转发给攻击者C。
攻击者收到数据包后,可以把它存起来后再发送给A,达到偷听效果。攻击者也可以篡改数据后才发送数据包给A,造成伤害。

三、实战测试

1.打开终端,进入Root模式

sudo su

2.确定你的网卡名称和IP地址

ifconfig

在这里插入图片描述

3.扫描可攻击的目标

fping -g 本机IP地址/24

扫描可攻击的目标,发现有两台存在的目标
192.168.88.2为本次的目标靶机
192.168.88.128为Kali局域网IP
在这里插入图片描述

4.查看靶机IP

上一步已经扫描出来了所有局域网IP,再次操作是为了确认目标靶机IP,以防误伤。
打开Windows11的cmd命令提示符(Win+R输入cmd)

ipconfig

在这里插入图片描述

5.通过Root权限使用以下命令攻击

在Kali Linux带Root权限的终端中输入命令以开始攻击
其中 -i 表示指定网卡 -t 表示持续不断地攻击

arpspoof -i 网卡 -t 靶机IP地址 网关

在这里插入图片描述

如果攻击目标为手机,我以我的网卡eth0为例,假如手机的IP是192.168.88.26,手机的网关就是192.168.88.1(就是IP的最后一位改为1)
于是攻击命令就是
arpspoof -i eth0 -t 192.168.88.26 192.168.88.26

6.Kali中持续不断地发送arp应答包,进行ARP欺骗成功

在这里插入图片描述

7.停止攻击

如果你想停止攻击,就按下Ctrl+Z,攻击就停止了。

四、driftnet图片截取(许多网站基本获取不了,没有参考价值,仅供娱乐)

driftnet是一款图片捕获工具,可以很方便的在网络数据包中抓取图片

参数:
-b 捕获到新的图片时发声
-d 指定保存图片的路径
-x 指定保存图片的前缀名
-i 选择监听接口
-f 读取一个指定pcap数据包中的图片
-a 后台模式:
-m 指定保存图片数的数目

安装driftnet

apt-get install dsniff

进行ARP欺骗后,打开另外一个终端并执行命令,即可获取到目标主机的图片

driftnet -i eth0

在这里插入图片描述

### Kali Linux使用 ENSP 进行 ARP 欺骗的教程 #### 实验环境搭建 为了在 Kali Linux 和 ENSP 之间实现 ARP 攻击和欺骗,首先需要确保两者能够相互通信。这通常涉及配置虚拟机网络设置以及路由器设备之间的连接。具体来说,在实验环境中应完成以下操作: - 配置 Kali Linux网络接口为桥接模式或 NAT 模式,以便其可以与 ENSP 路由器模拟的局域网通信[^1]。 - 设置 ENSP 中的交换机和路由器 IP 地址,并启用 DHCP 或手动分配静态 IP 给 PC 设备。 #### ARP Spoofing 原理概述 ARP 欺骗是一种攻击技术,其中攻击者发送伪造的 ARP 请求或响应包来修改目标主机的 ARP 缓存表项。这种行为可能导致流量被重定向到攻击者的机器上,从而实施中间人攻击 (MITM),或者通过阻止合法通信造成拒绝服务效果[^3]。 当执行 ARP spoofing 时,攻击者会不断广播虚假信息给受害节点,声称自己拥有某个特定的目标 MAC 地址关联至不同的 IP 地址组合。这样做的后果是使得受害者尝试联系原本应该到达真实目的地的数据流转向了恶意第三方控制下的路径之上[^2]。 #### 执行步骤说明 以下是基于上述理论基础的具体实践指南: ##### 安装必要工具 确认已安装 `dsniff` 工具集,它包含了用于发起 ARP 欺骗所需的命令 arpspoof 。如果没有预装,则可以通过 apt-get install dsniff 来获得该软件包。 ```bash sudo apt update && sudo apt upgrade -y sudo apt install dsniff -y ``` ##### 启动监听并发动攻击 假设当前存在如下拓扑结构: - Router(Router0)作为默认网关,具有地址 192.168.1.1; - Victim Machine (PC2),其IP设定了为 192.168.1.253; - Attacker Machine 即运行 kali 的系统位于同一子网上并通过 eth1 接口接入LAN。 那么就可以按照下面方式启动对 victim machine 的 arp spoof: ```bash root@kali:~# arpspoof -i eth1 -t 192.168.1.253 192.168.1.1 ``` 此命令告诉本地网络内的其他成员相信我们的计算机才是真正的 router ,进而截获它们发往外部世界的任何请求。 同时如果想进一步切断 victim pc 到 internet 的连通性的话还可以反过来也做一次反向绑定即把 gateway 认为自己是 client : ```bash root@kali:~# arpspoof -i eth1 -t 192.168.1.1 192.168.1.253 ``` 以上两条指令共同作用下就实现了所谓的双向arp欺骗,既可以让attacking machine 成功扮演man-in-the-middle角色又能让target device彻底失去internet access. 注意:实际测试过程中可能还需要调整防火墙规则允许转发数据包等功能才能顺利完成整个过程。 --- ### 注意事项 尽管本指导提供了关于如何利用KALI LINUX配合ENSP平台来进行ARP欺骗的技术细节描述,但在现实世界里未经授权擅自对他人的电脑系统进行此类活动属于违法行为并将受到法律严惩!因此仅限于教育目的学习研究之用,请勿非法滥用这些技能!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xiao5ovo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值