端口扫描和Windows防火墙

我想了解在扫描具有活动的内置Windows防火墙的计算机上的端口时所获得的结果。 我的testing环境中有两台运行在Hyper-V虚拟机中的Windows 7计算机,它们直接与内部虚拟交换机相连,并且位于同一个子网中,两者之间没有其他防火墙。

计算机A – Windows防火墙closures并运行Nmap 7.60

机器B – 正在扫描的机器

当计算机B上的Windows防火墙closures时,所有端口都显示为打开或closures – 预期。

如果使用默认规则在计算机B上打开Windows防火墙,某些端口将显示为已打开(预期),其他端口将显示为“已过滤”。

当我创build一个入站规则来允许在没有监听器的特定端口上进行连接时,我期望该端口被扫描为closures状态,但是它仍然显示为无响应原因的过滤。

有人可以解释为什么扫描一个活动的入站规则的端口允许连接和没有拒绝规则时没有响应? 我正在使用SYN扫描。

防火墙过滤TCP SYN,以使TCP永远不会收到它,并且TCP不能发送所需的RST。 从RFC 793,传输控制协议

重置一代

作为一般规则,每当到达显然不适用于当前连接的分段时,都必须发送复位(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),任何不可接受的段(超出窗口序列号或不可察觉的确认号码)必须仅引出包含当前发送序列号的空确认段以及指示预期要接收的下一个序号的确认,并且连接保持在相同状态。

    如果传入段的安全级别或隔离专区或优先级与连接所请求的级别,隔离专区和优先顺序不完全匹配,则会发送重置并且连接进入CLOSED状态。 重置从传入段的ACK字段获取其序列号。

当我创build一个入站规则,允许在没有监听器的特定端口上进行连接

如果您为没有LISTENER的端口创build防火墙规则,则完全正常,您没有响应,因为该端口上没有任何答案。

从那里引用

如果返回LISTENING以外的内容,则可能是某个端口被阻塞的问题。 如果端口显示为FILTERED,则防火墙或VLAN可能会阻塞该端口,如果端口返回NOT LISTENING,则我们到达机器,但机器不在该端口号上侦听。

find答案。

即使存在入站规则,端口出现为FILTERED的原因是称为“隐藏模式”的function,该function“当没有应用程序正在监听端口时阻止对于端口的传出ICMP不可达和TCP重置消息”。

https://technet.microsoft.com/en-us/library/dd448557(v=ws.10).aspx