更新 Nikto 数据库和插件

Kali LinuxBeginner
立即练习

引言

Nikto 是一个流行的开源 Web 服务器扫描器,它对 Web 服务器进行全面的测试,检测多种项目,包括超过 6700 个潜在危险的文件/程序,检查超过 1250 个服务器的过时版本,以及超过 270 个服务器的版本特定问题。

为了确保 Nikto 能检测到最新的漏洞,保持其数据库和插件的更新至关重要。新的漏洞不断被发现,Nikto 开发团队会定期发布其扫描引擎、插件和漏洞数据库的更新。在本实验中,你将学习更新 Nikto 到最新版本的简单过程。

检查当前数据库和引擎版本

在此步骤中,你将检查 Nikto 安装的当前版本,包括核心引擎、插件和扫描数据库。这是在执行更新前确认当前状态的重要第一步,它能让你稍后验证更新是否成功。

要检查版本信息,你将使用 -Version 选项。打开终端并运行以下命令:

nikto -Version

你将看到类似以下的输出。请注意,具体的版本号可能会因实验环境的初始状态而异。

---------------------------------------------------------------------------
- Nikto v2.x.x
---------------------------------------------------------------------------
+ Nikto v2.x.x
+ Target IP:
+ Target Hostname:
+ Target Port:
+ Start Time:      ...
---------------------------------------------------------------------------
- Start of nikto scan
---------------------------------------------------------------------------
+ Nikto Core Revision: ...
+ LibWhisker Revision: ...
+ Plugin Revision:     20220410
+ Database Revision:   20220409

请密切关注 Plugin RevisionDatabase Revision 这两行。这些是我们即将更新的组件。

使用 -update 运行更新命令

在此步骤中,你将使用 Nikto 内置的更新功能。Nikto 可以直接从 cirt.net 的官方仓库更新其自身的插件和数据库。

触发此过程的命令是 nikto -update。此命令指示 Nikto 连接到远程服务器,检查其组件的更新版本,并在可用时下载它们。

在你的终端中执行以下命令以开始更新过程:

nikto -update

Nikto 现在将尝试连接到互联网并下载最新的文件。

观察插件和数据库的更新过程

此步骤用于观察你刚刚运行的命令的输出。执行 nikto -update 后,你将在终端中看到一系列消息,详细说明更新过程。你无需在此运行任何新命令;只需查看上一步的输出即可。

输出应类似如下:

---------------------------------------------------------------------------
- Nikto v2.x.x
---------------------------------------------------------------------------
+ Nikto v2.x.x
+ Target IP:
+ Target Hostname:
+ Target Port:
+ Start Time:      ...
---------------------------------------------------------------------------
- Start of nikto scan
---------------------------------------------------------------------------
+ Checking for plugin updates...
+ Plugins are current, no update needed.
+ Checking for database updates...
+ The 'db_tests' file is not current.
+ Downloading db_tests.tar.gz...
...
+ Unpacking db_tests.tar.gz...
+ 1010 items unpacked.
+ Done.

此输出确认 Nikto 已成功检查更新。在此示例中,插件已是最新版本,但测试数据库(db_tests)已过时,现已下载并解压。你的输出可能显示插件和数据库的更新。

验证更新后的新组件版本

在此步骤中,你将验证更新是否成功。就像你在第一步中所做的那样,你将再次检查版本信息。这将确认 Nikto 正在识别和使用新的插件和数据库文件。

再次运行 nikto -Version 命令:

nikto -Version

现在,将新输出与你在步骤 1 中看到的进行比较。Plugin RevisionDatabase Revision 的日期应该更新。

---------------------------------------------------------------------------
- Nikto v2.x.x
---------------------------------------------------------------------------
+ Nikto v2.x.x
...
---------------------------------------------------------------------------
- Start of nikto scan
---------------------------------------------------------------------------
+ Nikto Core Revision: ...
+ LibWhisker Revision: ...
+ Plugin Revision:     20231025   <-- 应为较新的日期
+ Database Revision:   20231112   <-- 应为较新的日期

看到更新的修订号(revision numbers)即表示你的 Nikto 实例正在使用最新的组件。

使用更新后的组件执行测试扫描

在最后这个步骤中,你将执行一次快速的测试扫描,以确保 Nikto 在更新后完全可用。针对本地 Web 服务器进行简单扫描足以确认引擎、插件和数据库是否协同工作正常。

实验环境运行着一个本地的 Apache Web 服务器。你可以使用 localhost 作为目标主机来扫描它。-h 选项用于指定主机。

运行以下命令开始扫描:

nikto -h localhost

Nikto 现在将开始扫描本地 Web 服务器。你将看到详细说明服务器信息和任何潜在发现的输出。扫描的成功启动表明更新后的组件工作正常。

---------------------------------------------------------------------------
- Nikto v2.x.x
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        80
+ Start Time:         ...
---------------------------------------------------------------------------
- Server: Apache/2.4.52 (Ubuntu)
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type
...
+ 6557 requests: 0 error(s) and 7 item(s) reported on remote host
+ End Time:           ...
---------------------------------------------------------------------------
- 1 host(s) tested

看到此输出即表示你更新后的 Nikto 扫描器已投入运行。

总结

恭喜你完成了本次实验!

你已成功学会了如何管理和更新你的 Nikto Web 扫描器。你练习了检查当前组件版本、运行 nikto -update 命令获取最新的插件和数据库、通过再次检查版本来验证更新是否成功,以及执行测试扫描以确保一切正常工作。

保持安全工具的最新状态是网络安全中的一项基本实践,因为它能确保你配备了检测最新发现的威胁和漏洞的能力。