网络-ARP协议详解与ARP欺骗(中毒)攻击实战

目录

简介

ARP报文

ARP流程

四种情况

ARP请求

ARP响应

ARP攻击原理

实战

ARP欺骗

环境

查看arp表

更新攻击机软件

使用ettercap进行攻击

查看劫持到的图片

ARP攻击防御

静态绑定

ARP防火墙

参考


简介

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址(MAC地址)的一个协议。划分到网络层(TCP/IP)或数据链路层(OSI),用在局域网内。

功能:完成主机或路由器IP地址到MAC地址的映射

ARP高速缓存(arp表):IP地址和MAC地址的映射。

注:网络设备的接口有MAC地址,并不是一个网络设备仅有一个MAC地址,二层交换机这种设备没有MAC地址。

ARP报文

ARP报文格式

ARP报文的总长度为64字节,FCS(Frame Check Sequence,帧校验序列),俗称帧尾,即数据链路层的协定数据单元(帧)的尾部栏位,是一段4个位元组的循环冗余校验码,用来验证帧在传输过程中的完整性。

硬件类型:16位,2字节,用来定义运行ARP的网络类型。每个局域网基于其类型被指派一个整数。例如:以太网的类型为1。ARP可用在任何物理网络上。

协议类型:16位,2字节,用来定义使用的协议。例如:对IPv4协议这个字段是0x0800。ARP可用于任何高层协议。

硬件长度:8位,1字节,用来定义物理地址的长度,以字节为单位。例如:对于以太网的值为6。

协议长度:8位,1字节,用来定义逻辑地址的长度,以字节为单位。例如:对于IPv4协议的值为4。

操作码:16位,2字节,用来定义报文的类型。已定义的分组类型有两种:ARP请求(1),ARP响应(2)。

源硬件地址:可变长度字段,单位字节,用来定义发送方的物理地址。例如:对于以太网这个字段的长度是6字节。

源协议地址:可变长度字段,单位字节,用来定义发送方的逻辑(IP)地址。例如:对于IP协议这个字段的长度是4字节。

目的硬件地址:可变长度字段,用来定义目标的物理地址,例如,对以太网来说这个字段位6字节。对于ARP请求报文,这个字段为全0,因为发送方并不知道目标的硬件地址。

目的协议地址:可变长度字段,用来定义目标的逻辑(IP)地址,对于IPv4协议这个字段的长度为4个字节。

ARP流程

流程:检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF FF-FF-FF-FF的帧封装并广播ARP请求分组同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)。

四种情况

1.主机A发给本网络上的主机B:用ARP表找到主机B的硬件地址;
2.主机A发给另--网络上的主机B:用ARP表找到本网络上一个路由器(网关)的硬件地址;
3.路由器发给本网络的主机A:用ARP表找到主机A的硬件地址;
4.路由器发给另一网络的主机B:用ARP表找到本网络上的一个路由器的硬件地址。

ARP请求

广播ARP请求分组

ARP响应

单播ARP响应分组

网络拓扑图

PCi对应IPi与MACi,i为1~5。默认网关为IP6。

PC1想与PC3通信

PC1广播ARP请求分组(IP1,IP3,MAC1,FF-FF-FF-FF-FF-FF),“我的ip为IP1,我的MAC地址为MAC1,哪位老哥的ip为IP3呀,你的MAC地址是多少呢?”,交换机发给PC2、PC3,PC2发现不是找自己的,不予答复(后续不再赘述),PC3单播ARP响应分组(IP3,MAC3),“小老弟,我的IP是IP3、MAC地址是MAC3”。

PC1想与PC5通信

PC1广播ARP请求分组(IP1,IP6,MAC1,FF-FF-FF-FF-FF-FF),“我的ip为IP1,我的MAC地址为MAC1,默认网关IP6,你的MAC地址是多少呢?”,路由器R1单播ARP响应分组(IP6,MAC6),“小老弟,我的IP是IP6、MAC地址是MAC6”。PC1收到后单播ARP请求分组(IP1,IP5,MAC1,MAC6),路由器R1收到后再次封装,单播ARP请求分组(IP1,IP5,MAC7,MAC8),路由器R2收到后再次封装,广播(IP1,IP5,MAC9,FF-FF-FF-FF-FF-FF),PC5单播ARP响应分组(IP5,MAC5),路由器R2收到PC5的单播知道PC5的MAC地址后再单播给路由器R1,R1再单播给PC1,PC1就知道PC5的MAC地址了。

ARP攻击原理

修改通信双方的数据包,使双方ARP表中对方IP对应的MAC地址为攻击者的MAC地址。以最简单的网络拓扑为例,其中PC1的IP、MAC为IP1、MAC1、PC2的IP、MAC为IP2、MAC2,路由器R1的IP、MAC为IP3、MAC3:

ARP攻击示例
  • 攻击者PC2聆听局域网上的MAC地址。它只要收到主机PC1和路由器R1洪泛的ARP Request,就可以进行欺骗活动。

  • 主机PC1、路由器R1都洪泛了ARP Request.攻击者现在有了主机和路由器的IP、MAC地址,开始攻击。

  • 攻击者发送一个ARP Reply给主机PC1,把此包ARP协议头部里的Source Protocal Address设为路由器的IP地址IP3,Source Hardware Address设为攻击者PC2自己的MAC地址MAC2。

  • 主机PC1收到ARP Reply后,更新它的ARP表,把路由器的MAC地址(IP3, MAC3)改为(IP3, MAC2)。

  • 当主机PC1要发送数据包给路由器R1时,它根据ARP表来封装数据包的Link报头,把目的MAC地址设为MAC2,而非MAC3。

  • 当交换机收到主机PC1发送给A路由器R1的数据包时,根据此包的目的MAC地址(MAC2)把数据包转发给攻击者PC2。

  • 攻击者收到数据包后,可以把它存起来后再发送给路由器R1,达到偷听效果。攻击者也可以篡改数据后才发送数据包给路由器R1。

  • 反之同理,如果局域网内还有PC3,PC1与PC3通信,攻击机PC2也可同样攻击。

