Nmap-指定使用哪一个探测器?

Nmap-指定使用哪一个探测器?

我正在尝试确定是否可以指定 nmap 使用的探测类型。例如,我想扫描子网(例如 192.168.0.0/24)并探测每个主机上的每个端口,以查看 Web 服务器是否在该端口上运行 - 目标是找到在异常端口上运行的服务。

我知道 nmap 默认会检查最常见的探测器/端口组合。我还知道 -sV --version-all 选项将尝试在所有指定端口上进行所有探测器。但是,这非常耗时,如果我只关心查找在异常端口上运行的 Web 服务器,则不需要使用所有可用的探测器。一定有更快的方法。

另外,我对 StackExchange 社区还比较陌生;如果这个问题更适合放在其他社区/网络中,请告诉我。

答案1

--version-intensity您可以使用选项并选择较低的强度数字来减少发送的探测次数。在nmap-service-probes文件中,每个探测都有一个rarity值,如果稀有度高于强度,则不会发送探测(除非它是该端口号的特别重要的探测,如行所示ports)。绝大多数 HTTP 响应都位于和GetRequest探测下GenericLines,它们的值为rarity1。因此,您的问题的简单答案是,此命令将找到发送探测次数最少的大多数 Web 服务器:

nmap --version-intensity 1 -sV

您还可以使用--version-light它的简写--version-intensity 3,它只会添加一些额外的探测。

由于您只对没有横幅的 HTTP 服务器感兴趣,因此您还可以通过编辑文件nmap-service-probes并将值更改totalwaitms为较小的值来减少等待 NULL 探测器横幅的时间。一旦您开始对 进行更改nmap-service-probes,您可能决定采取其他操作,例如将所有其他探测器的稀有度更改为9,但如果您希望将此文件用于任何常规扫描,请确保将其改回。如果您决定制作自定义文件nmap-service-probes,您可以使用选项--versiondb指向它,而不是覆盖 Nmap 附带的文件。

答案2

无法在命令行中准确指定探测器,但您可以删除在中找到的探测器,nmap-service-probes除非您特别需要。或者,您可以使用来源并编辑nmap/service_scan.cc为仅处理与类似正则表达式匹配的nextProbes情况probe->getName()http.*

答案3

当然nmap可以这样做——只需阅读man页面或info页面即可找出要使用的参数/开关/选项。

是的,这对于超级用户来说会更好......

也就是说,如果您使用zenmap- GUI 前端nmap- 它允许您使用 GUI 做出这些选择,然后向您显示您将为普通运行的实际命令行nmap

在此处输入图片描述

相关内容