nmap显示localhost上的随机开放端口,只需几分之一秒

时间:2015-02-13 18:56:10

标签: linux kernel port nmap

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

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

E.g。

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疯了,我也从未看到这些端口打开。

1 个答案:

答案 0 :(得分:5)

是的,这是Linux的一个已知问题:在关闭ephemeral port上与localhost的连接与4-way or "split" handshake连接自身的机会很小(通常约为28000)。 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)。