Linux终端Nmap一次多个IP



我有一个命令可以同时显示网络上的多个IP,我们称之为"列表"。 当我使用此命令时,它会显示以下内容,例如:

10.0.0.10        Server10                            
10.0.0.11        Server11                         
10.0.0.12        Server12                            
10.0.0.13        Server13                            

我想一次Nmap所有这些,但只使用一个特定的端口,所以基本上是"nmap 10.0.0.10 -p22",但我想提示用户使用Nmap的端口,并且Linux对给出"列表"时显示的每个服务器执行此操作。

这可能吗?这是否需要 AWK 脚本或类似脚本?

谢谢

Nmap确实有一个不错的选项,可用于传递文件中包含的主机列表。它们应该是每行一个主机。您的输出看起来很像 nmap 的实际输入。您需要删除第二部分。您可以通过多种方式执行此操作,例如通过简单的切割。

 list | cut -d ' ' -f1

然后,您需要让用户输入端口。为此,您可以简单地使用读取功能

 read -e 

对于整条线。

由于我真的很喜欢一行,所以所有内容都在一行中:

 port=$(read -e);nmap -iL <(list | cut -d ' ' -f1) -p $port;

如果我正确理解了您的问题,您可以执行类似 nmap 10.0.0.10-13 -p22 的操作(或从给定列表中提取的任何范围),或者如果您希望对扫描的执行方式进行更精细的控制,您需要使用 nmap 的脚本接口,该接口使用 Lua。

对于后者,在大多数nmap发行版中都有大量示例,例如,在Ubuntu上,签入/usr/share/nmap/scripts。只需在该目录中(或系统安装它的位置)中的"线程"的 grep,您就会明白我的意思。(:

最新更新