目录
简介
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报文的总长度为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高速缓存,有对应表项则写入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响应分组
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表中对方IP对应的MAC地址为攻击者的MAC地址。以最简单的网络拓扑为例,其中PC1的IP、MAC为IP1、MAC1、PC2的IP、MAC为IP2、MAC2,路由器R1的IP、MAC为IP3、MAC3:
攻击者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 spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP中毒)或ARP攻击,是针对ARP的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC误以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线。
以攻击局域网,获取局域网内其他用户浏览的图片为例。
攻击机(虚拟机)
操作系统:kali
使用软件:ettercap v0.8.3
IP:10.28.149.132
靶机(主机)
操作系统:Windows 10
使用cmd命令
arp -a
来查看arp表
ettercap v0.8.2 不知什么原因,无法发现主机(图形界面,命令行都试了),所以进行了更新,如果你的本来就是0.8.3或者可以发现主机可以跳过此步骤。
博主的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
启动图形界面,选择网卡eth0,点击下图对勾
点击左上角搜索标志(左数第二个),发现主机,点击右侧按钮(左数第三个)查看发现的主机列表。
选中网关xxx.xxx.xxx.1,点击Add Target1、选中主机IP点击Add Target2。
点击右侧三个点,选择Targets可查看两个Targets。
目标增删
查看连接
进行ARP攻击
选择插件
选择remote_brower插件
主机arp表增加了攻击机
访问一个非https的、含图片的网站(http://www.cxtuku.com/sucai/129877.html),可以看到攻击机kali抓到了图片。
使用命令
driftnet -i eth0
捕获TCP传输的图片
如果你没有安装,可以使用命令
apt-get install driftnet
来安装,
----------------2020年12月18日更新----------------
静态绑定之前先看一下删除,使用以下命令进行删除:
arp -d ip
可以看到,下图红线处的已经删除掉了
将刚才的添加为静态(arp -s),这样就不会动态修改了。与这个ip的通信相对安全,同理,可以添加网关等其他ip与MAC的映射。
腾讯电脑管家、360、彩影等都可以,一般就是软件上面有个按钮,点击一下即可,博主这些都没安装,就“裸奔”呢,就不做演示了。
ettercap的YouTube频道
ettercap的GitHub
《TCP/IP详解卷I》
更多内容查看:网络安全-自学笔记
有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。