nmap 在 localhost 上显示随机打开的端口几分之一秒

Posted

技术标签:

【中文标题】nmap 在 localhost 上显示随机打开的端口几分之一秒【英文标题】:nmap shows random open ports on localhost for a fraction of a second 【发布时间】: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,我也永远不会看到这些端口打开。

【问题讨论】:

【参考方案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) 中修复。

【讨论】:

以上是关于nmap 在 localhost 上显示随机打开的端口几分之一秒的主要内容,如果未能解决你的问题,请参考以下文章

Nmap安全扫描

1.4 Nmap安全扫描命令参数

在IIS上浏览能打开但是在本机使用IE浏览http://localhost/,却显示无法找到该页面,在线求高手

安全测试工具--NMAP端口扫描工具使用

我的 FPDF 在在线服务器上显示错误,但在 localhost 上一切正常

黑客最喜欢的15个Nmap扫描命令,熟练掌握你也能成为黑客大神