NMAP 扫描哪些端口进行操作系统检测

NMAP 扫描哪些端口进行操作系统检测

nmap通过发送六个探测数据包并分析其响应,提供基于操作系统检测功能的 TCP/IP 指纹识别。在文档也就是说,其中一些被发送到开放端口,一些被发送到关闭端口。

有人知道如何nmap决定将探测发送到哪个端口吗?它只是寻找它能找到的第一个关闭的端口和第一个打开的端口吗?它是按特定顺序搜索它们吗?还是随机选择一个端口?

答案1

在这种情况下,没有比代码本身。Nmap 依靠端口扫描结果来确定开放和关闭端口的列表。它特别寻找三件事情:

  1. 开放的 TCP 端口
  2. 关闭的 TCP 端口
  3. 关闭的 UDP 端口

一般来说,它会选择它所知道的第一个(最小的数字),但它会尝试避免以下几条规则:

  • 不要使用端口 0。对于大多数系统来说,这不是一个有效的端口号。如果发现端口 0 处于打开状态,则使用它进行通信的可能不是操作系统的本机 IP 堆栈。
  • 如果服务扫描执行时,请避免使用标记为 的端口tcpwrapped。这有时可能是由于 IPS 关闭了连接,因此跳过这些端口有助于确保 Nmap 获得与目标的未修改连接。

答案2

如果我理解正确的话,nmap 仅在无法通过指纹检测操作系统时才会尝试打开或关闭端口,但文档并未解释检查端口的顺序。我认为您可以通过在扫描过程中跟踪自己的流量来发现方法。

相关内容