在 SYN 扫描中得到响应后发送 RST 数据包有什么好处?

信息安全 地图 tcp 扫描
2021-08-27 01:10:23

我正在阅读有关 nmap 的 SYN 扫描的信息,它说 Nmap 在服务器尝试建立握手后立即发送 RST。

我的问题是 - 为什么要打扰 RST?是为了防止服务器尝试在每个检查的端口上重新连接,从而为扫描机器创建不需要的传入流量?这种流量会极大地减慢扫描速度吗?

我猜想 SYN 和 RST 的模式应该很容易被 IDS“读取”,我不知道为什么它首先存在。为什么不注册响应并继续前进?

2个回答

让连接处于 syn_rcvd 状态会引发标志,这是一种常见的拒绝服务攻击。

如果不发送 RST,服务器将保持 syn_rcv 状态长达 60 秒,并重传 SYN ACK 最多 5x。这将浪费您正在扫描的网络上的资源,并导致一堆(取决于扫描的速度和成功)重新传输的 SYN ACK 被发送回给您。

60 秒和 5 次重试是 linux 默认值 - 这些值会有所不同。

这在技术上是错误的:Nmap 在半开 SYN 扫描中的任何时候都不会发送 RST。相反,它依赖于扫描机器的操作系统发送 RST 数据包,以响应内核视为未经请求的 SYN-ACK 数据包。这与Nmap 的 ACK 扫描 ( -sA)探测以映射防火墙规则的机制相同。当然,这意味着如果您的扫描系统有防火墙,它很可能会丢弃未经请求的 SYN-ACK 数据包而不是响应 RST,因此您可能会创建 SYN 泛洪条件。在这种情况下,最好在执行大型扫描时关闭此类规则或添加显式规则以允许发送 RST,以免给目标造成负担。

关于隐身,了解你的历史很重要。Nmap 于 1997 年发布,早于 BlackICE、Snort 和 Bro(均创建于 1998 年)。在“隐形 SYN 扫描”如此命名时,入侵检测系统是一个程序,用于检查您的日志以查找失败的连接尝试。由于 SYN 扫描永远不会完成 TCP 握手,因此永远不会通知应用程序。该事件在内核中终止,应用程序日志中没有任何内容表明出现任何问题。然而,这些天来,情况几乎颠倒过来了。与正确配置的 SIEM/UTM/日志分析功能相比,组织更有可能拥有网络IDS/IPS。