arp欺骗及其实验
ARP欺骗(ARP Spoofing)是一种网络攻击技术,攻击者通过伪造ARP(地址解析协议)消息,将其MAC地址与目标IP地址关联,从而实现对网络流量的截获、篡改或重定向。以下是ARP欺骗的详细信息:
一.理论
1. ARP协议概述
-
功能:ARP用于将IP地址解析为MAC地址,以便在局域网中进行数据传输。
-
工作原理:当设备需要发送数据到特定IP地址时,它会广播ARP请求,询问哪个设备拥有该IP地址。拥有该IP地址的设备会回复其MAC地址。
-
ARP的分类
ARP主要分为普通的ARP、免费ARP和代理ARP(此处主要介绍普通ARP和免费ARP)
普通ARP和免费ARP的作用
1、通过ARP的请求和应答报文,可以根据目的IP地址来解析其对应的MAC地址
2、发送免费ARP请求,可以探测本机的IP地址在广播域内是否冲突、告知其他网络节点自己的IP地址和MAC地址、更新其他网络节点的ARP缓存表
ARP报文中涉及的全0-MAC地址和全F-MAC地址
全F为数据链路层封装的MAC,表示二层广播发送(免费ARP应答的Target MAC也为全F,表示该目的IP对应的MAC为非未知的)
全0为ARP请求报文的Target MAC封住的,表示目的MAC未知
-
arp协议:即地址解析协议,将IP地址转换为对应的mac地址,属链路层协议
-
补充内容:计算机网络基础知识总结 | 菜鸟教程
2. ARP欺骗的原理
- 伪造ARP响应:攻击者向网络中的设备发送伪造的ARP响应,声称自己的MAC地址与目标IP地址相关联。
- 缓存中毒:受害者的ARP缓存会被更新,导致其将数据发送到攻击者的MAC地址,而不是目标设备。
- arp欺骗原理_arp欺骗的工作原理-CSDN博客
- ARP攻击最终的结果是导致网络中断,而ARP欺骗的最终结果是使得流量通过自身达到监控或控制的目的
3. 攻击目的
- 数据截获:攻击者可以监听和记录通过其设备传输的数据。
- 中间人攻击:攻击者可以修改数据包内容,例如篡改网页内容或注入恶意代码。
- 拒绝服务:通过不断发送伪造的ARP消息,使网络中的设备无法正常通信。
4. 攻击步骤
- 侦察:攻击者使用网络嗅探工具(如Wireshark)识别网络中的设备和IP地址。
- 发送伪造ARP消息:攻击者向网络中的设备发送伪造的ARP响应。
- 缓存中毒:受害者的ARP缓存被更新,导致数据流向攻击者。
- 数据截获和篡改:攻击者可以监听、记录或修改数据流。
vmware虚拟网卡配置Kali学习(ms17-010、ms08-067漏洞复现)_kali没有网络-CSDN博客
二.实验:
靶机 win7
默认网关:192.168.222.2
ip地址:192.168.222.132
攻击机:kali2023
ip地址:192.168.222.130
(一)arp断网攻击
1.在虚拟机中下载好arpspoof工具,并且查看好kali和win7的ip,看看相互ping能不能ping通




2. 利用命令查看存活主机,fping -g 192.168.222.0/24,查看当前局域网还存在那些主机,以确定要攻击的主机的ip地址
- fping:这是一个用于发送 ICMP Echo 请求的命令行工具,类似于
ping,但可以同时对多个主机进行 ping 操作。fping的优点是速度快,适合在大范围内进行网络探测。 -
-g:这个选项表示生成一个 IP 地址的列表。它会根据提供的网络地址范围生成所有可能的主机地址。
-
192.168.222.0/24:这是一个 CIDR(无类域间路由)表示法,表示一个子网。
192.168.222.0/24表示从192.168.222.0到192.168.222.255的所有 IP 地址(共 256 个地址),其中24表示网络部分的位数,即前 24 位为网络地址,后 8 位为主机地址。

