nmap忽略--script参数

时间:2013-06-18 16:20:34

标签: ubuntu redis nmap

我在Ubuntu 12.04服务器上安装了nmap 6.25,并尝试使用redis-info脚本。我已经下载了脚本并将其放在我的主目录中。我跑的时候:

nmap -p 6379 -Pn my.ip.num.ber --script redis-info.nse

它只进行正常扫描,甚至根本不检查脚本。

Host is up.
PORT     STATE    SERVICE
6379/tcp filtered unknown

那就是它。这是一个全新的安装,除了下载脚本之外我什么都没做。我错过了什么?

1 个答案:

答案 0 :(得分:6)

Nmap的NSE脚本(至少)有两个条件在运行之前必须为true:

  1. 必须选择脚本。在您的情况下,您使用--script redis-info选择了它,但也可以按类别选择(例如--script discovery)。
  2. 脚本的rule function必须返回true。
  3. 对于redis-info,与大多数脚本一样,规则要求打开特定端口。这是完整的规则:

    portrule = shortport.port_or_service(6379, "redis-server")
    

    在您的情况下,端口6379为filtered,这意味着打开,因此脚本将无法运行。这是预期的,因为在未打开的端口上运行将没有用。无论其规则的返回值如何,都可以强制脚本运行,但这很少有用。为此,请在脚本名称前加上+,如下所示:--script +redis-info。请注意,这意味着它将在扫描的每个端口上运行,因此请不要轻易使用它!