在网络安全中,为什么我们关心知道不完整的 TCP 握手会话?这背后有安全隐患吗?
不完整 TCP 握手会话的影响
许多用于检测开放端口的扫描仪使用不完整或错误的 TCP 握手。有时它们也被用于 DDOS 攻击,但如果这是真的,您将有 100 到 1000 秒。
有 SYN 扫描、xmas 扫描等。他们正在对您的 IP 地址进行各种形式的侦察。
我一直被扫描,比如每天 100 多个。
答:通过故意发送 3 次握手的各个部分——有时是按顺序发送,有时不是按顺序发送,有时不按顺序发送,其他时候设置额外的标志——攻击者可以扫描 IP 和端口并确定该特定端口是打开还是关闭。
我们关心知道这种情况正在发生,因为它们都是关于攻击者在您的网络上获取信息的。然而,大多数情况下,在握手完成之前不会为 TCP 通信创建日志条目 - 因此,如果它在某处中断,则可能不会创建日志并且攻击者会被忽视。
解释:当扫描 IP 范围以映射网络时,有许多不同类型的扫描。它们根据初始化握手的方式而有所不同——有些甚至不初始化。目标提供的响应指示指定的端口是打开还是关闭,基于演绎推理。
全扫描 扫描器发送带有端口号的标准 SYN 请求。响应类型指示端口是否打开。如果响应扫描接收到“重置”请求,则攻击者知道该端口已关闭。
半开放扫描/隐形扫描(参见链接中的漏洞描述)
攻击者发送初始 SYN 并监视 SYN/ACK 请求,但不是发送最终 ACK,而是发送一个 RST(重置),它会中断连接。在此扫描中,设备发回的信息仍用于确定端口是否打开,但通过中途终止连接可以避免大量日志记录,从而使攻击对管理员来说显而易见。Xmas Tree Scans
攻击者发送 FIN/URG/PUSH 并等待回音。RST 表示端口已关闭,而没有收到任何信息则表示端口已打开。要求目标机器符合 RFC 793,它消除了 Windows 机器作为可能的目标。FIN 扫描
攻击者只需发送一个 FIN 来模拟终止连接。如果机器不知道如何响应并且没有给出任何响应,那么端口是开放的。如果机器发送 RST/ACK 则端口关闭。同样,不适用于 Windows。NULL 扫描
攻击者发送一个带有 NO FLAG 的 TCP 数据包,称为 NULL。它根本什么都没有发送。如果没有收到响应,则端口打开。如果收到 RST/ACK,则关闭端口。这仅适用于基于 Unix 的系统。注意: 以上解释摘自Dale Meredith 在 Pluralsight 上的道德黑客课程。我提供了一些小总结。然而,由于 Pluralsight 是在付费墙后面,所以我提供了每个扫描的其他解释的 URL。
上述所有扫描都可以使用 Nmap 等工具在 IP 范围内自动进行。然而,其中一些特别嘈杂(全扫描),并且会很明显有人正在扫描系统。无论哪种方式,通过以非预期的方式(大多数时候)使用 TCP 握手,攻击者可以计算出开放端口,并开始计算出该系统中可能存在的漏洞。
对此有几个可能的答案 - 取决于您问题的上下文:
- TCP 是一种面向连接的协议,具有 3 个不同的部分(SYN、SYN/ACK、ACK)。
一个。一个设备发送一个 SYN 数据包来询问/推断接收设备是否为新连接打开。湾。一旦接收设备从客户端接收到 SYN 数据包,它就会响应并返回一个称为 SYN/ACK 数据包的确认回执,以表明它已成功建立能够接收其他数据包的连接。C。最后,始发设备表示其接受 SYN/ACK 响应并通过发送 ACK 数据包表示其发送更多数据包的意图。
如果两个连接的设备检测到握手的某些部分尚未完成,则可以推断出连接的状态。例如,如果发起设备没有接收到 SYN/ACK,则可以推断接收设备在为连接建立资源的努力中失败了。
所以基本上两个设备都推断连接没有正确建立。
- 参与的设备不仅可以从握手过程中推断出一些东西,观察握手的第 3 方设备也可以。例如,许多防火墙会寻找连接的特定部分,以了解两个 IP 地址何时建立了连接。
当单个 IP 向没有首次看到 SYN 数据包的 IP 发送多个 SYN/ACK 或 ACK 数据包时会发生什么?这可能是攻击者探测防火墙功能,因为 SYN/ACK 数据包“假定”跟随 SYN 数据包。
通过发送意外数据包来滥用正常握手表明一些不正常的事情。
那么回答你:对不完整的 TCP 握手的分析揭示了在两个主机之间的非正常情况下网络上正在发生的事情。
因为不完整的 TCP 握手本身就是协议中漏洞的暗示。然后可以利用它来欺骗端口以显示有关其自身的信息。