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

举报
Tiamo_T 发表于 2022/05/27 13:34:16 2022/05/27
【摘要】 虽然 TCP 协议是一种面向连接的可靠协议,但仍然存在各种可以利用的漏洞。这些漏洞大多用攻击来解释。本文解释了以下两种攻击: TCP序列预测攻击 TCP 重置攻击TCP 概述在开始解释攻击之前。让我们对 TCP 的工作原理有一个基本的了解。TCP 标头如下所示:下面的解释解释了如何在 TCP 级别在两台主机之间建立连接。这被称为三向握手。在向每个方向发送任何类型的数据之前,都需要此握手。一旦...

虽然 TCP 协议是一种面向连接的可靠协议,但仍然存在各种可以利用的漏洞。这些漏洞大多用攻击来解释。

本文解释了以下两种攻击:

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


TCP 概述

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

TCP 标头如下所示:

下面的解释解释了如何在 TCP 级别在两台主机之间建立连接。这被称为三向握手。在向每个方向发送任何类型的数据之前,都需要此握手。一旦建立连接,数据就可以双向流动,每个数据包都包含它包含的数据开始字节的序列号和接收到的数据的确认。


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

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

TCP 序列预测攻击

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

让我们看看攻击者做了什么:

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

因此,攻击者可以通过这种方式劫持连接。

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

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

TCP 重置攻击

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

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

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。