目录

解释ARP缓存中毒的基本原理

ARP协议

ARP缓存中毒概念

ARP缓存中毒后果

1)拒绝服务

2)中间人

3)MAC泛洪

ARP缓存中毒缓解技术

TCP序列号预测和TCP重置攻击

TCP概述

TCP序列预测攻击

TCP重置攻击


解释ARP缓存中毒的基本原理


https://www.thegeekstuff.com/2012/01/arp-cache-poisoning/

假设“ A”和“ B”是非常好的朋友,“ A”与“ B”共享他的所有秘密。

现在,如果一个人“ C”进入并假冒“ B”。你能想象会发生什么吗?是的,“ A”可以告诉他所有的秘密给“ C”,而“ C”可以滥用它。

用外行语言来说,这就是ARP缓存中毒的意思。

ARP中毒可能会导致许多严重的网络问题,网络管理员应了解此攻击的工作方式。

ARP协议

在转到ARP缓存配置的描述之前,让我们首先刷新ARP协议的工作方式。ARP协议包含以下4条基本消息:

  1. ARP请求:计算机“ A”在网络上询问“谁拥有此IP?”
  2. ARP答复:除具有请求的IP的计算机外,所有其他计算机均忽略该请求。假设这是“ B”,这台计算机是我所请求的IP地址,这是我的MAC地址。
  3. RARP请求:这与ARP请求大致相同,不同之处在于此消息中的MAC地址是在网络上广播的。
  4. RARP答复:相同的概念。计算机“ B”告诉您所请求的MAC是我的,这是我的IP地址。

连接到网络的所有设备都具有ARP缓存。该缓存包含该主机已经与之通信的网络设备的所有MAC和IP地址的映射。

ARP缓存中毒概念

ARP协议被设计为简单高效,但是该协议的主要缺陷是缺少身份验证。没有在其实现中添加身份验证,因此,无法在ARP答复中对IP到MAC地址映射进行身份验证。此外,主机甚至不检查它是否发送了正在接收ARP回复消息的ARP请求。

用外行语言来说,如果计算机“ A”已经发送了ARP请求并获得了ARP答复,则ARP协议决不能检查ARP答复中的信息或IP到MAC的映射是否正确。同样,即使主机未发送ARP请求并获得ARP答复,它也信任答复中的信息并更新其ARP缓存。这称为ARP缓存中毒。

因此,您可以看到利用ARP协议的这一弱点很容易。邪恶的黑客可以制作有效的ARP答复,其中将任何IP映射到黑客选择的任何MAC地址,然后可以将此消息发送到整个网络。网络上的所有设备都将接受此消息,并将使用新的信息更新其ARP表,这样,黑客就可以控制网络中任何主机的来回通信。

ARP缓存中毒后果

黑客发现ARP缓存中毒的可能性后,攻击者便可以使用各种攻击技术来伤害或控制受害计算机。让我们在这里讨论其中的一些:

1)拒绝服务

黑客可以发送ARP响应,该响应将MAC地址错误或不存在的IP地址映射到网络上。例如,将网络的路由器IP与不存在的MAC映射的虚假ARP答复将降低整个网络与外部世界的连通性,因为现在发送到路由器IP的任何数据包都将被发送到具有MAC地址的计算机那不存在。

2)中间人

顾名思义,黑客可以使他的机器位于您的系统与网络上任何其他系统之间的通信之间。通过这种方式,黑客可以嗅探往返两台计算机的所有流量。

为此,假设您的计算机是主机“ A”,而网络路由器是主机“ B”。“ A”具有IP-A和MAC-A,而“ B”具有IP-B和MAC-B分别作为IP地址和MAC地址。现在,黑客将ARP应答发送到使用他的机器的MAC地址映射到您的IP(IP-A)的路由器,并将另一条ARP应答发送到使用他的机器的MAC地址映射到您的计算机的路由器IP。现在,您的计算机发送到路由器或从路由器发送到计算机的任何消息都将到达黑客的计算机。黑客现在可以在其计算机上打开“ IP转发”功能,这使黑客的计算机可以将所有流量往返于您的计算机和路由器。这样,黑客的机器就位于中间,可以嗅探或阻止流量。

3)MAC泛洪

对于网络上的交换机,MAC泛洪是一种使用的ARP缓存平衡技术。当过载时,许多网络交换机可以开始充当集线器,并开始将所有网络流量广播到连接到网络的所有主机。因此,黑客可以用伪造的ARP答复淹没交换机,并使交换机像集线器一样开始工作。在此角色下,交换机无法启用其“端口安全性”功能,因此它会广播所有网络流量,并且黑客可以利用此功能嗅探网络。

ARP缓存中毒缓解技术

