ARP攻击原理和kali实现ARP攻击

article/2025/9/16 7:17:53

目录

  • 一、ARP协议和ARP攻击
    • 1.ARP协议
    • 2.利用Wireshark分析ARP数据包
    • 3.ARP攻击
  • 二、kali实现ARP攻击和ARP欺骗
    • 1.实验过程
    • 2.问题记录T_T

一、ARP协议和ARP攻击

1.ARP协议

ARP协议,地址解析协议(Address Resolution Protocol),用来实现IP地址到物理地址的映射。
每一台主机都设有一个ARP高速缓存(ARP cache),里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表,主机如何获取这些地址的?
例如,主机A向本局域网上的某台主机B发送IP数据报时,要先在ARP高速缓存中查看有无主机B的IP地址,如果有,就在ARP高速缓存标中查出对应的硬件地址,再把这个硬件地址写入MAC帧,然后发送到该硬件地址。
如果查不到主机B的IP地址(有可能是B刚入网,或者A刚加电,高速缓存还是空的),A就自动运行ARP,查找主机B的硬件地址。

  1. ARP进程在本局域网上广播发送一个ARP请求分组。
  2. 在本局域网上的所有主机运行的ARP进程都收到该ARP请求分组。

在这里插入图片描述

  1. 主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下ARP请求分组,并单播向主机A发送ARP响应分组。
    在这里插入图片描述
  2. 主机A 收到主机B的ARP相应分组以后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。ARP对保存在高速缓存中的每一个映射地址都设置生存时间,凡是超过生存时间的项目就从高速缓存中删除掉。
    在Windows系统中可以通过arp -a 查看arp缓存表信息。
    在这里插入图片描述
    当本网段新连入一台设备,并且与本主机产生通信后,arp表更新为:
    在这里插入图片描述

2.利用Wireshark分析ARP数据包

新加入本网段一台新设备(分配的ip为192.168.43.131),利用Wireshark捕获ARP数据包
在这里插入图片描述
ARP请求包
在这里插入图片描述
ARP回应包
在这里插入图片描述
ARP协议中各字段
在这里插入图片描述
Hardware type :硬件类型,标识链路层协议
Protocol type: 协议类型,标识网络层协议
Hardware size :硬件地址大小,标识MAC地址长度
Protocol size: 协议地址大小,标识IP地址长度
Opcode: 操作代码,标识ARP数据包类型,1表示请求request,2表示回应reply
Sender MAC address :发送者MAC地址
Sender IP address :发送者IP地址
Target MAC address :目标MAC地址
Target IP address: 目标IP地址

说明:我这里使用的是手机热点,两台设备连入热点。上面arp的请求和回应是连入同一个热点的两个设备之间。手机的mac地址可以通过终端模拟器(Android Terminal Emulator 或者 Termux),输入命令 ip add 查看。如果想在手机上查看连接到本机热点的设备ip地址和硬件地址,可输入命令ip neigh查看

3.ARP攻击

ARP欺骗攻击原理:
ARP欺骗攻击建立在局域网主机间相互信任的基础上的。
比如:假设A、B、C在同一个局域网中,网关为192.168.43.1,IP地址和MAC地址分别假设如下。假设C是攻击者。

ABC
IP地址192.168.43.2192.168.43.3192.168.43.4
MAC地址macAmacBmacC

