Nmap NSE Lua脚本中无效的转义序列 "\."

最近我需要一个Drupal指纹NSE脚本。通过一些研究,我偶然发现了一个有希望的NSE Lua脚本来完成这项工作。不幸的是,脚本作者停止了对这个脚本的支持,而这个脚本也从未被正式纳入Nmap NSE库中。尽管如此,我还是决定尝试使用该脚本。

当我试图通过Nmap引擎运行脚本时,我遇到了一个“无效的转义序列”错误。由于缺乏任何Lua编程经验,这个错误停止了我的脚步。我希望有Lua经验的人能够帮助调试看起来可能是一个相当简单的问题的解决方案。

错误代码如下:

root@kali:~# nmap --script=http-drupal-fingerprint.nse --script-args http-drupal-fingerprint.base-url=/ www.placeholder.com
Starting Nmap 7.70 ( https://nmap.org ) at 2018-09-26 12:33 EDT
NSE: failed to initialize the script engine:
/usr/bin/../share/nmap/nse_main.lua:259:        /usr/bin/../share/nmap/scripts/http-drupal-fingerprint.nse:47: invalid escape   sequence near '"Drupal [4-7].'
stack traceback:
[C]: in function 'assert'
/usr/bin/../share/nmap/nse_main.lua:259: in upvalue 'loadscript'
/usr/bin/../share/nmap/nse_main.lua:601: in field 'new'
/usr/bin/../share/nmap/nse_main.lua:828: in local 'get_chosen_scripts'
/usr/bin/../share/nmap/nse_main.lua:1315: in main chunk
[C]: in ?

QUITTING!

脚本如下导入到NSE库中:

curl -ksL https://raw.githubusercontent.com/r3dh4nds/NSE-Drupal-Fingerprint/master/http-  drupal-fingerprint.nse >> /usr/share/nmap/scripts/http-drupal-fingerprint.nse && chmod 0644 /usr/share/nmap/scripts/http-drupal-fingerprint.nse

我附上了SecLists中原始脚本的来源: https://seclists.org/nmap-dev/2011/q2/490

非常感谢您的帮助!(如果这个问题的格式不正确,请原谅,这是我发的第一篇文章)

点赞
用户10490869
用户10490869

正如我所猜测的那样,这是一个简单的修复。将无效的转义序列从以下代码中删除:

local expression = "Drupal [4-7]\.[0-9][0-9]?\.?[0-9], "

变成

local expression = "Drupal [4-7].[0-9][0-9]?.?[0-9], "

之后,该错误被去除了。

2018-10-12 14:48:35
用户1183387
用户1183387

在 Nmap 中,Drupal 检测现在使用 http-enum 脚本完成。您可以添加 --script-args http-enum.category=cms 来限制发送的枚举探测数量,仅探测到 Drupal 的探测点。您还可能对 http-drupal-enumhttp-drupal-enum-users 脚本以及 http-form-brute 感兴趣,它可以暴力破解 Drupal 认证。

2018-10-12 21:12:53