Nmap 有一个少为人知的部分是NSE脚本引擎,NSE是 Nmap 的最强大和灵活的功能之一。它允许用户编写(并共享)简单的脚本来自动执行各种网络任务。Nmap 内置了全面的 NSE 脚本集合,用户可以轻松使用这些 Nse脚本或者创建自定义 Nse 脚本以满足他们的个性化需求
安装 NSE 脚本
步骤 1 安装 Nmap-Vulners
要安装 nmap-vulners 脚本,我们首先使用cd切换到 Nmap 脚本目录
cd /usr/share/nmap/scripts/
然后,通过在终端中输入以下命令来克隆 nmap-vulners GitHub 存储库。
git clone https://github.com/vulnersCom/nmap-vulners.git
nmap-vulners 安装后不需要配置
第 2 步 安装 Vulscan
要安装 vulscan,我们还需要将 GitHub 存储库克隆到 Nmap 脚本目录中。键入下面的命令来执行此操作。
git clone https://github.com/scipag/vulscan.git
如前所述,vulscan 利用本地存储在我们计算机上的预配置数据库。我们可以在 vulscan 目录的根目录中查看这些数据库。运行以下命令列出可用的数据库。
ls vulscan/*.csv
Vulscan 支持许多优秀的漏洞数据库。这是一个完整的列表:
· scipvuldb.csv
· cve.csv
· osvdb.csv
· securityfocus.csv
· securitytracker.csv
· xforce.csv
· expliotdb.csv
· openvas.csv
为确保数据库完全保持最新,我们可以使用 vulscan /utilities/updater/ 目录中的 updateFiles.sh 脚本。通过在终端中输入以下命令更改到更新程序目录。
cd vulscan/utilities/updater/
然后,使用下面的命令确保该文件具有在计算机上执行的适当权限。
chmod+x updateFiles.sh
然后,我们可以通过在我们的终端中输入以下命令来执行和运行脚本。
./updateFiles.sh
步骤 3 使用 Nmap-Vulners 进行扫描
使用 NSE 脚本很简单。我们所要做的就是将– script 参数添加到我们的 Nmap 命令中,并告诉 Nmap 使用哪个 NSE 脚本。要使用 nmap-vulners 脚本,我们将使用下面的命令。
nmap --script nmap-vulners -sV
该 -sV 是绝对必要的。使用 -sV,我们告诉 Nmap 探测版本信息的目标地址。如果 Nmap 不生成版本信息,nmap-vulners 将不会有任何数据来查询 Vulners 数据库。使用这些 NSE 脚本时始终使用 -sV。
步骤 4 使用 Vulscan 进行扫描
我们可以像 nmap-vulners 一样使用 vulscan NSE 脚本:
nmap --script vulscan -sV
默认情况下,vulscan 会一次查询所有前面提到的数据库!正如我们在上面的图片中看到的那样,消化的信息量非常大。这比我们需要的信息要多得多。我强烈建议一次只查询一个数据库。我们可以通过将 vulscandb 参数添加到我们的 Nmap 命令并指定数据库来实现此目的,如下面的示例所示。
nmap --script vulscan --script-args vulscandb = database_name -sV nmap --script vulscan --script-args vulscandb = scipvuldb.csv -sV nmap --script vulscan --script-args vulscandb = exploitdb.csv -sV nmap --script vulscan --script-args vulscandb = securitytracker.csv -sV
第 5 步 合并为一个命令
NSE 脚本作为安全扫描器显着提高了 Nmap 的多功能性,范围。为了充分利用 Nmap 的版本扫描,我们可以在一个命令中使用 nmap-vulners 和 vulscan。要执行此操作,请在终端中输入以下命令。
nmap --script nmap-vulners,vulscan --script-args vulscandb = scipvuldb.csv -sV
通过以上的介绍我们知道了如何利用 vulscan 和 nmap-vulners 进行服务漏洞扫描,能够快速的帮我们找到存在漏洞的服务,及时进行修复,保证服务的安全性。