远程中毒ARP缓存有点困难,因为它需要物理访问网络或控制网络中的一台计算机。由于它并不总是那么容易,因此不经常听到ARP攻击。无论如何,采取预防措施总比吃药好。网络管理员应注意不要发生此类攻击。以下是一些缓解措施:

  • 对于小型网络,可以维护静态ARP条目。静态意味着不变,因此,顾名思义,这些条目不能更改,因此,黑客试图更改映射的任何尝试都会失败。这适用于小型网络,但不适用于大型网络,因为添加到网络中的每个新设备的映射都需要手动完成。
  • 对于大型网络,可以探索网络交换机的端口安全功能。某些功能在打开时会强制交换机为交换机上的每个物理端口仅允许一个MAC地址。此功能可确保计算机无法更改其MAC地址,并且不能将多个MAC映射到其计算机,从而防止像“中间人”这样的攻击。
  • 通常,可以部署某些监视工具(如ARPwatch)来在网络上发生某些恶意ARP活动时获取警报。

总而言之,在本文中,我们研究了ARP协议的基础知识,其漏洞,如何利用这些漏洞以及如何缓解它们。

TCP序列号预测和TCP重置攻击


https://www.thegeekstuff.com/2012/01/tcp-sequence-number-attacks/

尽管TCP协议是面向连接的可靠协议,但是仍然存在各种漏洞可以利用。这些漏洞主要是根据攻击来解释的。

在上一篇有关TCP / IP攻击系列的文章中,我们解释了有关ARP缓存中毒的内容。

本文介绍了以下两种攻击:

  1. TCP序列预测攻击
  2. TCP重置攻击

TCP概述

在开始解释攻击之前。让我们对TCP的工作方式有一个基本的了解。

TCP标头如下所示:

下面的解释说明了如何在TCP级别的两个主机之间建立连接。这称为三向握手。必须先进行此握手,然后才能在每个方向上发送任何类型的数据。一旦建立连接,数据就可以双向流动,每个数据包都包含它所包含的数据的起始字节的序号和所接收数据的确认。

  • 假设有两个主机(A和B)要互相通信。假设主机A开始通信。现在从TCP的角度来看,主机A向主机B发送一个SYN数据包。
  • SYN数据包是SYN标志为ON的TCP数据包。
  • 在此数据包中还提到了初始序列号(它是由主机A的TCP生成的值),源端口,目标端口等。
  • 当主机B的TCP层接收到此数据包时,该主机将使用SYN和ACK标志为ON,初始序列号和其他信息的TCP数据包进行答复。
  • 当主机A收到此数据包时,它将检查一些信息,例如SYN标志,确认号(应为主机A的初始序列号+ 1)等,以确认这是来自主机B的预期数据包。
  • 作为回应,主机A发送一个包,该包的ACK标志为开,并且确认号设置为主机B的初始序列号+1。

因此,我们看到序列号在TCP通信中起着重要的作用。序列号是TCP与特定数据包中数据的起始字节关联的数字。这样,接收方TCP会跟踪接收到的数据并进行相应的确认。确认号始终是下一个预期序列号。

TCP序列预测攻击

假设主机A和主机B正在相互通信。现在,可以说坐在中间的攻击者能够以某种方式监视A和B之间的数据包。

让我们看看攻击者的行为:

  • 攻击者想攻击主机A。
  • 它使用新请求向主机B泛洪,从而导致拒绝服务攻击,以阻止主机B与A进行通信。
  • 现在,攻击者可以预测A从B期望的数据包的序列号。
  • 攻击者准备此类数据包并将其发送给主机A。
  • 由于它是伪造的包装,因此主机A认为其来自B。
  • 现在,此数据包可以是终止连接或要求主机A运行某些恶意命令/脚本等的数据包。

因此,攻击者可以劫持连接。

另一种方法是预测ISN(初始序列号)。

让我们看一下RFC-793的摘录:

当创建新的连接时,将使用一个初始序列号(ISN)生成器来选择一个新的32位ISN。生成器绑定到一个(可能是虚拟的)32位时钟,该时钟的低阶位大约每4微秒递增一次。因此,ISN大约每4.55小时循环一次。由于我们假设网段中的网段停留时间不超过最大网段寿命(MSL),并且MSL小于4.55小时,因此我们可以合理地假设ISN是唯一的。

BSD TCP / IP堆栈偏离了上述机制。BSD TCP / IP堆栈使序列号每秒增加128,000,对于每个新的TCP连接,增加64,000。您可以想象这是更可预测的,因此很容易利用。

TCP重置攻击

一旦您清楚了上述攻击,就很容易理解这种攻击。在这次攻击中:

  • 一旦攻击者能够劫持TCP会话(如上所述),就可以发起这种攻击。
  • 攻击者将带有RST标志打开的数据包发送到A和B或任一主机。
  • 由于A和B都不知道攻击者已发送了这些数据包,因此他们会正常对待这些数据包。
  • 由于它们是重置数据包,因此A和B之间的连接将终止。

