Nmap - 封闭与过滤

信息安全 网络 防火墙 地图 网络扫描仪 tcp
2021-08-26 05:23:07

好像很多人问这个问题,因为有很多帖子;但是我觉得没有人真正回答这个问题(我发现)。

我想了解为什么 Nmap 决定告诉我,当技术上有超过 60,000 个“过滤”端口时,特定端口被“过滤”。

为了这个例子......

  • 我的主机 (192.168.1.100) 正在侦听 TCP 80、443 和 3389 端口

  • 我的防火墙只允许 TCP 80、443、135 和 445(不是 3389)

      192.168.1.100   80      open
      192.168.1.100   135     closed
      192.168.1.100   443     open
      192.168.1.100   445     closed
      192.168.1.100   3389    filtered
    
  • 由于我的主机没有在 TCP 135 和 445 上侦听,因此它以 TCP RST响应,因此它是“关闭的”

  • 由于我的防火墙不允许 TCP 3389,因此在技术上已对其进行过滤

但是,这是我没有得到的:TCP 端口 21、22、23、24、25、26 等都被防火墙过滤(即不允许),但 Nmap 只告诉我这个特定端口(3389)正在被过滤。

为什么?!它不应该是一个像这样的巨大列表:

192.168.1.100   1       filtered
192.168.1.100   2       filtered
192.168.1.100   3       filtered
192.168.1.100   4       filtered
192.168.1.100   5       filtered
    ...        ...        ...
192.168.1.100   76      filtered
192.168.1.100   77      filtered
192.168.1.100   78      filtered
192.168.1.100   79      filtered
192.168.1.100   80      open
    ...        ...        ...
192.168.1.100   131     filtered
192.168.1.100   132     filtered
192.168.1.100   133     filtered
192.168.1.100   134     filtered
192.168.1.100   135     closed
etc...
1个回答

这在很大程度上取决于使用的扫描。Nmap的扫描类型页解释了端口的状态,每次扫描的原因。

一些例子:

TCP SYN 扫描 ( -sS)


 - 发送一个设置了 SYN 标志的 TCP 数据包
 - 如果收到 SYN/ACK(或 SYN)--> 端口打开,接受 TCP 启动
 - 如果收到 RST --> 端口关闭
 - 如果没有收到响应 --> 端口被视为已过滤
 - 如果收到 ICMP Unreachable --> 端口被视为已过滤

UDP 扫描 ( -sU)


 - Nmap 向指定端口发送 UDP 数据包
 - 如果 ICMP Port Unreachable 再次出现 --> 端口已关闭
 - 其他 ICMP Unreachable 错误 --> 端口被过滤
 - 服务器响应 UDP 数据包 --> 端口已打开
 - 重传后无响应 --> Port is Open|Filtered

还有一个反例,可能会产生与以下不同的结果-sS

TCP ACK 扫描 ( -sA)

此扫描永远不会确定 OPEN 或 OPEN|Filtered:

 - 仅带有 ACK 标志的数据包被发送
 - 如果系统未过滤,则打开和关闭端口都将返回带有 RST 标记的数据包
 - 不响应或发送 ICMP 错误的端口被标记为已过滤。

基本上,您的结果将受到您添加的扫描类型和额外选项的影响。重要的是要了解不同的 Nmap 扫描类型如何在更高级别上工作,以便执行良好且结论性的扫描。

可能需要多个选项才能正确查看防火墙规则。

此外,该--reason选项可能会让您更深入地了解为什么端口的显示方式与您的预期不同。