Networking FIN扫描类型实际上是如何工作的?

Networking FIN扫描类型实际上是如何工作的?,networking,tcp,Networking,Tcp,我在谷歌上搜索了很多次关于FIN扫描是如何工作的?但我总是得到相同的答案,即:“(简而言之)它用于绕过基本过滤器,并使用FIN标志来确定关闭的|打开的端口。” 什么是鳍旗“FIN标志用于结束发送方发送更多数据包” 它是如何工作的? 如果目标中的侦听端口已关闭,则它将回复RST消息。谈判如下图所示 攻击者将发送ƒFIN 目标公司将首先作出回应 如果侦听端口打开,则目标将不会发送任何消息 回复。谈判如下图所示 攻击者将发送ƒFIN 目标反应无 现在,我的怀疑由此产生 为什么目标主机将响应RST数据包

我在谷歌上搜索了很多次关于FIN扫描是如何工作的?但我总是得到相同的答案,即:“(简而言之)它用于绕过基本过滤器,并使用FIN标志来确定关闭的|打开的端口。”

什么是鳍旗“FIN标志用于结束发送方发送更多数据包”

它是如何工作的?

如果目标中的侦听端口已关闭,则它将回复RST消息。谈判如下图所示

攻击者将发送ƒFIN

目标公司将首先作出回应

如果侦听端口打开,则目标将不会发送任何消息 回复。谈判如下图所示

攻击者将发送ƒFIN

目标反应无

现在,我的怀疑由此产生

为什么目标主机将响应RST数据包?为什么其他人不行?甚至用RST数据包将其关闭。

当它打开时没有回复?我完全不知道的幕后到底发生了什么?

这就是我想知道的第一件事?(另一个问题是如何绕过基本过滤器)

这正是TCP必须做的:

重置生成

作为一般规则,无论何时到达显然不适用于当前连接的网段,都必须发送重置(RST)。 如果不清楚情况是否如此,则不得发送重置

有三组国家:

  • 如果连接不存在(已关闭),则发送重置 对任何传入段的响应,另一个重置除外。在里面 特别是,寻址到不存在的连接的SYN被拒绝 通过这种方式

    如果输入段有一个ACK字段,则重置将采用其值 段的ACK字段中的序列号,否则 重置序列号为零,且确认字段设置为和 输入段的序列号和段长度。 连接仍处于关闭状态

  • 如果连接处于任何非同步状态(侦听, SYN-SENT、SYN-RECEIVE)和传入段确认 尚未发送的内容(该段带有不可接受的ACK),或 如果传入段具有安全级别或隔间 不完全符合车辆所需的高度和车厢 连接后,将发送重置

    如果我们的SYN未被确认,则 传入段高于当时请求的优先级 提高本地优先级(如果用户允许)和 系统)或发送重置;或者如果 传入段低于当时请求的优先级 继续,就像优先级完全匹配一样(如果远程TCP 无法提高优先级以匹配我们的这将是 在它发送的下一段中检测到,连接将 然后终止)。如果我们的SYN已被确认(可能在本 传入段)传入段的优先级必须为 如果没有重置,则精确匹配本地优先级 必须发送

    如果输入段有一个ACK字段,则重置将采用其值 段的ACK字段中的序列号,否则 重置序列号为零,且确认字段设置为和 输入段的序列号和段长度。 连接仍处于相同的状态

  • 如果连接处于同步状态(已建立, FIN-WAIT-1、FIN-WAIT-2、关闭等待、关闭、最后确认、等待时间), 任何不可接受的段(窗口外序列号或 不可接受的确认号)只能获取一个空的 包含当前发送序列号的确认段 以及一个表示下一个预期序列号的确认 将被接收,并且连接保持在相同的状态

    如果传入段具有安全级别或隔间,或 优先级与级别和隔间不完全匹配, 并为连接请求优先级,发送重置并 连接进入关闭状态。复位按顺序进行 输入段的ACK字段中的编号


  • 因为这就是RFC 793中所说的。不@EJP我想从技术上知道,FIN扫描类型中实际发生了什么?答案仍然在RFC 793中。离题。