如何使用 nmap ACK 扫描区分有状态防火墙和无状态防火墙

如何使用 nmap ACK 扫描区分有状态防火墙和无状态防火墙

我很难弄清楚这一点。据说,nmap可以通过使用 或 ACK 扫描来区分有状态防火墙和无状态防火墙-sA,但我不知道如何从nmapACK 扫描的输出中辨别这一事实。

据我所知,nmap将 ACK 标记的数据包发送到目标,目标将根据某些标准响应或不响应。

  1. 如果端口打开或关闭且未过滤,目标将响应 RST。
  2. 如果过滤器正在丢弃流量,目标将根本不会响应
  3. 如果过滤器拒绝流量,目标将发送 ICMP 错误消息

如果是这样,那么“nmap”将报告任何以 RST 响应的端口:未过滤的和所有其他端口过滤的。这看起来像这样......(使用IPTABLES具有无状态规则的防火墙)

$ sudo nmap -sA -T4 192.168.219.135


Starting Nmap 7.12 ( https://nmap.org ) at 2016-06-28 16:35 EDT     
Nmap scan report for metasploitable (192.168.219.135)    
Host is up (0.00027s latency).   
Not shown: 994 filtered ports   
PORT    STATE      SERVICE  
22/tcp  unfiltered ssh  
25/tcp  unfiltered smtp  
53/tcp  unfiltered domain  
70/tcp  unfiltered gopher  
80/tcp  unfiltered http  
113/tcp unfiltered ident  
MAC Address: 00:0C:29:B7:F7:70 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 4.40 seconds

根据该输出,人们如何辨别这是有状态的还是无状态的?

我已经阅读了有关该主题的所有内容,包括这nmap本书,但没有一个例子对我来说有意义。这与书中示例 10.2 的输出基本相同nmap;事实上它几乎是一样的!问题是,这本书指出这是针对运行有状态规则的主机nmap的输出!nmapIPTABLES

如果我可以从无状态防火墙获得与有状态防火墙相同的输出,那么我应该如何从nmapACK 扫描中判断我遇到的是哪个防火墙?

我非常沮丧,我真的很感谢为我提供的任何帮助。

答案1

让我们考虑一下有状态防火墙和无状态防火墙之间的行为差​​异。无状态防火墙将根据端口号进行阻止,但它不能仅仅阻止传入的 ACK 数据包,因为这些数据包可能是为了响应传出连接而发送的。因此,从-sA扫描的角度来看,端口将显示为“未过滤”,因为防火墙仅过滤 SYN 数据包。

另一方面,状态防火墙可以确定传入的 ACK 数据包是否是已建立的传出连接的一部分。它仅在未经请求的情况下阻止数据包(如 的情况-sA)。因此 Nmap 会将端口标记为“已过滤”。

所以最终的判断是:如果 ACK 扫描显示某些端口为“已过滤”,那么它很可能是状态防火墙。如果全部显示为“未过滤”,但常规 SYN 扫描显示某些为“已过滤”,则它是无状态防火墙。

答案2

我同意以下给出的答案博纳赛维京人。为了即兴发挥,有一个窗口扫描(-sW),它基本上利用了某些系统的实现细节(因此 nmap 警告,它并不总是可信的)。 RST 返回的数据包(带有-sA-sW)将检查 TCP 窗口字段,并得出打开或关闭端口的结论。

参考:https://nmap.org/book/man-port-scanning-techniques.html

相关内容