当A发广播询问:我是192.168.43.2,硬件地址macA,我想知道主机IP是192.168.43.3的硬件地址。
此时B回应:我是192.168.43.3,硬件地址是macB。
如果此时IP地址是192.168.43.4的C非法回应:我是IP192.168.43.3,我的硬件地址是macC。
这样A就会收到两个ARP回应包,由于ARP遵循后到优先规则,所以如果C持续不停发出ARP欺骗包,就一定能够覆盖掉正常的ARP回应包(也称为ARP毒化)。然后A就会误信192.168.43.3的硬件地址是macC。这样当主机A向主机B发送数据时,主机C就劫持了主机A发送给主机B的数据,这就是ARP欺骗的过程。
相反,如果主机B向主机A发送数据,主机C依然可以以同样的ARP欺骗,劫持主机B发送给主机A的数据,这样就形成了“中间人攻击”。
还有一种ARP欺骗的方法:主机C直接冒充网关,此时主机C会不停的发送ARP欺骗广播,大声说:我是192.168.43.1,硬件地址是macC。此时局域网内所有主机都会被欺骗,更改自己的缓存表,C将会监听到整个局域网发送给互联网的数据报。
ARP攻击分类:
1、ARP泛洪攻击
通过向网关发送大量ARP报文,导致网关无法正常响应。首先发送大量的ARP请求报文,然后又发送大量虚假的ARP响应报文,从而造成网关部分的CPU利用率上升难以响应正常服务请求,而且网关还会被错误的ARP表充满导致无法更新维护正常ARP表,消耗网络带宽资源。
2、ARP欺骗主机的攻击
攻击者通过ARP欺骗冒充网关,使得局域网内被攻击主机发送给网关的流量信息实际上都发送给攻击者。
3、欺骗网关的攻击
把别的主机发送给网关的数据通过欺骗网关的形式使得这些数据通过网关发送给攻击者。这种攻击目标选择的不是个人主机而是局域网的网关,这样就会攻击者源源不断的获取局域网内其他用户数据。
4、中间人攻击
最典型的攻击之一,中间人攻击是同时欺骗局域网内的主机和网关,局域网中用户的数据和网关的数据会发给同一个攻击者,这样,用户与网关的数据就会泄露。
5、IP地址冲突攻击
通过对局域网中的物理主机进行扫描,扫描出局域网中的物理主机的MAC地址,然后根据物理主机的MAC进行攻击,导致局域网内的主机产生IP地址冲突,影响用户的网络正常使用。

二、kali实现ARP攻击和ARP欺骗

1.实验过程

首先声明kali实现ARP攻击实验所用的环境,一部手机开启热点,一台电脑和一台手机连接同一个热点。 网关(开启热点的手机):192.163.43.1; 电脑,kali:192.168.43.217; 手机:192.168.43.98。

首先我的主机是Kali,通过 ip add 查看本机的IP。在这里插入图片描述
然后通过fping -g 本主机IP查看同一局域网中的主机IP。
在这里插入图片描述
在这里插入图片描述

也可以用nmap -sP 网络网段查看同一局域网的主机。
在这里插入图片描述
确定了192.168.43.98就是接下来的攻击目标(也就是连入该热点的手机)。可以通过Termux查看本机IP来验证,并且此时是可以上网的。
在这里插入图片描述

现在在kali中通过arpspoof实现ARP攻击。

