2

我有一个命令可以同时显示网络上的多个 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 脚本或类似的脚本?

谢谢,

4

2 回答 2

1

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

 list | cut -d ' ' -f1

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

 read -e 

为一整行。

因为我真的很喜欢一个班轮,所以这是一行中的所有内容:

 port=$(read -e);nmap -iL <(list | cut -d ' ' -f1) -p $port;
于 2012-12-17T22:28:57.810 回答
0

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

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

于 2012-12-17T22:06:12.910 回答