3.命令格式:arpspoof -i 网卡 -t 目标ip 网关
其中,-i后面的参数是网卡名称,-t后面的参数是目的主机和网关,截取目标的主机发往网关的数据包

可见目标win7直接断网了

终止进程后

可以继续访问

(二)arp限速
大致概念:
当kali欺骗了网关和受害者的时候,受害者访问网络就需要经过kali的网卡,那我们限制kali网卡的速度或者转发的速度就可以限制对方的网速。这里可以使用的工具有tc、iptables、WonderShaper等等,我们以tc为例,tc是通过限制网卡的速度来限制对方的,是一种杀敌一千自损八百的手段。
在写这个之前,介绍工具:(TC)
在Linux中,流量控制都是通过TC这个工具来完成的。通常, 要对网卡进行流量控制的配置,需要进行如下的步骤:
◆ 为网卡配置一个队列;
◆ 在该队列上建立分类;
◆ 根据需要建立子队列和子分类;
◆ 为每个分类建立过滤器。
需要注意的是, 在TC 中使用下列的缩写表示相应的网络延迟:
时间的计量单位:
s、sec或者secs 秒
ms、msec或者msecs 毫秒
us、usec、usecs或者一个无单位数字 微秒
QDisc(排队规则) [qdɪsk]是queueing discipline [ˈkjuːɪŋ] [ˈdɪsəplɪn] 的简写,它是理解流量控制(traffic control)的基础。无论何时,内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。然后,内核会尽可能多地从qdisc里面取出数据包,把它们交给网络适配器驱动模块。
ARP限制网速攻击-CSDN博客
1.要限制网速,kali要先开启路由器转发功能
1.开启端口转发
cat /proc/sys/net/ipv4/ip_forward #值为0表示没开启流量转发,为1表示开启了
echo 1 > /proc/sys/net/ipv4/ip_forward #开启流量转发
2 .限速靶机
sudo tc qdisc add dev eth0 root netem delay 200ms
解释:
sudo:这个命令以超级用户(root)权限执行,因为修改网络配置通常需要更高的权限。-
tc:这是Linux中用于流量控制的命令行工具。 -
qdisc:代表“队列规则”(Queueing Discipline),是用于管理数据包的调度和排队的机制。 -
add:表示添加一个新的队列规则。 -
dev eth0:指定要应用规则的网络设备,这里是eth0,通常是一个以太网接口。 -
root:表示这是一个根队列规则,所有流量都将经过这个规则。 -
netem:代表网络仿真(Network Emulation),用于模拟网络延迟、丢包、重排序等网络特性。 -
delay 200ms:设置网络延迟为200毫秒。这意味着通过eth0接口发送的数据包将会被延迟200毫秒后再发送出去
简单的说就是先把kali限速

可以看见,相比之前,响应速度增加了200ms
3.开启ARP攻击
arpspoof -i eth0 -t 192.168.222.132 192.168.222.2
这里和上面的断网攻击的区别就是,目标机器不会被断网,但是会被限速,而且比起上面的攻击,因为还可以与外界联系,所以很难被察觉

从这里可以看见攻击前后的响应速度差别

(最后的数据为取消arp欺骗的正常响应速度)
(三)ARP嗅探
同样的在使用arp欺骗前 先开启Kali的IP转发
开启IP转发后 流量会经过kali的主机而后再去到目标,
这时开启arpspoof进行欺骗后目标就不会断网,此时kali可拦截相关受害者主机相关信息,开启wireshark拦截受害者ping数据。


接下来就是流量分析的范畴了

来个简单的实用一点的工具使用,图片那个driftnet就不再演示了
urlsnarf(既能抓URL也能抓图片)
使用urlsnarf嗅探受害者访问了哪些网页,默认抓取80、8080、3128端口的数据。
开启路由转发功能,使用arpspoof开启欺骗,然后使用urlsnarf来抓,这个工具好用一些
第一步,开启数据转发
echo 1 > /proc/sys/net/ipv4/ip_forward
第二步,arp欺骗
arpspoof -i eth0 -t 192.168.222.132 198.168.222.2
第三步,实时抓取
urlsnarf -i eth0 #eth0是要抓的网卡
(需要重新开窗口)
urlsnarf -i eth0
以下为结果展示


