【问题标题】:nmap shows random open ports on localhost for a fraction of a secondnmap 在 localhost 上显示随机打开的端口几分之一秒
【发布时间】:2015-04-14 21:56:13
【问题描述】:

当我扫描自己时,我经常会看到随机打开的端口:

nmap -sT -T normal -p 1-65535 localhost

例如

43194/tcp open  unknown
58167/tcp open  unknown

有时什么都没有,有时像这样的一对。

不过我发现这是一个误报,但现在已经很老了:

http://seclists.org/incidents/2002/Dec/136

不过,还有其他一些用户最近也报告了这一点:

https://bbs.archlinux.org/viewtopic.php?id=168197

但似乎没有多少人注意到它。我也觉得奇怪的是这仍然是内核的“错误”/问题。这个问题真的存在那么久吗?

其他人能否确认这是正常行为(测试必须执行多次才能得出结论,如果这确实是内核/nmap 问题,则可能因系统而异)?我现在已经在几台物理机上测试过了,结果是一样的。包括一台最近安装了操作系统并且从未运行过面向网络的服务的机器,因此妥协似乎不太可能。

我的 ip_local_port_range 是 32768 61000

内核测试:3.16.3-smp、3.17.8-gentoo-r1

Nmap 版本:6.4、6.47

如果我从同一台物理机扫描我的 IP,也会发生这种情况。如果我从另一台机器上扫描机器,即使使用 -T insane,我也永远不会看到这些端口打开。

【问题讨论】:

    标签: linux kernel port nmap


    【解决方案1】:

    是的,这是 Linux 的一个已知问题:在关闭的 ephemeral port 上连接到 localhost 的可能性很小(通常大约为 28000 分之一)通过 4-way or "split" handshake 连接到自身。 Nmap 受此错误的影响最大,因为它一次连接到许多不同的端口,几乎可以肯定在 localhost -sT (TCP Connect) 扫描中至少发生一次。

    Nmap 长期以来一直存在这个错误。在 1999 年,Fyodor reported it to the LKML,但它被认为是 RFC 中的边缘案例,而不是 Linux 内核中的错误。 2000 年制定了一种解决方法,但 it was removed in February 2013 作为清理工作的一部分,因为它有竞争条件。下一个版本是 Nmap 6.40,你说它显示了无效的结果。

    去年夏天,我introduced a change 检查并重新测试了这些虚假结果。 Nmap的下一个版本不会有同样的问题。


    编辑:该错误影响版本 6.40 - 6.47。它已在 6.49BETA1 (2015-06-03) 中修复。

    【讨论】:

      猜你喜欢
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 2011-12-16
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      相关资源
      最近更新 更多