| 而且数据以正确顺序传输。TCP 进一步提供了端口抽取功能,这使得主机可以并行地打开多个 TCP 连接。您可以由此发现 TCP 是由源地址/端口和目的地地址/端口四部分标识的。IP 地址/端口对被称为套接字。
TCP 与下面的 IP 层和上面的表示层及应用层协议(如 Telnet 或 SMTP)相互操作,如图 1 所述。
在继续讨论攻击之前,我将更详细地讨论 TCP 的某些方面,这些知识对于下面讨论的攻击是必需的。尤其是 TCP 包(称为段)的结构、如何在主机之间建立 TCP 连接和如何关闭连接。
TCP 包的结构
与 IP 数据报类似,TCP 段包含头部分、可选(选项)部分和数据部分。现在,让我们更仔细地研究一下 TCP 头的某些重要字段:
源端口:分配给启动连接的主机上虚连接的端口号。
目的地端口:目的地端口号。这也由启动连接的主机分配,因为只有该主机知道自己“想”连接到哪里。例如,如果您打开到特定主机的 Telnet 连接,则目的地端口将被设置为 23。
序列号和确认号:发送方和接收方使用两个序列号来确保包没有丢失、没有重复以及可以在目的地节点以正确顺序重新组装。
标志:这个字段包含六个控制位:
URG:向接收方表明一接收完数据就进行紧急处理。
ACK:表明确认号字段是有意义的。
PSH:表明必须迅速地将数据传递到接收方。
RST:表明要立即复位连接。
SYN:在需要同步序列号的情况下设置。
FIN:表明不会再有来自发送方的数据了(也就是说,连接将要关闭)。
以上是 TCP 头中的重要字段,下面关于 TCP 连接的建立和关闭的几节将使您更好地理解这些字段的用途。
建立和关闭 TCP 连接
连接建立:TCP 连接的建立由要建立连接的客户机和该客户机联系的服务器通过三步握手过程执行。要开始连接,您需要有一个在特定端口提供服务的服务器;例如,在端口 23 侦听的 Telnet 服务。当客户机想要打开与服务器的连接时,它向服务器发送一个连接请求。这意味着向服务器发送一个设置了 SYN 标志的 TCP 包。服务器以设置了 SYN 和 ACK 标志的包应答。最后,客户机通过向服务器发送设置了 ACK 标志的 TCP 包进行确认。这样,客户机和服务器之间的连接就建立起来了。
连接关闭:在发送完所有数据之后,通信伙伴中的一方想要关闭连接。假设是客户机要终止连接。它将通过向服务器发送设置了 FIN 标志的 TCP 包来完成该操作。服务器将通过返回设置了 ACK 标志的包进行确认。从此刻起,客户机将不再向服务器发送任何数据。它将仅以空段确认由服务器发送的数据。当服务器关闭客户机流时,连接关闭。
讲完了预备知识,我将向您介绍两个 TCP 攻击的示例。
TCP SYN 扫描
类别:端口扫描
描述:TCP SYN 扫描是端口扫描的变体。端口扫描用来检查给定主机上的端口是否打开。收集此类信息是跟踪足迹(先前的攻击种类中讨论过)的一部分,用来获得主机上的额外信息。知道主机上哪些端口是打开的,对于攻击者推断目标主机上可能存在的弱点是重要的第一步。
上一页 [1] [2] [3] [4] [5] 下一页 |