网络安全 - ARP 欺骗原理+实验

APR 欺骗

什么是 APR 为什么要用 APR

A P R \color{cyan}{APR} APR(Address Resolution Protocol)即地址解析协议,负责将某个 IP 地址解析成对应的 MAC 地址。

在网络通信过程中会使用到这两种地址,逻辑 IP 地址和物理 MAC 地址,一般情况下,正常通信需要这两种地址协同工作。一个主机要和另一个主机进行直接通信,必须要知道目标主机的 MAC 地址。但这个目标 MAC 地址是如何获得的呢?就是需要通过 ARP 协议获得的。

ARP 工作过程

1.主机 A 想要发送数据包到主机 B,主机 A 先要确定要访问的主机 B 是否处以同一个网络 192.168.100.0 中,主机 A 首先在本机的缓存中查询主机 B 的 IP 地址所对应的MAC 地址。

2.如果主机 A 在本地缓存中找到 192.168.100.142 对应的 MAC 地址,则主机 A 用此MAC 地址封装帧,然后发送出去。

3.如果主机 A 在本地缓存中没有找到 192.168.100.142 对应的 MAC 地址,则主机 A发送一个 ARP 的查询包(ARP Request)。ARP查询包中的源地址是主机 A 的 IP 地址 192.168.100.50,目标 IP 地址是主机 B 的 IP 地址 192.168.100.142,源 MAC 地址是主机 A 的 MAC 地址 00-0c-29-ff-72-22,目标 MAC 地址为广播 MAC 地址 FF-FF-FF-FF-FF-FF。主机 A 封装完成后,把 ARP 查询包以广播的形式发送出去。

4.在同一网段中,主机 B 和主机 C 都会收到这个广播包, 然后解封装该数据包,主机 C 检查数据包的目的 IP 地址,发现目的IP地址是192.168.100.142,与本机不同,主机 C 放弃继续处理该数据包。主机 B 检查数据包的目的 IP 地址,发现目的地址是 192.168.100.142,与本机相同,主机 B 在本地的缓存中增加或更新 192.168.100.50 对应的 MAC 地址条目。

5.主机 B 发现 ARP 查询包是询问本机 IP 地址所对应的 MAC 地址,主机 B 将发回ARP 应答包(ARP Reply)。ARP应答包的源 IP 地址是 192.168.100.142,目的 IP 地址是 192.168.100.50,源 MAC 地址是 00-0c-29-4c-af-b4,目的 MAC 地址是 00-0c-29-ff-72-22,并以单播的方式发送出去。

6.在交换机相连的网络中,交换机是基于目的 MAC 地址转发的,则主机A将收到此 ARP 应答包,从而获得主机 B 对应的 MAC 地址。

7.主机 A 获得主机 B 的 MAC 地址后,主机 A 就可以向主机 B 发送其他数据了。

在这里插入图片描述

ARP 欺骗原理

上面提到了 ARP 缓存表,在每台主机上都有一个 ARP 缓存表,缓存表中记录了局域网主机 IP 地址与 MAC 地址的对应关系,而局域网数据传输依靠的是 MAC 地址。

但是并不是想象中的那么安全,在ARP 缓存表机制存在一个缺陷,就是当请求主机 A 收到 ARP 应答包后,就直接把这个返回包中的 IP 地址与 MAC 地址的对应关系保存到 ARP 缓存表中,如果原有相同 IP 对应关系,原有的则会被替换。

现在主机 A 的 ARP 缓存表中网关IP地址 92.168.100.2 对应的 MAC 地址为 00-50-56-ea-96-d5,如果主机 C 假扮成网关,首先告诉主机 A 我就是网关,主机 C 向主机 A 发送构造好的 ARP 返回包,源 IP 为网关地址 192.168.100.2,源 MAC 则为主机 C 自己的 MAC 地址 00-0c-29-9f-56-f9,主机 A 把这个错误信息记录在了 ARP 缓存表中。

这样主机 A 发送给网关地址的数据包就会发送到主机 C 上了,从而达到了ARP 欺骗的目的。

ARP 欺骗实验

实验目的

本次实验旨在通过配置和使用 Kali Linux 中的 ARP 欺骗工具,如 arpspoof ,演示 ARP 欺骗攻击的过程,并观察其对被攻击主机的影响。通过本实验,了解 ARP 欺骗的原理、实施方法以及防御措施,以加强网络安全意识和能力。

实验环境
  • 两台主机:
    • 被攻击主机(Windows/Linux)
    • 攻击者主机(Kali Linux)
  • Wireshark 安装在其中一台主机上,用于抓包分析。
实验步骤
1. 使用 Wireshark 抓取网络数据包
  • 打开 Wireshark。

在这里插入图片描述

  • 选择合适的网络接口,开始捕获数据包。

    检查网卡信息

    ifconfig
    

在这里插入图片描述
在这里插入图片描述

  • 在捕获过滤器中输入 arp or icmp,以捕获ARP和ICMP数据包。并开始捕获数据包。

在这里插入图片描述