可见已经成功抓取到了这个流量,实际上也可以通过 wireshark来筛选分析流量,只是比这个要复杂。


相关文章:
arp欺骗及其实验
ARP欺骗(ARP Spoofing)是一种网络攻击技术,攻击者通过伪造ARP(地址解析协议)消息,将其MAC地址与目标IP地址关联,从而实现对网络流量的截获、篡改或重定向。以下是ARP欺骗的详细信息:…...
HDU The Boss on Mars(容斥原理)
题目大意: ACM 有 n 名员工,现在是他们从老板那里拿薪水的时候了。所有员工都从 1 到 n 编号。原因不明,如果员工的工作编号是 k,他今年可以获得 k^4 Mars 美元。所以为 ACM 工作的员工非常富有。 因为员工人数太多,…...
nnUnet 大模型学习笔记(续):训练网络(3d_fullres)以及数据集标签的处理
目录 1. 数据集处理 1.1 实现脚本 1.2 json文件 2. 设置读取路径 2.1 设置路径 2.2 数据集转换 2.3 数据集预处理 2.4 训练(3d_fullres) 3. 训练结果展示 关于nnUnet 数据集的处理和环境搭建,参考上文:第四章:nnUnet大模…...
Java中的数据结构与集合源码
目录 一、数据结构 1.1 数据结构概念 1.2 研究对象 1.3 常见存储结构 1.3.1 数组 1.3.2 链表 1.单向链表 2.双向链表 1.3.3 二叉树 1.3.4 栈(FILO,先进后出) 1.3.5 队列(FIFO,先进先出) 二、集合…...
Java应用程序的测试覆盖率之设计与实现(三)-- jacoco cli 客户端
一、背景 上文已把覆盖率数据采集好了,并提供远程连接的tcp地址及端口。 jacoco cli文档jacoco cli jar包 jacococli.jar 我下载好了,放在github工程里。 本文主要是介绍如何使用jacoco cli 客户端读取并生成覆盖率报告。 二、使用 1、dump覆盖率统…...
Deepin V23 / 统信UOS 下安装与配置 tftp
几个月前,我将开发系统从 ubuntu 切换到 Deepin,当时写过一篇文章《使用国产操作系统作为开发系统》。几个月下来,没有感觉有什么不适应,Ubuntu 能做的事情,在 Deepin 上都能做。而且有 UOS 应用商店的加持,…...
java基础学习:定时任务常见实现方式
一、Timer解析 TaskQueue:小顶堆,存放timeTask。 TimerThread:任务执行线程 死循环不断检查是否有任务需要开始执行,有就执行它。始终是一个线程在执行。 单线程执行任务,任务有可能相互阻塞: schedul…...
句柄是什么?有什么用?举例说明
在C#编程中,“句柄”(Handle)是一个与操作系统资源相关联的标识符。句柄是一个指针或者索引,用于在程序代码中引用系统资源,如窗口、文件、线程等。由于直接操作这些资源非常危险且复杂,操作系统提供句柄作…...
Jenkins学习笔记
Jenkins学习笔记 NumTitleComments1官网 官方网站 中文文档2基础Jenkins基础3groovy1.groovy语法 2.groovy 入门4pipelinepipeline基本语法介绍5Github actiongithub action6Shared library1 2...
AI 解读软考高级操作系统顺序存取、直接存取、随机存取、相联存取的区别
这几个术语描述了不同类型的存储方式,它们涉及数据存取的顺序和灵活性。为了更好地理解,我们可以先通过生活中的例子来感受这些概念。 生活化例子 1. 顺序存取: 想象你在看一盘录像带(比如老式的VHS录像带)。如果你想…...
STM32烧写准备
目录 一.安装stlink驱动二.烧写器固件升级三.安装烧写程序四.进行测试1.流水灯 五.出现的问题1.升级固件问题2.测试时连接问题 一.安装stlink驱动 amd64是用在64位的,x86用在32位;双击运行即可 出现以下情况表示安装完成当连接上STM32开发板时ÿ…...
为Windows Terminal 配置zsh + Oh-My-Zsh!
参考: 为Windows Terminal 配置zsh Oh-My-Zsh! [非WSL] https://zhuanlan.zhihu.com/p/625583037 Package: zsh - MSYS2 Packages 安装配置 1、安装 Windows Terminal(必须) Method 1: 打开 Microsoft Store,搜索 “Windows Terminal”。点击 “…...
RNN、LSTM 与 Bi-LSTM
一. RNN 循环神经网络(Recurrent Neural Network, RNN)是深度学习领域一类具有内部自连接的神经网络能够学习复杂的矢量到矢量的映射。 最大特点:前面的序列数据可以用作后面的结果预测中。 一个简单的循环神经网络结构,其结构包…...
第一性原理
第一性原理是指从最基本的真理出发,分析和推导复杂现象或问题,不依赖于传统的假设或经验,而是从根本的原则出发进行思考。 将复杂问题拆解为更小的部分,逐一分析。在理解了这些基本部分的基础上,再进行组合和构建&…...
DOM NamedNodeMap 接口详解
DOM NamedNodeMap 接口详解 引言 在文档对象模型(DOM)中,NamedNodeMap 接口提供了一种方式来操作元素的属性集合。它是一种特殊的 NodeList,其中的每个节点都有一个名称和值。本文将详细介绍 NamedNodeMap 接口,包括其属性、方法和使用场景。 NamedNodeMap 接口概述 N…...
EasyExcel自定义下拉注解的三种实现方式
文章目录 一、简介二、关键组件1、ExcelSelected注解2、ExcelDynamicSelect接口(仅用于方式二)3、ExcelSelectedResolve类4、SelectedSheetWriteHandler类 三、实际应用总结 一、简介 在使用EasyExcel设置下拉数据时,每次都要创建一个SheetWr…...
Burp Suite Professional 2024.9 for macOS x64 ARM64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2024.9 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接:https://sysin.org/blog/burp-suite-pro-mac/ 查看最新版。原创作品,转载请保留出处。 作者主页࿱…...
使用Mock库进行依赖注入的实用指南
使用Mock库进行依赖注入的实用指南 在现代软件开发中,测试是确保代码质量的重要环节。尤其是在进行单元测试时,依赖注入(Dependency Injection, DI)是一种常用的设计模式,它可以帮助我们更好地管理依赖关系,提高代码的可测试性。本文将深入探讨如何使用Python的unittest…...
nosql课本习题
nosql题目 1. 文档数据库相比其他 NoSQL 的突出优势和特点是什么? 答案: 文档数据库的突出优势在于它的灵活性和可扩展性。不同于传统的关系型数据库,文档数据库允许存储半结构化和非结构化数据,每个文档可以有不同的字段&#x…...
springboot 3.2.5集成spring security 只放行get请求,其他请求403
环境配置 jdk 17 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.5</version><relativePath/> <!-- lookup parent from repository --></…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
CSS 工具对比:UnoCSS vs Tailwind CSS,谁是你的菜?
在现代前端开发中,Utility-First (功能优先) CSS 框架已经成为主流。其中,Tailwind CSS 无疑是市场的领导者和标杆。然而,一个名为 UnoCSS 的新星正以其惊人的性能和极致的灵活性迅速崛起。 这篇文章将深入探讨这两款工具的核心理念、技术差…...
Java中HashMap底层原理深度解析:从数据结构到红黑树优化
一、HashMap概述与核心特性 HashMap作为Java集合框架中最常用的数据结构之一,是基于哈希表的Map接口非同步实现。它允许使用null键和null值(但只能有一个null键),并且不保证映射顺序的恒久不变。与Hashtable相比,Hash…...

