ARP原理和ARP攻击

article/2025/9/28 19:47:37

ARP--在TCP/IP协议栈中,最不安全的协议莫过于ARP了,我们经常听到的网络扫描,内网渗透,流量欺骗等等,他们基本上都与ARP有关系,甚至可以说,他们的底层都是基于ARP实现的。但是ARP的是实现仅需一问一答的两个包即可,实现上很简单。



目录

  • ARP协议

  • ARP数据包信息

  • ARP攻击


一、ARP协议

ARP(Address Resolution Protocol)地址解析协议,目的是实现IP地址到MAC地址的转换。

在计算机间通信的时候,计算机要知道目的计算机是谁(就像我们人交流一样,要知道对方是谁),这中间需要涉及到MAC地址,而MAC是真正的电脑的唯一标识符。

为什么需要ARP协议呢?因为在OSI七层模型中,对数据从上到下进行封装发送出去,然后对数据从下到上解包接收,但是上层(网络层)关心的IP地址,下层关心的是MAC地址,这个时候就需要映射IP和MAC。

 

ARP之简单请求应答

    当两台计算机在同一个局域网通信,我们以ping命令为例,该命令使用的ICMP协议

 

 

PC1依据OSI模型①依次从上至下对数据进行封装,包括对ICMP Date加IP包头的封装,但是到了封装MAC地址的时候,②PC1首先查询自己的ARP缓存表,发现没有IP2和他的MAC地址的映射,这个时候MAC数据帧封装失败。我们使用ping命令的时候,是指定PC2的IP2的,计算机是知道目的主机的IP地址,能够完成网络层的数据封装,因为设备通信还需要对方的MAC地址,但是PC1的缓存表里没有,所以在MAC封装的时候填入不了目的MAC地址。

 

那么PC1为了获取PC2的MAC地址,③PC1要发送询问信息,询问PC2的MAC地址,询问信息包括PC1的IP和MAC地址、PC2的IP地址,这里我们想到一个问题,即使是询问信息,也是需要进行MAC数据帧的封装,那这个询问信息的目的MAC地址填什么呢,规定当目的MAC地址为ff-ff-ff-ff-ff-ff时,就代表这是一个询问信息,也即使后面我要说的广播。

 

PC2收到这个询问信息后,将这里面的IP1和MAC1(PC1的IP和MAC)添加到本地的ARP缓存表中,然后④PC2发送应答信息,对数据进行IP和MAC的封装,发送给PC1,因为缓存表里已经有PC1的IP和MAC的映射了呢。这个应答信息包含PC2的IP2和MAC2。PC1收到这个应答信息,理所应当的就获取了PC2的MAC地址,并添加到自己的缓存表中。

 

经过这样交互式的一问一答,PC1和PC2都获得了对方的MAC地址,值得注意的是,目的主机先完成ARP缓存,然后才是源主机完成ARP缓存。之后PC1和PC2就可以真正交流了。

 

ARP之广播请求单播回应

    上图面的图解是不完全的ARP协议,因为在局域网里边不会只有两台主机,这里就要考虑如何在局域网众多主机里获得目的主机的MAC。

 

和上面的一样,刚开始PC1并不知道PC2的MAC地址,同样需要发送ARP请求,但是这个局域网里主机很多,怎么唯独获取PC2的MAC呢,①我们想到和一群陌生人交流一样,可以挨着询问一遍,这就是我们要说的广播,首先PC1广播发送询问信息(信息和上一张图介绍的一样),在这个普通交换机上连接的设备都会受到这个PC1发送的询问信息。

 

接下来②需要做的是,所有在这个交换机上的设备需要判断此询问信息,如果各自的IP和要询问的IP不一致,则丢弃,如图PC3、Route均丢弃该询问信息,而对于PC2判断该询问信息发现满足一致的要求,则接受,同样的写入PC1的IP和MAC到自己的ARP映射表中。

 

最后,③PC2单播发送应答信息给PC1,告诉PC1自己的IP和MAC地址。


二、ARP数据包信息

 

ARP数据的详细信息列表如下

 

 

     Hardware type 硬件类型,标识链路层协议
     Protocol type 协议类型,标识网络层协议
     Hardware size  硬件地址大小,标识MAC地址长度,这里是6个字节(48bit)
     Protocol size 协议地址大小,标识IP地址长度,这里是4个字节(32bit)
        Opcode 操作代码,标识ARP数据包类型,1表示请求,2表示回应
   Sender MAC address  发送者MAC
    Sender IP address 发送者IP
   Target MAC address 目标MAC,此处全0表示在请求
    Target IP address 目标IP

 