2. 使用 arpspoof 命令进行 ARP 欺骗攻击

在 Kali Linux 中,使用 arpspoof 工具进行 ARP 欺骗攻击:

  • 安装arpspoof (如果未安装):

    apt-get install dsniff -y 
    
  • 查看网络信息

    Kali Linux

    ifconfig && route -n
    

    Windows

    ipconfig
    

    记录下攻击者主机的 IP 地址、MAC 地址、网关 IP 地址以及被攻击主机的 IP 地址。

  • 启动ARP欺骗

     arpspoof -i <网络接口> -t <被攻击主机IP> -r <网关IP>
    

    ​ 上述命令会将网关和被攻击主机的ARP表中的MAC地址替换为攻击者主机的MAC地址。

3、观察通信变化
  • 在 Wireshark 中观察数据包

    看到大量的 ARP 请求和回复包,这些包会显示被欺骗的主机和网关之间的通信变化。

在这里插入图片描述

  • 在被攻击主机上检查ARP表

    在 Windows 上:

    arp -a
    

    在Linux上:

    ip neigh
    

    看到网关的 IP 地址绑定到了攻击者的 MAC 地址。
    在这里插入图片描述

  • 网络连接情况
    使用 ping 命令检查被攻击主机的网络连接。

    ping baidu.com
    

在这里插入图片描述

4、分析与讨论
  • ARP欺骗原理

    ​ ARP 欺骗通过发送伪造的 ARP 响应,将攻击者的 MAC 地址与目标 IP 地址绑定,劫持通信。

  • 对网络的影响

    ​ ARP 欺骗会导致网络通信延迟增加,甚至中断,可能被用于中间人攻击(MITM)来窃取或篡改数据。

  • 检测与防护

    • 使用静态 ARP 表

      ​ 在网络设备中配置静态 ARP 条目,防止 ARP 欺骗。

    • 入侵检测系统(IDS)

      ​ 部署如 Snort 等 IDS 工具,监测和报警 ARP 欺骗活动。

    • 加密通信

      ​ 使用 SSL/TLS 等加密协议,保护通信数据,即使在中间人攻击下也无法被轻易窃取。

5、实验反思
  • 实验环境

    ​ 本实验应在受控和隔离的网络环境中进行,避免对实际网络和业务造成影响。

  • 网络安全意识

    ​ 通过实验,提高了对 ARP 欺骗及其危害的认识,进一步增强了网络安全意识。

  • 持续学习

    ​ ARP 欺骗是众多网络攻击中的一种,持续学习和更新防护知识是保障网络安全的关键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/26275.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何保证数据库和缓存的一致性

背景&#xff1a;为了提高查询效率&#xff0c;一般会用redis作为缓存。客户端查询数据时&#xff0c;如果能直接命中缓存&#xff0c;就不用再去查数据库&#xff0c;从而减轻数据库的压力&#xff0c;而且redis是基于内存的数据库&#xff0c;读取速度比数据库要快很多。 更新…

android studio过滤日志

荣耀手机的日志有很多乱七八糟的输出 在logcat设置过滤 filter name:过滤名称随意 log tag不知道是什么 log message设置过滤的内容或者设置显示的内容 需要过滤的内容&#xff1a; ^(?!.*(gralloc4|InputMethodManager|tagSocket|dataspace)).*$以|分割要过滤的内容 要显…

计算机网络(2) 网络层:IP服务模型

一.Internet Protocol在TCP/IP四层模型中的作用 第三层网络层负责数据包从哪里来到哪里去的问题。传输层的数据段提交给网络层后&#xff0c;网络层负责添加IP段&#xff0c;包含数据包源地址与目的地址。将添加IP段的数据包交由数据链路层添加链路头形成最终在各节点传输中所需…

Maven:一个下载jar依赖失败的问题解决方案

内部的一个jar包已经上传到了私服上&#xff0c;在私服管理端也能看到该jar包的完整信息&#xff0c;但是springboot项目引入该jar包发现死活下载不下来&#xff0c;报错如图&#xff1a; 从该错误信息中可以看到&#xff0c;找不到服务名是xxl-job这个的&#xff0c;我们要找的…

如何将 API 管理从 Postman 转移到 Apifox

上一篇推文讲到用 Swagger 管理的 API 怎么迁移到 Apifox&#xff0c;有许多同学反馈说能不能介绍一下 Postman 的迁移以及迁移过程中需要注意的事项。那么今天&#xff0c;它来了&#xff01; 从 Postman 迁移到 Apifox 的方法有两种&#xff1a; 导出 Postman 集合 &#x…

详细介绍如何解决vcomp140.dll丢失的步骤,分享几种vcomp140.dll修复方法

当这个vcomp140.dll文件丢失时&#xff0c;可能会导致相关程序运行出错甚至无法运行。很多用户可能会遇到vcomp140.dll丢失的问题&#xff0c;但是这并不是不可解决的困难。接下来就和大家分享几种解决vcomp140.dll丢失的方法&#xff0c;给大家详细的关于如何解决vcomp140.dll…

