2012-09-11 43 views
1

我想扫描一个大型网络,例如10.10.0.0/16,我正在寻找端口22打开,但我只对那些运行“OpenSSH 5.1”的端口感兴趣。在大型网络扫描中发现每个端口被打开后Nmap服务能否扫描?

我做了什么到现在为止是这样的:

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范围内...等等...

希望我做了一些感觉,谢谢。

回答

2

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

您可能对--max-hostgroup option感兴趣,它可以用来设置每个主机组的最大主机数量。默认情况下,只有少数端口的扫描会使用较大的主机组,这意味着您不会尽快看到结果(尽管总体扫描速度会更快)。您可以将其设置为较低的值,例如24,以便在完成每个24个主机的批次时获得结果。将它设置为1会给你想要的效果。