我有兴趣使用nmap进行发现,并找出每个主机的操作系统。 我明白,nmap这样做,并可以启用和控制手册页中所述 :
操作系统检测已启用并通过以下选项进行控制:
-O(启用操作系统检测)。
如上所述,启用操作系统检测。 或者,您可以使用-A启用操作系统检测以及其他事情。 –osscan-limit(限制操作系统检测到有前途的目标)。 如果至less有一个开放的和一个封闭的TCP端口被发现,OS检测就会更加有效。 设置此选项,Nmap甚至不会针对不符合此标准的主机尝试操作系统检测。 这可以节省大量的时间,特别是对许多主机的-Pn扫描。 只有在-O或-A请求操作系统检测时才重要。 –osscan猜测; – 模糊(猜测操作系统检测结果)。 当Nmap无法检测到完美的操作系统匹配时,它有时会提供接近匹配的可能性。 Nmap的默认匹配必须非常接近。 这些(等同的)选项中的任何一个都会使Nmap更积极地猜测。 当打印不完美的匹配时,Nmap仍然会告诉你,并显示每个猜测的置信度(百分比)。 –max-os-tries(设置针对目标的最大操作系统检测次数)。 当Nmap对目标执行操作系统检测并且未能find完美匹配时,通常会重复尝试。 默认情况下,如果条件有利于操作系统指纹提交,Nmap会尝试五次,如果条件不是很好,则会尝试两次。 指定一个较低的-max-os-tries值(比如1)可以加速Nmap,尽pipe你错过了可能识别操作系统的重试次数。 或者,可以设置较高的值以允许在条件有利时进行更多的重试。 除了生成用于提交和集成到Nmap OS数据库的更好的指纹之外,这很less完成。
我的问题是,是否可以禁用OS检测进程的端口扫描部分。 考虑到手册页似乎是不可能的,但原则上似乎不合理。
Nmap需要至less1个closures端口和1个开放端口来进行可靠的操作系统匹配。 默认情况下,Nmap的端口扫描会扫描1000个TCP端口。 您可以通过减less扫描的端口数量来缩短端口扫描阶段所需的时间。 这是一个很好的结果,导致1个开放和1个封闭端口的概率很高:
nmap -p 22,80,445,65123,56123 -O scanme.nmap.org
这将只扫描列出的5个端口,这是正常扫描的0.5%。
在手册页中指定了“-sn”选项来禁用端口扫描,但nmap会抱怨操作系统检测不可靠,没有端口扫描。
ping不会返回足够的信息来识别操作系统。 操作系统指纹基于开放和封闭的端口以及对知名端口的响应。 如果你不扫描一些端口,你怎么知道哪些端口是打开和closures的,以及响应是什么?
tl; dr:没有。
我的问题是,是否可以禁用OS检测进程的端口扫描部分。 考虑到手册页似乎是不可能的,但原则上似乎不合理。
所以快速回复是: NO
Ping的回复在每个地方都非常标准 您无法基于ping回复进行远程操作系统检测。 有些防火墙会完全禁用ping回复(隐形模式)。 在这里你可以find关于ping alias ICMP的更多细节,或者如果你想深入了解它,请尝试RFC 。
注意:如果你的目标是远程操作系统检测,而没有得到通知,你最好是阅读HTTP标头 – 通常你的奇怪的GET请求会在日志中丢失 – 或者尝试像被动操作系统指纹识别的 p0f 。 注意只有当您和主机位于同一networking中时,POF才能正常工作。
PF也支持这个选项。