Nmap不扫描所有端口


13

我注意到,nmap仅扫描一堆已知端口,而我设法检查所有它们的唯一方法是放入“ -p 0-65535”。

这是为什么?我错了吗?除了我所做的以外,还有没有更流行的方式来扫描所有端口?


这是nmap的默认行为。
drcelus 2012年

Answers:


23

默认情况下,根据从2008年夏季开始的Internet范围扫描和大型内部网络扫描生成的统计信息,Nmap扫描前1000个最流行的端口。有一些选项可以更改此设置:-F将端口号减少到100,-p可让您指定要扫描的端口,并--top-ports允许您指定要扫描的最流行端口的数量。这意味着默认扫描--top-ports 1000与和-F相同--top-ports 100

这些数字是在版本4.75中设置的,并且与版本4.68中默认的大约1700(TCP)端口有所不同。目的是减少扫描时间,同时仍然给出合理的结果。Nmap的命令行选项的灵活性确保您仍然可以扫描所需端口的几乎任何组合,而不管其默认设置如何。

使用仍然可以扫描所有65536个TCP端口-p0-,但是这将花费很长时间。-sU -p0-由于检测开放端口的方式,使用扫描所有UDP端口将花费更长的时间。


感谢您提供的详细信息。就像对未来读者的提倡一样,自2008年以来,像redis(6379)之类的程序已在未包含的端口上流行。此外,您还可以列出这些都是用下面的命令哪些端口:TCP:nmap的-sT --top端口1000 -v -oG - UDP:nmap的-sU --top端口1000 -v -oG -
flickerfly

1
@flickerfly是的。我们的确使用IANA的最新名称来更新服务文件,并对docker和redis等一些流行端口的统计信息进行了人工调整,但通常不会影响默认设置1000。
bonsaiviking

@bonsaiviking IFA的记录中列出了AFAIK Redis(我确认是的)-请验证:)
Itamar Haber

1
@ItamarHaber列出了该内容,并且自编写此答案以来,我们(Nmap)在发布之前添加了一个集成IANA最新名称的过程。但是,端口频率数据尚未更新,因此答案的一部分保持不变。
bonsaiviking

1
@ItamarHaber Redis的创建者Salvatore Sanfilippo(又名antirez)发明了Nmap使用的“空闲扫描”端口扫描技术。
bonsaiviking

19

好吧,如果您不想放置端口范围,可以随时给

-p-

参数,默认情况下它将扫描除端口0以外的所有端口。对于端口0,必须显式指定它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.