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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FIN扫描类型实际上如何工作?相关的知识,希望对你有一定的参考价值。

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

FIN标志是什么? “FIN标志用于结束发送者发送更多数据包”

在这里它是如何工作的?

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

攻击者将发送ƒFIN

目标将以ƒRST回应

如果侦听端口已打开,则目标将不会发回任何响应。谈判如下所示,

攻击者将发送ƒFIN

目标响应ƒnone

现在我的怀疑来自于此。

为什么目标主机会响应RST数据包?别人为什么不呢?甚至它关闭它与RST数据包回复。

当它打开它没有回复?在我完全失踪的场景背后究竟是怎么回事?

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

答案

这正是RFC 793, Transmission Control Protocol所说TCP必须做的事情:

重置生成

作为一般规则,每当段到达时必须发送重置(RST),这显然不是用于当前连接。如果不清楚是这种情况,则不得发送复位。

有三组状态:

  1. 如果连接不存在(CLOSED),则发送复位以响应除另一个复位之外的任何传入段。特别是,通过这种方式拒绝寻址到不存在的连接的SYN。 如果传入段具有ACK字段,则复位从段的ACK字段获取其序列号,否则复位具有序列号零,并且ACK字段被设置为传入段的序列号和段长度的总和。 。连接仍处于CLOSED状态。
  2. 如果连接处于任何非同步状态(LISTEN,SYN-SENT,SYN-RECEIVED),并且传入段确认尚未发送的内容(该段带有不可接受的ACK),或者传入的段具有安全级别或隔间与连接请求的水平和隔间不完全匹配,发送重置。 如果我们的SYN未被确认且传入段的优先级高于请求的优先级,则提高本地优先级(如果用户和系统允许)或发送重置;或者如果传入段的优先级低于请求的优先级,则继续,就好像优先级完全匹配一样(如果远程TCP不能提高优先级以匹配我们的优先级将在它发送的下一个段中检测到,并且连接将被终止)。如果我们的SYN已被确认(可能在此传入段中),则传入段的优先级必须与本地优先级完全匹配,如果不是,则必须发送重置。 如果传入段具有ACK字段,则复位从段的ACK字段获取其序列号,否则复位具有序列号零,并且ACK字段被设置为传入段的序列号和段长度的总和。 。连接保持相同状态。
  3. 如果连接处于同步状态(ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CLOSE-WAIT,CLOSING,LAST-ACK,TIME-WAIT),则任何不可接受的段(窗口序列号或不可感知的确认) number)必须仅引出包含当前发送序列号的空确认段和指示预期接收的下一个序列号的确认,并且连接保持相同状态。 如果传入的段具有与连接请求的级别,隔离专区和优先级不完全匹配的安全级别,隔离专区或优先级,则会发送重置并且连接将进入CLOSED状态。重置从传入段的ACK字段获取其序列号。

以上是关于FIN扫描类型实际上如何工作?的主要内容,如果未能解决你的问题,请参考以下文章

Nmap的使用转载

漏洞扫描工具是如何工作的?

Javascript:如何最好地读取手持条码扫描仪?

运维工程师必会工具(Nmap和TCPdump)

如何以编程方式读取扫描的文档或图像

使用 python nmap 模块扫描从先前扫描生成的主机