ARP请求包

 

 

ARP应答包

内容格式和上图相似,不过会有目的地址对应的MAC地址,ARP数据包类型字段为2。


三、ARP攻击

 

我们知道,当PC1对PC2正常通信的时候(先别管攻击者PC3),PC2、PC1会先后建立对方的IP和MAC地址的映射(即建立ARP缓存表),同时对于交换机而言,它也具有记忆功能,会基于源MAC地址建立一个CAM缓存表(记录MAC对应接口的信息),理解为当PC1发送消息至交换机的Port1时,交换机会把源MAC(也就是MAC1)记录下来,添加一条MAC1和Port1的映射,之后交换机可以根据MAC帧的目的MAC进行端口转发,这个时候PC3只是处于监听状态,会把PC1的广播丢弃。

 

正常的PC3会把广播包丢弃,同样的PC3可以抓住这一环节的漏洞,把不属于自己的广播包接收,同时回应一个虚假的回应包,告诉PC1我就是PC2

(IP2-MAC3),这样PC1会收到两个回应包(一个正确的IP2-MAC2,一个虚假的IP2-MAC3),但是PC1并不知道到底哪个是真的,所以PC1会做出判断,并且判断后到达的为真,那么怎么让虚假的回应包后到达呢,PC3可以连续不断的发送这样的回应包,总会把哪个正确的回应包覆盖掉。

 

而后PC1会建立IP2-MAC3这样一条ARP缓存条目,以后当PC1给PC2发送信息的时候,PC1依据OSI模型从上至下在网络层给数据封装目的IP为IP2的包头,在链路层通过查询ARP缓存表封装目的MAC为MAC3的数据帧,送至交换机,根据查询CAM表,发现MAC3对应的接口为Port3,就这样把信息交付到了PC3,完成了一次ARP攻击。

 

 

如果ARP攻击严重话,会导致同一个局域网(也是同一个广播域)的所有主机的ARP缓存表中都存放着错误的IP和MAC的映射,如上图,每台主机的ARP缓存表中,不论哪个IP,都会映射到攻击者的MAC地址MAC1上,这样该局域网内的所有主机的消息都发送到Hacker的主机上。

转自:http://blog.51cto.com/13570193/2083332


http://chatgpt.dhexx.cn/article/VKYD43b0.shtml

相关文章

ARP网络攻击实验

ARP攻击原理: ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址。 ARP 病毒攻击是局域网最常见的一种攻击方式。由于TCP/IP协议存在的一些漏洞…

ARP攻击

简单介绍 作为安全攻防的菜鸟,今天简单的介绍ARP攻击,经过几次的实验和理解,也算顺利完成了这个简单的攻防实验。 实验过程: 在这里,我用的是: 攻击者:kali 靶机:window xp 这两个…

网络安全专栏——局域网arp断网攻击

步骤 系列文章前言1.实验准备1.1cmd命令行,查看本机ip网关信息1.2确保本机能上网1.3获取虚拟机信息 2.开始arp断网攻击2.1 可能出现的问题:arpspoof: couldnt arp2.2 成功攻击的效果 附录.参考资料 总结 系列文章 提示:转到网络安全专栏&…

局域网内的ARP断网攻击

一、环境准备: Kali虚拟机linux内核版本:5.16.0-kali5-amd64 (这只是说明下我的内核版本,其实只要版本不要太老,基本都能用)在虚拟机设置的网络适配器里选择桥接模式 二、配置和安装相关第三方工具 1.配置…

局域网内的攻击—Arp欺骗

0x00:ARP协议 在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。MAC地址就是ARP协议获得的。其实就是主机在发送帧前将目标IP…

arp内网攻击

严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。 本文目的 演示如何借助Kali Linux系统内置的 nmap、arpspoof、driftnet、ettercap、fping 等渗透测试工具对局域网内(同WIFI下)同一网段的PC主机、手机进行 ARP 欺骗 和 流量监听,实现…

arp欺骗断网攻击(控制局域网内的网络)

【前言】 ARP攻击:ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址。 ARP协议存在很多漏洞和不足,给计算机网络造成很大的隐患。首先…

局域网arp攻击_「网络安全」常见攻击篇(23)——ARP攻击