看过博主其他文章的应该清楚,不实践一下是手痒的,接下来就看一看吧

实战

ARP欺骗

ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP中毒)或ARP攻击,是针对ARP的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC误以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线。

以攻击局域网,获取局域网内其他用户浏览的图片为例。

环境

攻击机(虚拟机)

操作系统:kali

使用软件:ettercap v0.8.3

IP:10.28.149.132

靶机(主机)

操作系统:Windows 10

查看arp表

使用cmd命令

arp -a

来查看arp表

主机arp表

更新攻击机软件

ettercap v0.8.2 不知什么原因,无法发现主机(图形界面,命令行都试了),所以进行了更新,如果你的本来就是0.8.3或者可以发现主机可以跳过此步骤。

0个主机
0个主机

 博主的ettercap是0.8.2版本,截至目前(2020.12.1),ettercap的最新版本是0.8.3,由于无法发现主机,所以更新到了0.8.3版本。

apt update
更新
apt list --upgradable | grep ettercap

查看最新版本

查看最新版本
apt install ettercap-common ettercap-graphical

 更新到0.8.3版本

更新中
ettercap -G

使用ettercap进行攻击

启动图形界面,选择网卡eth0,点击下图对勾

启动图形界面

点击左上角搜索标志(左数第二个),发现主机,点击右侧按钮(左数第三个)查看发现的主机列表。

发现22个ip地址

选中网关xxx.xxx.xxx.1,点击Add Target1、选中主机IP点击Add Target2。

 点击右侧三个点,选择Targets可查看两个Targets。

当前目标

目标增删

两侧可以进行目标增删

查看连接

查看连接

进行ARP攻击

进行ARP攻击

选择插件

插件

选择remote_brower插件

选择remote_brower插件

主机arp表增加了攻击机

主机arp表

访问一个非https的、含图片的网站(http://www.cxtuku.com/sucai/129877.html),可以看到攻击机kali抓到了图片。

浏览器访问

查看劫持到的图片

使用命令

driftnet -i eth0

捕获TCP传输的图片

捕获到图片

如果你没有安装,可以使用命令

apt-get install driftnet

 来安装,

安装driftnet

----------------2020年12月18日更新----------------

ARP攻击防御

静态绑定

静态绑定之前先看一下删除,使用以下命令进行删除:

arp -d ip

删除

 可以看到,下图红线处的已经删除掉了

删除后的arp表

将刚才的添加为静态(arp -s),这样就不会动态修改了。与这个ip的通信相对安全,同理,可以添加网关等其他ip与MAC的映射。

添加为静态

ARP防火墙

腾讯电脑管家、360、彩影等都可以,一般就是软件上面有个按钮,点击一下即可,博主这些都没安装,就“裸奔”呢,就不做演示了。

参考

ettercap的YouTube频道

ettercap的GitHub

《TCP/IP详解卷I》

更多内容查看:网络安全-自学笔记

有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。

  • 7
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Arp命令是网络管理中常用的一种命令,主要用于查看和修改本地ARP高速缓存中的条目。ARP(Address Resolution Protocol)是一种用于将IP地址转换为物理地址的协议。下面是Arp命令的详细介绍。 1. 查看ARP高速缓存表 使用Arp -a命令可以查看本地ARP高速缓存表中的所有条目,包括IP地址和对应的物理地址。 例如,输入Arp -a命令后,可以得到以下结果: ``` 接口: 192.168.1.100 --- 0x3 Internet 地址 物理地址 类型 192.168.1.1 00-11-22-33-44-55 动态 192.168.1.2 00-11-22-33-44-56 动态 ``` 其中,接口表示本地网络接口的IP地址;Internet地址表示其他计算机的IP地址;物理地址表示其他计算机的MAC地址;类型表示该ARP条目的类型,动态表示该条目是根据网络流量动态生成的。 2. 清除ARP高速缓存表 使用Arp -d命令可以清空本地ARP高速缓存表中的所有条目。 例如,输入Arp -d命令后,可以清空本地ARP高速缓存表中的所有条目。 3. 添加ARP高速缓存表条目 使用Arp -s命令可以手动添加ARP高速缓存表中的条目。 例如,输入Arp -s 192.168.1.1 00-11-22-33-44-55命令后,可以手动向本地ARP高速缓存表中添加一条192.168.1.1的IP地址和00-11-22-33-44-55的MAC地址的对应关系。 4. 修改ARP高速缓存表条目 使用Arp -s命令也可以修改ARP高速缓存表中已有的条目。 例如,输入Arp -s 192.168.1.1 00-11-22-33-44-56命令后,可以将本地ARP高速缓存表中192.168.1.1的IP地址和MAC地址的对应关系修改为00-11-22-33-44-56。 总之,Arp命令是网络管理中常用的命令之一,可以方便地查看和修改本地ARP高速缓存中的条目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lady_killer9

感谢您的打赏,我会加倍努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值