nmap忽略--script参数

Bil*_*mpf 5 ubuntu nmap redis

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

nmap -p 6379 -Pn my.ip.num.ber --script redis-info.nse
Run Code Online (Sandbox Code Playgroud)

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

Host is up.
PORT     STATE    SERVICE
6379/tcp filtered unknown
Run Code Online (Sandbox Code Playgroud)

而已.这是一个全新的安装,除了下载脚本之外,我什么都没做.我错过了什么?

bon*_*ing 8

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

  1. 必须选择该脚本.在您的情况下,您选择了它--script redis-info,但也可以按类别选择(例如--script discovery).
  2. 脚本的规则函数必须返回true.

对于redis-info大多数脚本,该规则要求打开特定端口.这是完整的规则:

portrule = shortport.port_or_service(6379, "redis-server")
Run Code Online (Sandbox Code Playgroud)

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