( 如果输入arpspoof命令出现了bash: arpspoof:未找到命令这种情况,可参考文章https://blog.csdn.net/qq_42137895/article/details/105250215 )
在这里插入图片描述
此时发现,被攻击主机网络十分缓慢甚至无法上网。
在这里插入图片描述
停止ARP攻击后,被攻击主机又可以上网了。

接下来进行ARP欺骗
除了arpspoof以外,还需要使用eteercap和driftnet 进行嗅探。

首先要开启IP转发功能,linux系统出于安全考虑不支持IP转发,需要修改/proc/sys/net/ipv4配置文件的ip_forward。
在这里插入图片描述
关于/proc/sys/net/ipv4/下文件的详细解释可查看文章https://www.cnblogs.com/happy1983/p/9173100.html
将ip_forward的值改为1,原来默认为0。
(如果想进行断网攻击,就可修改回0,如果这里是0,被攻击主机不能上网,是1就可以上网)
在这里插入图片描述
使用arpspoof,此时被攻击主机可以正常上网,欺骗成功(该窗口不要关)。
在这里插入图片描述
接下来使用ettercap进行嗅探。
当靶机登陆http网站时,就可以捕获用户登录信息。
在这里插入图片描述
但我这里一直显示SEND L3 ERROR,显示不出用户登录信息,不知道是什么原因。。。T_T
在这里插入图片描述
使用driftnet进行嗅探,当靶机浏览图片时可以截获图片。
在这里插入图片描述
在这里插入图片描述

2.问题记录T_T

  • arpspoof最初查询不到是因为PATH路径的问题,需要添加PATH路径,修改/etc/profile文件,但是修改后不管是source /etc/profile还是. / etc/profile都不是永久生效,注销和重启也都不行。
  • 使用arpspoof时,最开始命令中没有加-r,断网攻击和欺骗都失败了,后来加上-r,就可以了,查了一下-r这个参数。但我还是不明白为什么没有-r参数会失败。

-r 毒化两个主机(目标和主机(host))以捕获两个方向的网络流量。(仅仅在和-t参数一起使用时有效)

  • 使用ettercap捕获用户登录信息的时候,一直显示SEND L3 ERROR,但是没找到具体原因。

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

相关文章

怎么处理ARP攻击

ARP故障说明: ping 的时候可能好久才能接收到一个响应,或者说干脆就Ping不通。网络时好时坏,通过ARP -a命令不能看到同网段的在线用户,但是net view 可以看到全网开放共享的电脑名,这时候就需要注意了,可能是ARP攻击。…

网络安全--ARP攻击原理与防护

目录 一.ARP的原理 二.ARP攻击现象及危害 三.ARP攻击的原理 四.ARP防护 在局域网当中,有一个协议由于它的特性一旦遭受攻击就非常麻烦。首先是它的攻击门槛比较低,找到一些小工具就能实现攻击,而且危害极大。这个协议就是ARP协议。 ARP攻击是…

渗透技术——ARP攻击

Part 1: ARP攻击介绍 ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的底层协议,负责将某个IP地址解析成对应的MAC地址。而ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生…

Linux操作系统及其发行版本

文章目录 Linux是什么Liunx与WindowsLinux的发行版本1. Debian系列:2. Slackware系列:3. Redhat系列:4. 其他发行版本: Linux是什么 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、…

linux查看系统版本命令

*一、查看Linux系统发行版本 * 命令1:lsb_release -a 该命令适用于所有Linux系统,会显示出完整的版本信息,包括Linux系统的名称,如Debian、Ubuntu、CentOS等,和对应的版本号,以及该版本的代号&#xff0c…

哪些是linux系统版本,linux系统主要有哪些版本

linux系统主要版本有:Redhat版本,基于RPM包的YUM包管理方式;2.CentOS版本,免费的、开源的、可以重新分发的linux发行版;3.Ubuntu版本,拥有漂亮的用户界面的系统;4.Mandriva版本,KDE桌…

Linux操作系统介绍及版本

1.1 认识Linux Linux操作系统是基于UNIX以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统,Linux能运行各种工具软件、应用程序以及网络协议,它支持安装在32位和64位CPU硬件上。 通常来讲,Linux这个词只表示Linux内核&a…

Linux版本简介

Linux系统最早由LinusTorvalds在1991年开始编写,在此诞生之前同时也具备了五大前提条件:UNIX操作系统、MINIX 操作系统、GNU计划、POSIX标准、INTERNET。先让我们看一下Linux系统的发行版本,包括Redhat、Ubuntu、Fedora、SUSE、Slackware、De…

Linux各个系统版本及区别(Ubuntu,CentOS..)

一、概览 Linux的版本号分为两部分:内核版本和发行版本。 内核版本:不包含外围程序GNU程序库和工具,命令行shell,图形界面的X Window系统和相应的桌面环境等 发行版本:RedHatLinux,CentOS, Ubuntu&#xff…

网站整合CKEditor和CKFinder(Java版)

准备文件 CKEditor: 在 http://ckeditor.com/download ,可以下载到各种版本的CKEditor,包括完整版full、标准版standard、基础版basic等。同时也可定制的下载,可以选择Toolbar类型、插件、语言等。 CKEditor for java: 在http://ckeditor.c…

编辑组件CKEditor与文件管理组件CKFinder

ckeditor ckfinder ckeditor:html文本编辑插件,源码为javascript编写,实现对文本域的托管 下载时选择Full Package版本 解压后,去除一些不必要的文档;放置到js目录下即可 当然,也可以看看搭建案例samples 在这里可以设置需要的组件功能按钮 勾选完成后;得到配置代…

(ckeditor+ckfinder用法)Jquery,js获取ckeditor值 .

2010-10-15 17:14 1244人阅读 评论(1) 收藏 举报 CKEditor 3.3.1 和 ckfinder 2.0 配置 with jQuery 1.42 请看33楼! CKEditor 3.2 在 asp.net 下进行配置的方法: 官方网站:CKEditor CKFinder 1、CKEditor 不具备上传功能&#xff0…

Spring Boot集成CKFinder

Spring Boot集成CKFinder,实现浏览功能。 前言 上一篇记录了Spring Boot集成CKEditor,这里记录Spring Boot集成CKFinder实现浏览功能,详细的配置可以参考ckeditor和ckfinder集成详细配置及其优化,这里讲在Spring Boot中怎么玩CKFinder。ckeditor中“浏览…

配置CKFinder(Java版)

1. 下载 CKFinder官网下载地址提供了PHP&#xff0c;ASP, Java等不同下载版本。 2. 配置 1&#xff09;config.xml放到WEB-INF下&#xff0c; 2&#xff09;其他文件放到Webcontent下&#xff0c; 3&#xff09;配置web.xml, xml<!--CKFinder --><servlet&…

CKEditor/FCKEditor 使用-集成 CKFinder(上传文件、浏览文件)

CKFinder 也是 CK 系列的产品之一&#xff0c;它有两个功能&#xff1a;上传文件、浏览文件。一般来说&#xff0c;它是集成在 CKEditor 或 FCKEditor 中&#xff0c;以便在编辑器中插入超链接或图像时可以直接上传&#xff0c;也可通过浏览直接插入编辑器中。并且 CKFinder 提…

CKEditor与CKFinder学习--安全的使用CKFinder与权限控制

0 前言 上一篇博客中说了ckeditor与ckfinder整合之后进行图文混排的时候通过浏览服务器按钮可以浏览服务器上的所有资源&#xff0c;文件&#xff0c;图片&#xff0c;该用户上传的&#xff0c;非该用户上传的&#xff0c;不仅可以查看&#xff0c;还可以删除、重命名等。所以…

CKEditor和CKFinder及CKEditor配置属性说明

最近在做一个新闻发布平台&#xff0c;放弃了很早的FCKEditor&#xff0c;使用CKEditor和CKFinder&#xff0c;尽管免费的CKFinder是Demo版本&#xff0c;但是功能完整&#xff0c;而且用户都是比较集中精神发新闻的人&#xff0c;不会在意这个。按照官网的document一步一步配置…

ckfinder--如何去掉版本提示This is the demo version of CKFinder

最近用到ckfinder作为文件管理集成到项目当中使用&#xff0c;但是发下从官网下载来的java版本的ckfinder插件&#xff0c;跑起项目起来发现提示信息This is the demo version of CKFinder&#xff0c;于是就在网上查找各种资料&#xff0c;有各种不同版本的解释&#xff0c;而…

CKFinder 介绍

<转载:http://baike.baidu.com/view/3565650.htm#1> CKFinder 简介 CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器。 其简单的界面使得它直观&#xff0c;快速学习的各类用户&#xff0c;从高级人才到互联网初学者。 特点 文件夹树导航 &#xff1a;用户直…

CKEditor与CKFinder学习--整合SpringMVC

先来看一下效果 这个是我采用了office2013的皮肤&#xff0c;并对界面按钮做了优化后的效果 这个是bootstrap的皮肤&#xff0c;好了&#xff0c;开始进入正题。 第一步 下载 下载ckeditor和ckfinder ckeditor Full Package版本 http://download.cksource.com/CKEditor/CK…