FIN 攻击 - 这种类型的攻击到底是什么?

信息安全 攻击 tcp
2021-08-23 18:18:30

我只是想知道 FIN 攻击到底是什么。我知道用于指示通过 TCP 关闭连接的 FIN 标志。但究竟什么是 FIN 攻击?

3个回答

这是一种较旧的攻击,最初旨在成为一种“偷偷摸摸的防火墙绕过”,它依赖于现在不常见的几个因素:旧的 Unix 操作系统、缺乏状态防火墙、缺乏 NIDS/NIPS 等。它仍然很有用当测试(即,作为一种指纹技术,而不是攻击本身)全新或新颖的 TCP/IP 堆栈(或对您或您的环境来说只是新的)时,这种情况很少见,但可能会发生。

这是一个现代的替代品,TCP 协议扫描:

nmap --reason -n -Pn --packet-trace -g 80 -sO -p 6 <target ip>

这与 TCP ACK 扫描几乎完全相同(可用于映射主机、开放端口、防火墙规则集等,但需要注意的是某些 NIPS、IDS 和现代防火墙会检测到 - 以及另一个特定于情况的事件,其中也许它不会通知事件响应者或安全运营中心,因为他们现在有更重要的事情要看):

nmap --reason -n -Pn --packet-trace -g 80 -sA -p 80 <target ip>

但输出略有不同,您也可以看到其他数据包级别的差异。

为了开发更先进的技术,您正在寻找的是识别 RST 数据包中的细微之处及其窗口大小。如果您获得非零窗口大小,那么您可能希望切换到使用 TCP 窗口扫描而不是 TCP ACK 扫描。有关详细信息,请参阅http://nmap.org/book/man-port-scanning-techniques.html

在NSE 指南中还可以找到一些其他技术,例如 firewalk 和 firewall-bypass 脚本。但是,还有许多其他技术,包括 BNAT、fragroute、osstmm-afd、0trace、lft,以及可能检测其他内联非防火墙设备的其他技术,例如 WAF、IDS、IPS、反向代理、网关和欺骗系统,例如蜜罐或主动防御。如果您正在执行网络渗透测试,您将希望了解所有这些以及更多信息,但它们可以方便地解决各种网络和安全问题。

FIN 攻击(我假设您的意思是 FIN 扫描)是一种 TCP 端口扫描。

根据 RFC 793:“到封闭端口的流量应始终返回 RST”。RFC 793 还说明端口是否打开并且段没有设置标志 SYN、RST 或 ACK。数据包应该被丢弃。它可能是来自已关闭会话的旧数据报。

所以 FIN Attack 所做的就是滥用这一点。如果我们向一个关闭的端口发送一个 FIN 数据包,我们会得到一个 RST。如果我们没有得到响应,我们就知道是被防火墙丢弃了,或者端口是打开的。此外,FIN 攻击比 SYN 扫描(发送 SYN 以查看响应)更不可见。

但是,许多系统总是返回 RST。然后不可能知道端口是打开还是关闭,例如 Windows 会这样做,但 UNIX 不会。

FIN 扫描,如 NULL、XMAS 或自定义标志扫描——曾经和——用于绕过防火墙,有时还用于规避 IDS,我引用:

FIN 扫描:这些扫描类型的主要优点是它们可以潜入某些无状态防火墙和包过滤路由器。此类防火墙试图阻止传入的 TCP 连接(同时允许出站连接) 展示这些扫描的完整防火墙绕过功能需要相当蹩脚的目标防火墙配置。使用现代状态防火墙,FIN 扫描不应产生任何额外信息。

SYN/FIN 一种有趣的自定义扫描类型是 SYN/FIN。有时,防火墙管理员或设备制造商会尝试使用诸如“丢弃仅具有 SYN Hag 集的任何传入数据包”之类的规则来阻止传入连接。他们将其限制为仅 SYN 标志,因为他们不想阻止作为传出连接的第二步返回的 SYN/ACK 数据包。这种方法的问题是大多数终端系统将接受包含其他(非 ACK)标志的初始 SYN 数据包。例如,Nmap OS 指纹识别系统向开放端口发送 SYN/FIN/URG/PSH 数据包。数据库中超过一半的指纹以 SYN/ACK 响应。因此,它们允许使用此数据包进行端口扫描,并且通常也允许建立完整的 TCP 连接。有些系统甚至会以 SYN/ACK 响应 SYN/RST 数据包!TCP RFC 关于在初始 SYN 数据包中可以接受哪些标志是模棱两可的,尽管 SYN/RST 肯定看起来是假的。示例 5.13 显示 Ereet 成功地对 Google 进行了 SYNIFIN 扫描。他显然对 scanme.nmap.org 感到厌烦。

Gordon "Fyodor" Lyon 的 NMAP 网络发现