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

2024-06-13 09:44

本文主要是介绍网络安全 - 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 欺骗是众多网络攻击中的一种,持续学习和更新防护知识是保障网络安全的关键。

这篇关于网络安全 - ARP 欺骗原理+实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1056946

相关文章

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事