什么是ARP攻击? ARP攻击是利用ARP协议设计时缺乏安全验证漏洞来实现的,通过伪造ARP数据包来窃取合法用户的通信数据,造成影响网络传输速率和盗取用户隐私信息等严重危害。 ARP攻击原理 ARP病毒及木马程序利用ARP的安全缺陷实现对网络的攻击。 ARP攻击原理 网络中有A、B、C三…

利用wireshark破解网站密码

^---想做坏事的赶脚 当我们输入账号、密码登录一个网站时,网站如果允许你使用HTTP(明文)进行身份验证,此时捕获通信流量非常简单,然后就可以对捕获到的流量进行分析以获取登录账号和密码。这种方法不仅适用于局域网&am…

目录扫描暴力破解网站管理员密码

一,靶场环境 1,目标网站:http://172.16.43.117:8010/ 2, 使用工具为(最后会给出网盘链接): 御剑1.5(爬取目录结构) brupsuite 进行暴力破解 二,使用御剑扫描目录 1,打开御剑,并且将url复制…

简简单单几行Python代码就能暴力破解网站登录密码,真有这么强吗?

前言 你以为你各大网站自动保存的密码都只有你自己知道吗?其实想要知道你在网站上面保存的密码非常简单,只需要几行代码就能搞定,不信?那就来看看吧 ​ 关键代码解释 url指定url地址 url "http://192.168.171.2/dvwa/vu…

密码暴力破解

密码暴力破解 什么是暴力破解不安全的密码密码猜解思路Python暴力破解BurpSuite暴力破解DVWA的low等级暴力破解DVWA的high等级暴力破解 其他暴力破解工具wfuzzHydraMedusamsfconsole 如何防御暴力破解服务器防御用户防御 什么是暴力破解 使用大量的认证信息在认证接口尝试登录…

又一神器!万能网站密码爆破工具

在Web渗透测试中有一个关键的测试项:密码爆破。 目前越来越多的网站系统在登录接口中加入各式各样的加密算法,依赖于BurpSuite中的那些编码方式、Hash算法已经远远不够,这里给大家介绍一款支持AES/RSA/DES(即将支持)加密算法,甚至…

Python暴力破解网站登录密码脚本

测试靶机为DVWA,适合DVWA暴力破解模块的Low和Medium等级 关键代码解释 url指定url地址 url "http://192.168.171.2/dvwa/vulnerabilities/brute/"header设置请求头 header { User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20…

如何通过Python暴力破解网站登陆密码

首先申明,该文章只可以用于交流学习,不可以用于其他用途,否则后果自负。 现在国家对网络安全的管理,越来越严,但是还是有一些不法网站逍遥法外,受限于国内的人力、物力,无法对这些网站进行取缔…

如何破解大型网站的登录

阅读本文需要4.66分钟 你被标题吸引了吧。。。别急着关。。重头戏在后面 最近当我玩B站的时候,一不小心用代码登录了它,并几乎无限制的上传视频。 那么接下来,我来讲解如何通过Hack技术来模拟 哔哩哔哩 的登录,并完成我们的视频上…

网络安全攻防之网站后台帐号密码暴力破解解析

前言 对于网站运行的个人站长而言,最担心的是应如何有效且安全的去管理自己的网站,否则自己辛辛苦苦经营的网站就会被不请自来的不速之客给攻破,轻则站点数据被窃取,重则整个网站都被攻陷,导致无法恢复。 本文主要从…

网站加密密码查看(或者破解)

从源代码中查看到的加密算法(MD5 单次加密) ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190705112059582.png public static string MD5(this string str) { if (string.IsNullOrEmpty(str)) { return string.Empty; } MD5CryptoServiceProvi…

网站管理后台帐号密码暴力破解方法

【导读】 对于网站运行的个人站长而言,最担心的是应如何有效且安全的去管理自己的网站,否则自己辛辛苦苦经营的网站就会被不请自来的不速之客给攻破,轻则站点数据被窃取,重则整个网站都被攻陷,导致无法恢复。 本文主…

万能网站密码爆破测试工具,太强了 !

内容来源:https://github.com/whwlsfb/BurpCrypto BurpCrypto是一款支持多种加密算法、或直接执行浏览器JS代码的BurpSuit插件。 一、编译 mvn package 二、为什么解决了痛点 目前越来越多的网站系统在登录接口、数据请求接口中加入各式各样的加密算法&#xff…