当前位置: 首页 > news >正文

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. 攻击步骤

  1. 侦察:攻击者使用网络嗅探工具(如Wireshark)识别网络中的设备和IP地址。
  2. 发送伪造ARP消息:攻击者向网络中的设备发送伪造的ARP响应。
  3. 缓存中毒:受害者的ARP缓存被更新,导致数据流向攻击者。
  4. 数据截获和篡改:攻击者可以监听、记录或修改数据流。

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 应用商店的加持&#xff0c…...

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开发板时&#xff…...

为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/ 查看最新版。原创作品,转载请保留出处。 作者主页&#xff1…...

使用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 --></…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...