ARP欺骗的多种手法
学习参考:
ARP欺骗的各种d玩法-CSDN博客
https://juejin.cn/post/7383702153892954164
一、什么是ARP欺骗
1.什么是ARP?
ARP (Address Resolution Protocol) 是一种网络层协议,用于将 IP 地址转换为物理地址(MAC
地址)。在局域网中,每台设备都有唯一的 MAC 地址,而 IP 地址是可以重复分配的。
因此,当一个设备需要发送数据到另一个设备时,它需要知道另一个设备的MAC 地址。
2.什么是ARP欺骗?
ARP欺骗(ARP spoofing),又称ARP毒化(ARP poisoning 网上多译为ARP病毒)或ARP攻击。
ARP 欺骗是一种网络攻击技术,通过发送伪造的 ARP数据包,让目标设备误以为攻击者是其网关或其它设备,从而达到欺骗目标设备的目的。
(针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通)
这样,攻击者就可以截获目标设备发出的数据包,甚至可以修改、篡改数据包中的内容。
ARP欺骗危害:
ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。该木马发作时除了会导致同一局域网内的其他用户上网出现时断时续的现象外,还会窃取用户密码。如盗取QQ密码、盗取各种网络游戏密码和账号去做金钱交易,盗窃网上银行账号来做非法交易活动等,这是木马的惯用伎俩,给用户造成了很大的不便和巨大的经济损失。
3.APR欺骗的原理
ARP 欺骗攻击通过伪造 ARP 数据包来破坏网络的正常通信,达到攻击的目的。
ARP 欺骗的原理主要基于 ARP 协议的工作原理。
ARP 协议的工作原理:
ARP 协议是通过广播请求来获取目标设备的 MAC 地址的。当一个设备需要发送数据到另一个设备时,它会发送一个 ARP请求,询问局域网内的所有设备,是否有指定 IP 地址对应的 MAC 地址。目标设备收到该请求后,会回复一个 ARP 应答,告诉请求者它的 MAC 地址。
ARP 欺骗利用了这种工作原理,攻击者会发送伪造的 ARP 数据包,将自己伪装成网关或其它设备。目标设备收到伪造的 ARP 数据包后,会将攻击者的 MAC地址映射到目标 IP地址上,并将后续数据包发送给攻击者。攻击者就可以截获目标设备发出的数据包,甚至可以修改、篡改数据包中的内容。
此时,攻击者已经拦截了目标设备和网关之间的数据包传输,并可能对数据包进行抓包,修改或篡改等攻击。同时,攻击者可以再发送伪造的ARP请求,将其它设备的IP映射到自己的MAC地址上,这样攻击者就可以中间人攻击,抓包,篡改等等。
二、ARP欺骗的实现
(一)ARP攻击的实现过程
1、攻击者扫描网络中的 IP 地址和 MAC 地址。
2、攻击者构造伪造的 ARP 数据包,其中包含网络中其他设备的 IP 地址和攻击者自己的 MAC 地址。
3、攻击者发送伪造的 ARP 数据包到网络中。
4、被攻击的设备接收到伪造的 ARP 数据包,并更新其 ARP 缓存表。
5、之后,被攻击的设备将数据包发送到攻击者控制的设备上,而不是真正的目标设备,因此攻击者可以截获网络流量并篡改数据包。
(二)ARP欺骗的攻击方法
1.中间人攻击 :通过 ARP 欺骗,攻击者可以成为网络中的中间人,收集网络流量并篡改数据包。
2.数据劫持 :攻击者可以通过 ARP 欺骗来获取网络中的敏感信息,如用户名和密码。
3.欺骗DNS :攻击者可以通过 ARP 欺骗来重定向 DNS 请求到攻击者控制的服务器上。
4.后门攻击 :攻击者可以通过 ARP 欺骗来在网络中放置后门,进一步控制被攻击主机。
5.分布式拒绝服务攻击 (DDoS) :攻击者可以通过控制多台设备进行 ARP 欺骗来发起 DDoS 攻击。
三、ARP欺骗的模拟实验
主要参数:
-a # 主机 :显示 arp 缓冲区的所有条目;
-H # 地址类型 :指定 arp 指令使用的地址类型;
-d # 主机 :从 arp 缓冲区中删除指定主机的 arp 条目;
-D # 使用指定接口的硬件地址;
-e # 以 Linux 的显示风格显示 arp 缓冲区中的条目;
-i # 接口 :指定要操作 arp 缓冲区的网络接口;
-s # 主机 MAC 地址 :设置指定的主机的 IP 地址与 MAC 地址的静态映射;
-n # 以数字方式显示 arp 缓冲区中的条目;
-v # 显示详细的 arp 缓冲区条目,包括缓冲区条目的统计信息;
-f # 文件 :设置主机的 IP 地址与 MAC 地址的静态映射。
虚拟机准备: ip 网关
攻击机:kali 192.168.3.45
靶机:win7 192.168.3.44 192.168.3.1
两虚拟机设置桥接模式
使用arp -a 查看网关mac
工具准备:arpspoof
语法 arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host参数 -i interface:指定要用于发送欺骗数据包的网络接口(eth0...) -c own|host|both:控制是否将欺骗信息发送给目标主机或路由器,或者两者都发送。 (own表示仅欺骗目标主机;host表示仅欺骗路由器;both表示同时欺骗两者) -t target:指定要欺骗的目标IP地址。 -r:用于在主机和目标之间进行双向ARP欺骗。 host:想要欺骗的主机的IP地址。
1.ARP断网
靶机能ping通百度,说明网络环境没问题
下面开始断网攻击
arpspoof -i eth0 -t 192.168.3.44 192.168.3.1
语法:
arpspoof -i 网卡 -t 目标IP 网关也可以使用反向欺骗:
arpspoof -i 网卡 -t 网关 目标IP
可欺骗win7的arp缓存表,导致win7不能上网,这是最常用的ARP断网技术。
win7不能上网的原因是linux默认不转发数据,即 此时的kali不转发网关和win7之间的数据导致win7无法上网。
在win7上查看arp -a 查看可以发现,网关的mac地址与kali的mac地址一样,证明欺骗成功 。
攻击成功后,目标主机断网“请求超时”
攻击机中ctrl(+shift)+c 停止后又可以访问
2.限制网速
使被欺骗的主机能够正常访问网站需要开启路由转发功能:
在使用arp欺骗前先开启Kali的IP转发:(开启后靶机不会断网)
echo 1 > /proc/sys/net/ipv4/ip_forward查看是否开启: cat /proc/sys/net/ipv4/ip_forward/proc/sys/net/ipv4/ip_forward 是配置文件,默认内容为0,表示IP转发是关闭的,使用上述命令将该配置文件的内容改写为1,表示开启IP转发。
关闭路由转发功能
echo 0 > /proc/sys/net/ipv4/ip_forward
开启IP转发后 靶机访问网络需要经过攻击机的网卡,
于是攻击机限制自己网卡的速度或者转发的速度也就可以限制靶机。
使用工具tc限制网速(tc是通过限制自己网卡的速度来限制对方的)
限制网速200ms延时
sudo tc qdisc add dev eth0 root netem delay 200ms取消限制网速200ms延时
sudo tc qdisc del dev eth0 root netem delay 200ms参数:
qdisc:排队规则
add:添加
dev:设备(网卡)
root:root用户身份
netem delay:设置网络延时时间
我这里已经是root账户,可不加sudo

