网络安全 - 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.rhkb.cn/news/348292.html

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

相关文章

外网如何访问公司内网服务器?

在现代商业环境中&#xff0c;随着信息技术的快速发展&#xff0c;越来越多的公司有需求让远程用户在外网环境下访问公司内网服务器。这在很大程度上提高了远程办公的灵活性和效率。由于安全和网络限制等问题&#xff0c;实现这一目标并不是一件容易的事情。 在处理这个问题时…

《软件定义安全》之一:SDN和NFV:下一代网络的变革

第1章 SDN和NFV&#xff1a;下一代网络的变革 1.什么是SDN和NFV 1.1 SDN/NFV的体系结构 SDN SDN的体系结构可以分为3层&#xff1a; 基础设施层由经过资源抽象的网络设备组成&#xff0c;仅实现网络转发等数据平面的功能&#xff0c;不包含或仅包含有限的控制平面的功能。…

系统思考与创新解决

刚刚完成了为期两天的《系统思考与创新解决》课程&#xff0c;专门面向前端销售管理者。在这两天里&#xff0c;我们深入讨论了众多与公司当前状况密切相关的议题。通过绘制系统环路图&#xff0c;我们一起探索了包括客户满意度、交付周期、市场份额、研发投入、产能利用率、营…

Kubernetes 集群架构

etcd 集群状态存储&#xff1a;etcd 存储所有 Kubernetes 对象的状态&#xff0c;例如部署、pod、服务、配置映射和机密。配置管理&#xff1a;集群配置的更改存储在 etcd 中&#xff0c;允许 Kubernetes 管理和维护集群的所需状态。 注意&#xff1a;etcd 可能位于 kube-syst…

【ARM Coresight Debug 系列 -- ARMv8/v9 Watchpoint 软件实现地址监控详细介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 ARMv8/v9 Watchpoint exceptionsWatchpoint 配置信息读取Execution conditionsWatchpoint data address comparisonsSize of the data accessWatchpoint 软件配置流程Watchpoint Type 使用介绍WT, Bit [20]: Watchpoint TypeLBN, B…

LeetCode | 21.合并两个有序链表

这道题也是很经典的一道题了&#xff0c;408的算法题中也考过这个思想&#xff0c;因为两个链表已是升序&#xff0c;合并只需要两个指针&#xff0c;分别指向两个表的表头&#xff0c;分别比较两个指针所指向的结点的val&#xff0c;小的就插入到目标链表里面&#xff0c;再后…

怎么把pdf格式文件其中几页单独弄出来

在现代办公和学习环境中&#xff0c;pdf格式的文件因其跨平台兼容性和良好的保持原样特性而备受欢迎。然而&#xff0c;有时我们可能只需要pdf文件中的某几页&#xff0c;而不是整个文件。这时&#xff0c;将PDF文件中的特定页面单独提取出来就显得尤为重要。 搜索一下&#xf…

JVM类加载机制和双亲委派

类加载机制 java文件需要编译成字节码文件(.class文件)&#xff0c;jvm是通过类加载机制&#xff0c;将.class文件加载进内存&#xff0c;经过验证连接->初始化直到使用该对象的过程就是类加载机制&#xff0c;当new对象的时候&#xff0c;jvm首先去常量池寻找该类的符号引用…

iOS/iPadOS18Beta是否值得升级体验?Bug汇总和升级办法分享!

苹果昨天发布了iOS/iPadOS18Beta更新&#xff0c;引入了诸多新功能/新特性&#xff0c;很多喜欢尝鲜的用户已经在第一时间进行了升级。 iOS/iPadOS18Beta目前存在不少Bug&#xff0c;建议暂时不要更新&#xff0c;轻则浪费装机时间&#xff0c;重则丢失相关数据&#xff0c;甚至…

构建稳定高效的消息传递中间件:消息队列系统的设计与实现

✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 目录 一、引言 二、设计目标 2.1、高可用性 1. 集群搭建 1.1 …

SprringCloud Gateway动态添加路由不重启

文章目录 前言&#xff1a;一、动态路由必要性二、SpringCloud Gateway路由加载过程RouteDefinitionLocator接口PropertiesRouteDefinitionLocator类DiscoveryClientRouteDefinitionLocatorInMemoryRouteDefinitionRepositoryCompositeRouteDefinitionLocator类CachingRouteDef…

如何在国产深度发行版Linux上部署ONLYOFFICE协作空间社区版?

如何在国产深度发行版Linux上部署ONLYOFFICE协作空间社区版&#xff1f; 书接上文&#xff1a; ONLYOFFICE 协作空间服务器如何一键安装自托管私有化部署 讲的是如何把ONLYOFFICE协作空间服务器部署到自托管云服务器VPS上面&#xff0c;这里继续&#xff0c;在自己Windows电…

git下载项目登录账号或密码填写错误不弹出登录框

错误描述 登录账号或密码填写错误不弹出登录框 二、解决办法 控制面板\用户帐户\凭据管理器 找到对应的登录地址进行更新或者删除 再次拉取或者更新就会提示输入登录信息

三篇卫星切换的论文

目录 一、Energy-Aware Satellite Handover based on Deep Reinforcement Learning 1、题目翻译 2、来源 3、内容 二、A Reliable Handover Strategy with Second Satellite Selection in LEO Satellite Networks 1、题目翻译 2、来源 3、内容 三、User Grouping-Based…

HCIA1 华为VRP系统基本操作

1.实验组网介绍 使用PC电脑通过串口线&#xff0c;直连1台全新的路由器console port&#xff0c;进行简单配置。 2.配置思路 2.1配置设备名称 2.2配置路由器接口地址 2.3保存配置并重启设备 3.配置步骤 3.1 Console方式登录 略 3.2查看设备版本信息 3.3设备基本配置 &am…

第 3 章:Spring Framework 中的 AOP

第 3 章&#xff1a;Spring Framework 中的 AOP 讲完了 IoC&#xff0c;我们再来聊聊 Spring Framework 中的另一个重要内容——面向切面编程&#xff0c;即 AOP。它是框架中众多功能的基础&#xff0c;例如声明式事务就是依靠 AOP 来实现的。此外&#xff0c;Spring 还为我们…

NSS题目练习8

[SWPUCTF 2022 新生赛]numgame 打开发现不能直接更改数值&#xff0c;会变成负数&#xff0c;快捷键不能用&#xff0c;输入view-source查看源代码&#xff0c;发现js文件 点开后发现最下面有个酷似flag的东西 提交后是错的&#xff0c;看着像是base64&#xff0c;解码后得到另…

Leetcode 100.相同的树

1.题目要求&#xff0c;如图所示: 我们可以用两个数组去解决此题: 1.首先我们要用malloc函数去构造两个数组&#xff0c;还要去构造两个数组的长度,代码块如下图所示: int* p_length (int*)malloc(sizeof(int));*p_length 0;int* q_length (int*)malloc(sizeof(int));*q_l…

果园预售系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;果树管理&#xff0c;果园管理&#xff0c;果园预约管理 前台账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;论坛&#xff0c;公告&a…

SwiftUI中自定义Shape与AnimateableData的使用

上一篇文章主要介绍了一下在SwiftUI中如何自定义Shape&#xff0c;本篇文章主要介绍Shape中的 一个关键的属性AnimatableData&#xff0c;它用于定义可以被动画化的数据。通过实现 Animatable 协议&#xff0c;可以让自定义视图或图形响应动画变化。 AnimatableData 是 Animata…