我有一个命令可以同时在网络上显示几个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要做什么这与所提到的每个服务器在给出'list'时显示。
这可能吗?这需要一个AWK脚本或类似的吗?
谢谢,
答案 0 :(得分:1)
Nmap确实有一个很好的选项,可用于传递文件中包含的主机列表。它们应该是每行一个主机。您的输出看起来很像nmap的实际输入。您需要删除第二部分。您可以通过多种方式执行此操作,例如使用简单的剪切。
list | cut -d ' ' -f1
然后你需要让用户输入一个端口。为此,您只需使用读取功能
即可 read -e
整条线。
由于我非常喜欢一个班轮,所以这里的所有内容都是一行的:
port=$(read -e);nmap -iL <(list | cut -d ' ' -f1) -p $port;
答案 1 :(得分:0)
如果我理解你的问题,你可以做nmap 10.0.0.10-13 -p22
(或者你从给定列表中提取的任何范围),或者如果你想要更精细地控制扫描的执行方式,你可以我需要使用nmap的scripting interface,它使用Lua。
对于后者,大多数nmap发行版中都有一些过多的示例。例如,在Ubuntu上,检查/usr/share/nmap/scripts
。只需grep该目录中的'thread'(或者系统安装它的地方),你就会明白我的意思。 (: