为什么 nmap 报告这些 samba 端口为开放?

为什么 nmap 报告这些 samba 端口为开放?

我有一台运行 Linux 的 AWS 服务器。当我从机器本身执行时netstat -lntp,它显示几个端口打开(如预期的那样),但没有显示 445 或 139。这是有道理的,因为我从未在这台机器上设置过 Samba。此外,当我列出正在运行的进程并 grepsmb或 时samba,它显示没有正在运行的内容。

查看服务器的防火墙规则,我发现它只允许端口 80 和 22 上的入站流量。它允许所有端口到所有目的地的出站流量,但我认为这并不相关。

问题是,当我nmap从网络外部执行操作时,它显示端口 139 和 445 已关闭。这是为什么?我的理解是“关闭”意味着防火墙允许数据包通过服务器,但端口上没有任何监听。为什么防火墙允许流量通过?

答案1

我的理解是“关闭”意味着防火墙允许数据包通过服务器,但端口上没有任何监听。为什么防火墙允许流量通过?

“关闭”意味着 nmap 收到了一个 TCP RST 数据包,这确实是当端口上没有任何内容监听时 IP 主机应该做出的响应方式。

但是 nmap 不知道该重置数据包是否来自实际主机,或者是否被防火墙欺骗一路上。(许多防火墙确实配置为明确拒绝连接尝试,而不是默默地忽略它们;这避免了客户端的长时间超时。)

  • 这可能是因为您的服务器的防火墙使用了reject with tcp-reset或类似的东西。

  • 也可能是你正在扫描的网络配置为阻止所有出站 SMB 连接作为安全措施(例如,防止工作站通过 NTLM 与恶意服务器对话),并且它正在生成“RST”。

  • 甚至可能是互联网服务提供商您正在扫描的服务器或托管您服务器的 ISP 正在阻止其 WAN 上的 SMB 连接,以防止可能的恶意软件(例如旧的 Conficker 蠕虫)传播。

如果你使用 tcpdump 查看数据包,中间件伪造的 RST 对服务器来说当然是不可见的(因为服务器没有发送它),并且这样的数据包可能其 TTL 与服务器生成的实际响应有可疑的差异。


用来nmap --reason查看为什么它显示特定状态。请注意,尽管 nmap 认为 TCP RST 表示“关闭”(因为主机不接受连接),但其他一些工具实际上称其为“打开”(认为防火墙允许数据包通过)。

相关内容