因此,我们可以看到TCP重置攻击旨在终止两个主机之间的有效TCP连接。

TCP / IP攻击:ARP缓存中毒的基本原理、TCP序列号预测和TCP重置攻击相关推荐

  1. 解析中间人攻击(1/4)---ARP缓存中毒

    本系列将讨论最常被使用的中间人攻击形式,包括ARP缓存中毒攻击(ARP Cache Poisoning).DNS欺骗(DNS Spoofing).HTTP会话劫持等. 导言 用于攻击个人以及企业的最常 ...

  2. TCP/IP,单进程服务器与客户端连接通信,ipv4,TCP传输,无复用简单实例,nc模拟客户端连接服务器

    TCP/IP,单进程服务器与客户端连接通信,ipv4,TCP传输,无复用简单实例 一.实例设定 1.服务器与客户端均是本机,服务器绑定的ip可以是宏INADDR_ANY,这个宏表示可以和本机的所有网卡 ...

  3. TCP/IP协议——ARP详解

    本文主要讲述了ARP的作用.ARP分组格式.ARP高速缓存.免费ARP和代理ARP. 1.学习ARP前要了解的内容 建立TCP连接与ARP的关系 应用接受用户提交的数据,触发TCP建立连接,TCP的第 ...

  4. 【转】TCP/IP协议——ARP详解

    本文主要讲述了ARP的作用.ARP分组格式.ARP高速缓存.免费ARP和代理ARP. 1.学习ARP前要了解的内容 建立TCP连接与ARP的关系 应用接受用户提交的数据,触发TCP建立连接,TCP的第 ...

  5. TCP/IP协议--ARP协议(有了IP地址为什么还需要ARP协议)

    首先我们需要先大致了解一下MAC地址,MAC(Media Access Control, 介质访问控制)地址是烧录在Network Interface Card(网卡,NIC)里的,也叫硬件地址,是由 ...

  6. TCP/IP笔记-ARP协议包结构相关笔记

    地址解析协议(Address Resolution Protocol,ARP):通过IP地址获取MAC地址,用于解决网络层和链路层衔接问题. 同一局域网的一台主机要和另外一台主机要通信,需要通过MAC ...

  7. TCP/IP 免费ARP

    免费ARP Gratuitous ARP也称为免费ARP.Gratui ARP不同于一般的ARP请求,它并非期待得到IP对应的MAC地址,而是当主机启动的时候,将发送一个Gratuitous arp请 ...

  8. TCP/IP 协议 —— ARP

    通过 ARP 广播获得对方的 MAC 地址: 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议. 1. 特点 ARP ...

  9. TCP/IP:ARP与RARP详细解析

    地址解析协议 ARP和逆地址解析协议RARP 1.基本关系: 2.地址解析协议 ARP的实现过程: 不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址. ‚每一个主机 ...

最新文章

  1. 解决全网90%以上的日期格式转换、日期序列等骚操作问题
  2. 【小白自学Python时踩的那些坑,你值得拥有】
  3. AI 八数码A_star算法问题-实验报告
  4. ubuntu 中安装tomcat
  5. 数据结构(1) -- 绪论
  6. 从下往上飞入的动画效果
  7. FBI曾要求加密服务商Lavabit监视斯诺登邮件
  8. Python 爬虫---(4) 正则的基本使用
  9. Java基础学习总结(67)——Java接口API中使用数组的缺陷
  10. 手动安装vue-devtools
  11. python爬虫有几种方法_python爬虫-----Python访问http的几种方式
  12. impdp 不兼容_oracle - Oracle:使用impdp导入数据库转储时出错:Data Pump客户端与数据库版本12.1.0.2.0不兼容 - 堆栈内存溢出...
  13. php 修改json数组的值,php – 无法通过str_replace更改JSON数组中的值
  14. Python爬取携程和同程的景点评论并实现词云
  15. 好用的网络拓扑绘制软件亿图图示安装以及使用
  16. MyEclipse10破解
  17. java 时间计费_java 实现计费算法
  18. Simulink 电机控制:单电阻采样三相电流重构算法仿真总结
  19. 低分辨率和畸变严重的棋盘格角点的自动检测
  20. 服务器网卡组(team)技术原理与实践

热门文章

  1. 数据库编程--SqlServer示例
  2. 【彻底搞清楚javascript中的require、import和export 】
  3. MSDN 教程短片 WPF 20(绑定3-ObjectDataProvider)
  4. Spring Boot 你所不知道的超级知识学习路线清单
  5. 【洛谷P3410】拍照题解(最大权闭合子图总结)
  6. shell基础07 函数
  7. xml没有提示解决办法eclipse
  8. 201671010139 2016-2017-2 JAVA 和C语言的语法区别
  9. 关于jQuery引用版本问题
  10. 九度OJ 1207 质因数的个数