MySQL-连接查询

049-内连接之等值连接 案例&#xff1a;查询每个员工所在的部门名称&#xff0c;要求显示员工名、部门名。 select e.ename, d.dname from emp e inner join dept d on e.deptnod.deptno;注意&#xff1a;inner可以省略 select e.ename, d.dname from emp e join dept d on…

你的医书是假的!批评《DDD诊所——聚合过大综合症》(合集)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 &#xff08;《你的医书是假的&#xff01;》原文写于2023年8月&#xff0c;以系列文章方式发表&#xff0c;现合并成一篇文章&#xff09; 一、说在前面 这两天在“ Thoughtworks洞见…

mask2former利用不确定性采样点选择提高模型性能

在机器学习和深度学习的训练过程中&#xff0c;不确定性高的点通常代表模型在这些点上的预测不够可靠或有较高的误差。因此&#xff0c;关注这些不确定性高的点&#xff0c;通过计算这些点的损失并进行梯度更新&#xff0c;可以有效地提高模型的整体性能。确定性高的点预测结果…

【python】tkinter GUI开发: 多行文本Text,单选框Radiobutton,复选框Checkbutton,画布canvas的应用实战详解

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Vue3使用datav3报错问题解决

报错&#xff1a;Failed to resolve entry for package "dataview/datav-vue3". The package may have incorrect main/module/exports specified in its package.json. 修改package.json 修改为 "module": "./es/index.mjs",

细说MCU串口函数及使用printf函数实现串口发送数据的方法

目录 1、硬件及工程 2、串口相关的库函数 &#xff08;1&#xff09;串口中断服务函数&#xff1a; &#xff08;2&#xff09;串口接收回调函数&#xff1a; &#xff08;3&#xff09;串口接收中断配置函数&#xff1a; &#xff08;4&#xff09;非中断发送&#xff…

飞速(FS)InfiniBand解决方案构建HPC网络

面对HPC领域的不断发展&#xff0c;未来HPC业务核心在于HPC网络和基础设施。随着高性能计算应用的复杂性和数据量的增长&#xff0c;对弹性、可扩展和高效网络的需求变得日益迫切。HPC网络架构作为HPC系统运行的基础&#xff0c;在数据处理、管理和大规模存储方面至关重要。本文…

什么是 URL 过滤?是如何保障浏览体验的?

互联网是一个无边无际的空间&#xff0c;几乎包含了你能想象到的一切。不幸的是&#xff0c;这意味着也存在着从不合适到非常危险的网站。这就是 URL 过滤可以发挥作用的地方。 一、URL 过滤的含义 我们希望您已经熟悉 URL&#xff08;统一资源定位器&#xff09;&#xff0c;…

Linux命令详解(2)

文本处理是Linux命令行的重要应用之一。通过一系列强大的命令&#xff0c;用户可以轻松地对文本文件进行编辑、查询和转换。 cat&#xff1a; 这个命令用于查看文件内容。它可以一次性显示整个文件&#xff0c;或者分页显示。此外&#xff0c;cat 还可以用于合并多个文件的内容…

使用winscp 通过中转机器(跳板机、堡垒机)密钥远程连接服务器,保姆级别教程

1.winscp下载地址 winscp下载 2.安装自己选择位置 3.连接服务器 到这里,基本就是没有壁垒机的就可直接连接,传递文件 4.配置中转服务器(壁垒机、跳板机) 选择高级选项 配置utf-8的编码格式 配置中转服务器(壁垒机、跳板机) 设置中专机的密码或者私钥 配置私钥

Day 16:3040. 相同分数的最大操作数目II

Leetcode 相同分数的最大操作数目II 给你一个整数数组 nums &#xff0c;如果 nums 至少 包含 2 个元素&#xff0c;你可以执行以下操作中的 任意 一个&#xff1a; 选择 nums 中最前面两个元素并且删除它们。选择 nums 中最后两个元素并且删除它们。选择 nums 中第一个和最后一…

Adobe Photoshop cc快速抠图与精致抠图方法

一、背景 Photoshop cc绝对是最好用的抠图and修图软件&#xff0c;但是即使最简单的抠图&#xff0c;每次用时都忘记怎么做&#xff0c;然后再去B站搜&#xff0c;非常费时&#xff0c;下面记录一下抠图过程&#xff0c;方便查阅。 一、Adobe Photoshop快速抠图 选择——主体…

大模型基础——从零实现一个Transformer(3)

大模型基础——从零实现一个Transformer(1)-CSDN博客 大模型基础——从零实现一个Transformer(2)-CSDN博客 一、前言 之前两篇文章已经讲了Transformer的Embedding,Tokenizer,Attention,Position Encoding, 本文我们继续了解Transformer中剩下的其他组件. 二、归一化 2.1 L…

C++--DAY7

vector容器 #include <iostream> #include <vector>using namespace std; void printVector(vector<int> &v) {//定义一个迭代器 指针vector<int>::iterator iter;//v.end&#xff08;&#xff09;是最后一个元素的下一个元素地址for(iterv.begin…