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

news/2024/11/16 7:48:16/

目录

  • 一、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://www.ppmy.cn/news/583640.html

相关文章

渗透测试工具Kali Linux安装与使用

知识点 1. Kali Linux是做渗透测试用的2. 安装VMware Workstation虚拟机3. 安装kali-linux系统4. 基本用法-重新设置root密码5 安装debian11系统-默认命令行模式登录 1. Kali Linux是做渗透测试用的 渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全…

kali linux渗透测试之漏洞扫描

主题内容就是进行漏洞扫描 文章目录 前言一、Nikto1.Nikto漏洞扫描介绍2.Nikto使用 二、Nessus1.Nessus介绍2.安装nessus3.nessus的简单使用3.nessus扫描之advanced scan 三、 skipfish扫描工具1.介绍2.skipfish的使用3.批量处理4.使用字典5.命令选项6.打开文件 四、 AWVS漏洞扫…

使用MASA Stack+.Net 从零开始搭建IoT平台 第五章 使用时序库存储上行数据

目录 前言分析实施步骤时序库的安装解决playload没有时间戳问题代码编写 总结 前言 我们可以将设备上行数据存储到关系型数据库中,我们需要两张带有时间戳的表(最新数据表 和 历史数据表),历史数据表存储所有设备上报的数据&…

【burpsuite安全练兵场-服务端8】文件上传漏洞-7个实验(全)

前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员&…

kali实施文件上传漏洞攻击:

3.1 问题 1)DVWA搭建在Win2008虚拟机(192.168.111.142)2)在宿主机访问DVWA,DVWA级别分别设置Low、Medium3)利用文件上传漏洞,使用kali(192.168.111.142)攻击 3.2 步骤 …

永恒之蓝漏洞复现(ms17-010)

目录 前言 基本命令 ms17-010漏洞复现 漏洞介绍 影响版本 漏洞复现 前言 Metasploit Framework(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程&a…

2021-08-29 网安实验-Linux系统渗透测试之Metasploit攻击linux实例

一:扫描端口 nmap -sT -v 10.1.1.136 扫描漏洞主机开放端口信息,扫描结果如下: 其中6667号端口开放IRC服务,可以利用UnrealIRCD IRC软件的漏洞来攻击漏洞主机。 二:UnrealIRCd后门漏洞 1.输入msfconsole命令 2.运行“search unrealircd”命令 3.运行“use ex

使用kali系统中的nmap工具扫描漏洞

如何使用kali系统中的nmap工具扫描网站漏洞 1.我们打开kali在终端输入nmap可以看到nmap工具的所有参数如下图2.现在我们来使用nmap工具中的这个nmap www.xxx.com命令来扫描网站开了那些端口如下图如图我们知道了网站开了那些端口现在我们运行这个nmap -sv -p端口 --scriptvuln…