限制网速200ms延时,使用arpspoof发现靶机被限速,证明攻击成功

3.嗅探流量
什么叫流量嗅探?
流量中包含着敏感数据,攻击者在不入侵你计算机的情况下获得敏感数据,这个过程叫流量嗅探。
同样的在使用arp欺骗前 先开启Kali的IP转发
开启IP转发后 流量会经过kali的主机而后再去到目标,
这时开启arpspoof进行欺骗后目标就不会断网,此时kali可拦截相关受害者主机相关信息,开启wireshark拦截受害者ping数据。
arpspoof -i eth0 -t 172.16.17.139 172.16.17.254
过滤来自靶机的流量:
ip.addr==172.16.17.139


4.嗅探图片
使用driftnet来嗅探图片,它可以展示流经网卡的图片,严格来说是把流经网卡的图片数据还原为图片,即win7上网看到的图片。
安装driftnet:
我用24年的kali,直接装会报错
需要先改一下源(以中科大为例)
24中科大Kali镜像源: deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free non-free-firmware contrib deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free non-free-firmware contrib重启kali后使用命令安装:
apt-get install driftnet如果还是装不下来可以先更新一下源:
apt-get upgrade
使用driftnet -i eth0 来窃取受害者网络中传输的图片,图片以小窗口的形式显示。
安装: sudo apt install driftnetdriftnet -help --获取使用文档语法: driftnet [options] [filter code]主要参数:-b 捕获到新的图片时发出嘟嘟声-i interface 选择监听接口-f file 读取一个指定pcap数据包中的图片-p 不让所监听的接口使用混杂模式-a 后台模式:将捕获的图片保存到目录中(不会显示在屏幕上)-m number 指定保存图片数的数目-d directory 指定保存图片的路径-x prefix 指定保存图片的前缀名
实时抓取图片
第一步,开启数据转发
echo 1 > /proc/sys/net/ipv4/ip_forward
第二步,arp欺骗
arpspoof -i eth0 -t 192.168.158.56 198.168.158.52
第三步,driftnet实时抓取图片
driftnet -i eth0 #eth0是要抓的网卡
但是这个工具公认的难用,没抓到图片


