引言
Nikto 是一个流行的开源 Web 服务器扫描器,它对 Web 服务器进行全面的测试,检测多种项目,包括超过 6700 个潜在危险的文件/程序,检查超过 1250 个服务器的过时版本,以及超过 270 个服务器的版本特定问题。
为了确保 Nikto 能检测到最新的漏洞,保持其数据库和插件的更新至关重要。新的漏洞不断被发现,Nikto 开发团队会定期发布其扫描引擎、插件和漏洞数据库的更新。在本实验中,你将学习更新 Nikto 到最新版本的简单过程。
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 Revision 和 Database Revision 这两行。这些是我们即将更新的组件。
在此步骤中,你将使用 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 Revision 和 Database 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 命令获取最新的插件和数据库、通过再次检查版本来验证更新是否成功,以及执行测试扫描以确保一切正常工作。
保持安全工具的最新状态是网络安全中的一项基本实践,因为它能确保你配备了检测最新发现的威胁和漏洞的能力。