1

我想扫描一个大型网络,例如 10.10.0.0/16,我正在寻找开放的 22 端口,但我只对那些运行“OpenSSH 5.1”的端口感兴趣。

到目前为止,我所做的如下:

nmap -PN -T4 -sS -p 22 -sV 10.10.0.0/16 -oG test_results
cat test_results | grep 'OpenSSH 5.1'

这行得通,但这是困难的部分。Nmap只有在完成扫描范围内所有IP的端口扫描后才会启动服务扫描,我正确吗?

但是,如果我想查看在单个 IP 的每次端口扫描之后运行的服务,而不是在扫描整个 IP 范围之后。换句话说:

  1. 端口扫描一个IP,查看22端口是否开放。
  2. 如果 22 端口已打开,则立即进行服务扫描。
  3. 如果服务名称与“OpenSSH 5.1”匹配,则在扫描仍在运行时立即在屏幕上输出 IP。
  4. 端口扫描范围内的下一个 IP... 等等...

希望我有点道理,谢谢。

4

1 回答 1

2

出于效率原因,这不是 Nmap 设计的工作方式。特别是如果您正在扫描 /16 网络,您会发现这种方法非常低效。

您可能对选项感兴趣,该--max-hostgroup选项可用于设置每个主机组的最大主机数。默认情况下,仅扫描几个端口会使用更大的主机组,这意味着您不会很快看到结果(尽管总体上扫描会更快)。您可以将其设置为较低的值,例如 24,以便在完成后获得每批 24 台主机的结果。将其设置为 1 会产生您想要的效果。

于 2012-09-11T20:04:20.503 回答