保存抓取下来的图片
操作同上,改变一下driftnet的命令
driftnet -i eth0 -a -d /tmp/win7
5.嗅探访问的URL
webspy:使用webspy嗅探受害者访问了哪些网页。
操作同嗅探图片 ,然后使用webspy来抓,但是只能抓取一次。
webspy -i eth0 192.168.158.56


urlsnarf(既能抓URL也能抓图片)
使用urlsnarf嗅探受害者访问了哪些网页,默认抓取80、8080、3128端口的数据。
开启路由转发功能,使用arpspoof开启欺骗,然后使用urlsnarf来抓,这个工具好用一些
urlsnarf -i eth0


6.dsniff 嗅探账密
当网络中出现了填写账号密码的数据时,dsniff工具就开始截获数据,-m参数会解析网络协议。
开启路由转发功能,使用arpspoof开启欺骗,然后使用dsniff来抓。
注意:dsniff不会实时显示结果,当在win7中输入quit的时候dsniff才会显示结果
dsniff -i eth0 -m


可以发现,当用户登录时成功获取到了账号和密码。
ftp>open 115.146.60.252
//尝试连接到IP地址为115.146.60.252的FTP服务器。
//这是FTP客户端用来初始化与服务器通信的标准命令。连接成功就能够登录到该服务器,并进行文件的上传、下载等操作
7.dns欺骗
dnsspoof启用DNS欺骗,如果是请求解析某个域名,dnsspoof会让该域名重新指向另一个IP地址(黑客所控制的主机),如果dnsspoof嗅探到局域网内有DNS请求数据包,它会分析其内容,并用伪造的DNS响应包来回复请求者。
由于dns查询是客户机向网关发起请求,所以如果要在局域网中实现DNS欺骗,前提仍然是arp欺骗。
arpspoof -i eth0 -t 172.16.17.139 172.16.17.254 //ip 网关
e.g 攻击目的:当靶机访问百度的时候会被我们劫持
(1)vim编辑 dnsspoof 配置文件
updatedb //更新locate的数据库
locate dnsspoof.host //使用locate命令定位文件位置

vim /usr/share/dsniff/dnsspoof.hosts //使用vim编辑配置文件
//用法: i插入模式——>ESC——>:wq——>回车保存并退出

(2)kali上开启apache服务,让受害者可以访问到页面
systemctl start apache2.service
(3)发起DNS欺骗
dnsspoof -i eth0 -f /usr/share/dsniff/dnsspoof.hosts-i参数指定网卡,-f调用配置文件
udp dst port 53
//kali机会监听eth0网卡中发往udp53端口的数据包

四、Ettercap的使用
kali自带
ettercap是一种网络嗅探器和中间人攻击工具,通常用于网络安全测试和攻击。它可以捕获网络流量并进行分析,同时还可以修改和重定向流量以执行中间人攻击。
使用ettercap,攻击者可以轻松地欺骗受害者,从而获取敏感信息,例如登录凭据、信用卡号码等。同时,ettercap也可以用作网络安全工具,以检测和纠正网络漏洞和安全漏洞。
使用ettercap进行ARP欺骗攻击实验(保姆级教程)-CSDN博客
启动 Ettercap
在终端中输入以下命令启动 Ettercap 图形界面:
sudo ettercap -G

选择eth0后点击右上方的 √ ,然后点击左上方的🔍扫描该网段的所有主机信息

然后点击🔍右面的hosts-list查看扫描结果,可以看到,已经将win7的ip 172.16.17.139扫描出来了

1.ARP欺骗
进行 ARP欺骗,分别将靶机网关ip 172.16.17.254和Win7ip 172.16.17.139 分别添加为Target1和Target2

点击小地球图标(MITM menu)中选择ARP Poisoning

点击ok开始攻击,成功


查看Win7的mac地址已经变成了攻击机kali的mac地址,win7可以连网


打开ettercap的终端不要关闭,关闭了就不能继续进行欺骗攻击了
wireshark 嗅探流量

dsniff 嗅探账密

ARP实验均可实现。
2.DNS欺骗
e.g 攻击目的:使得win7的网络访问转移到攻击机Kali上
(1)vim编辑 etter.dns 配置文件
locate etter.dns //使用locate命令定位文件位置

sudo vim /etc/ettercap/etter.dns //使用vim编辑配置文件
将攻击机kali的ip地址172.16.17.227添加到如下位置,保存退出

打开kali的apache服务
systemctl start apache2.service

在ettercap上进行DNS劫持
点击右上方的三个竖排点,选择plugins——>Manage plugins

双击选择攻击模式 dns_spoof

在win7上访问百度,通过ping 发现响应包不正常了(ddc5)是kali的(962f)说明DNS劫持成功。

相关文章:
ARP欺骗的多种手法
学习参考: ARP欺骗的各种d玩法-CSDN博客 https://juejin.cn/post/7383702153892954164 一、什么是ARP欺骗 1.什么是ARP? ARP (Address Resolution Protocol) 是一种网络层协议,用于将 IP 地址转换为物理地址(MAC 地址࿰…...
HCIA——one
推荐电影:《模仿游戏》《黑客帝国》《头号玩家》 图灵机每秒五千次计算,当今计算机4080ti算力每秒21万亿次的计算。 OSI七层模型 应用层:人机交互,将抽象语言转换成编码 表示层:将编码转换成二进制 介质访问控制层…...
【vue】⾃定义指令+插槽+商品列表案例
代码获取 07-⾃定义指令插槽商品列表案例 ⼀、⾃定义指令 1. 基本使⽤ 1.1 指令介绍 内置指令:v-model、v-for、v-bind、v-on… 这都是Vue给咱们内置的⼀些指令,可以直接使⽤ ⾃定义指令:同时Vue也⽀持让开发者,⾃⼰注册⼀些…...
多线程——线程的等待通知
目录 前言 一、wait() 方法 1.方法介绍 2.代码示例 3.wait 和 sleep 的区别 二、notify() 方法 1.方法介绍 2.代码示例 三、notifyAll() 方法 1.方法介绍 2.代码示例 结尾 前言 由于线程之间是抢占式执行的,因此线程之间的执行顺序是难以预知的…...
模态与非模态的对话框
本文学习自: 《Qt Creato快速入门》 #include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }1. #include "widget.h" #include "ui_w…...
C语言练习
题目: 1.运用switch选择语句,编写一段C语言,请根据输入的数字,显示相应的星期日,如果数字所对应的星期日并不存在请显示“抱歉,您输入的内容并不存在。” 分析:1.在本题中,要运用到…...
CyberRt实践之Hello Apollo(Apollo 9.0版本)
apollo9.0环境安装参考官方网站 apollo.baidu.com/community/Apollo-Homepage-Document?docBYFxAcGcC4HpYIbgPYBtXIHQCMEEsATAV0wGNkBbWA5UyRFdZWVBEAU0hFgoIH0adPgCY%2BADwCiAVnEAhAILiAnABZxEgOzK1Y%2BQA51M3ROUnJBsbK2WZoyUdkBhcXoAMhlwDFlARnUXZdzE9AGY%2BbFINADYpUhCEFW…...
【JavaScript】LeetCode:61-65
文章目录 61 课程表62 实现Trie(前缀树)63 全排列64 子集65 电话号码的字母组合 61 课程表 Map BFS拓扑排序:将有向无环图转为线性顺序。遍历prerequisites:1. 数组记录每个节点的入度,2. 哈希表记录依赖关系。n 6&a…...
【SpringAI】(一)从实际场景入门大模型——适合Java宝宝的大模型应用开发
一、简单场景介绍 假设你需要为一个商城项目接入一个基于SpringAI的智能客服系统,现在我们来基本模拟一下: 当我通过系统提问,大模型会针对我的问题进行回答。 当我们通过程序提问时,SpringAI会将我们的提问封装成Prompts&#x…...
植物大战僵尸杂交版
最新版植物大战僵尸杂交版 最近本款游戏火爆 下载资源如下: win版本:2.3.7 链接:下载地址 提取码:9N3P Mac(苹果版本):2.0.0 链接:下载地址 提取码:Bjaa 介绍ÿ…...
live2d 实时虚拟数字人形象页面显示,对接大模型
live2dSpeek 测试不用gpu可以正常运行 https://github.com/lyz1810/live2dSpeek 运行的话还需要额外下载https://github.com/lyz1810/edge-tts支持语音 ## 运行live2dSpeek >npm install -g http-server >http-server . ## 运行edge-tts python edge-tts.py...
SpringCloud-持久层框架MyBatis Plus的使用与原理详解
在现代微服务架构中,SpringCloud 是一个非常流行的解决方案。而在数据库操作层面,MyBatis Plus 作为 MyBatis 的增强工具,能够简化开发,提升效率,特别是在开发企业级应用和分布式系统时尤为有用。本文将详细介绍 MyBat…...
Servlet的HttpServletRequest
HttpServletRequest是Java Servlet规范中定义的一个接口,它表示客户端向服务器发送的请求,并提供了与HTTP请求相关的方法和属性。 getSession方法():用于获取与当前请求相关联的HttpSession对象。 setAttribute(String name, Object value)…...
U9销售订单不能带出最新价格出来
业务员突然说系统带不出来销售价格。了解之后,不是带不出来价格,是做了价格调整之后,最新价格没有匹配出来,带出来的价格是历史价格。检查,分析相关的单据,生效日期,失效日期,审核状…...
Jmeter接口测试企业级项目实战day1
1.接口测试 接口测试工具: JMeter:支持多种接口类型,还能测试性能,开源,开源进行二次扩展。 Postman:简单,方便,局限性比较大,适合开发临时行调试 APIFox等:新…...
接口测试面试题含答案
1、解释一下正向和逆向测试。 正向测试:针对接口设计预期的功能和行为,验证接口是否按照预期工作。 逆向测试:针对错误输入、不合理的条件或非预期的使用方式,验证接口是否能够适当地处理这些情况并提供合理的错误处理。 2、什…...
横板营业执照提取生成
前言 有一段时间没发博客了,今天分享下几个月前做的营业执照提取器UI 预览图 框架 b-ui很好用,这个前端框架作者 发布的插件我都会用,鱿鱼助手也是基于这个框架开发的 代码 html <template><view><template><view…...
webm格式怎么转换成mp4?这5种转换方法很好用
现如今,视频格式繁多,而webm作为一种由谷歌开发的视频格式,以其高画质和低带宽需求著称。然而,并非所有设备和播放器都完美支持webm格式,这时将其转换为兼容性更强的MP4格式就显得尤为重要。下面给大家分享5种非常简单…...
C/C++语言基础--C++异常看这一篇就够了
本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 通过前面几节课,我们学习了抽象、封装、继承、多态等相关的概念,接下来我们将讲解异常,异常是专门处理错误的;这一次加了不少图标,希望大家喜欢;C语…...
DFT ATPG中常见影响coverage的因素有哪些?
# DFT ATPG中常见影响Coverage的因素 ## 一、电路结构复杂性 1. **逻辑层次深度** - **原理** - 当电路的逻辑层次很深时,信号在传播过程中会经过多个逻辑门的处理。这使得测试向量难以准确地控制和观察内部节点的状态。例如,在一个具有多层嵌套逻辑的电路中,如一个…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题
20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题 2025/6/9 20:54 缘起,为了跨网段推流,千辛万苦配置好了网络参数。 但是命令iptables -t filter -F tetherctrl_FORWARD可以在调试串口/DEBUG口正确执行。…...
深入理解 C++ 左值右值、std::move 与函数重载中的参数传递
在 C 编程中,左值和右值的概念以及std::move的使用,常常让开发者感到困惑。特别是在函数重载场景下,如何合理利用这些特性来优化代码性能、确保语义正确,更是一个值得深入探讨的话题。 在开始之前,先提出几个问题&…...
python数据结构和算法(1)
数据结构和算法简介 数据结构:存储和组织数据的方式,决定了数据的存储方式和访问方式。 算法:解决问题的思维、步骤和方法。 程序 数据结构 算法 算法 算法的独立性 算法是独立存在的一种解决问题的方法和思想,对于算法而言&a…...
python打卡day47
昨天代码中注意力热图的部分顺移至今天 知识点回顾: 热力图 作业:对比不同卷积层热图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import D…...
Three.js进阶之粒子系统(一)
一些特定模糊现象,经常使用粒子系统模拟,如火焰、爆炸等。Three.js提供了多种粒子系统,下面介绍粒子系统 一、Sprite粒子系统 使用场景:下雨、下雪、烟花 ce使用代码: var materialnew THRESS.SpriteMaterial();//…...




