引言
Nikto 是一个流行的开源 Web 服务器扫描器,它针对 Web 服务器进行全面的测试,涵盖多种项目,包括超过 6700 个潜在危险的文件/程序,检查超过 1250 个服务器的过时版本,以及超过 270 个服务器的版本特定问题。
在进行任何扫描之前,了解可用的选项以及如何正确使用它们至关重要。命令行帮助菜单是了解 Nikto 功能最直接的方式。
在本实验中,你将探索 Nikto 中各种与帮助相关的命令行选项。你将学习如何访问基本和详细帮助,列出所有可用的测试插件,以及检查工具的版本。掌握这些简单的命令将为你更有效地在复杂场景中使用 Nikto 打下坚实的基础。
使用 -h 访问基本帮助菜单
在本步骤中,你将学习如何访问基本帮助菜单。与许多命令行工具一样,Nikto 提供了一个 -h (或 --help) 选项来显示最常用命令行选项的摘要。当你需要快速回顾如何使用该工具时,这里是你应该首先查看的地方。
在你的终端中执行以下命令来显示基本帮助菜单:
nikto -h
你将看到一个精简的选项列表。此输出旨在作为日常使用的快速参考。
- Nikto v2.5.0
---------------------------------------------------------------------------
-config+ 使用此配置文件
-Display+ 开启/关闭显示输出
-evasion+ 编码技术
-Format+ 保存文件 (-o) 的格式
-host+ 目标主机
-Help 扩展帮助信息
-id+ 要使用的主机身份验证,格式为 id:pass 或 id:pass:realm
-list-plugins 列出所有可用的插件
-nointeractive 禁用交互式功能
-nossl 禁用 SSL 的使用
-no404 禁用 404 检查
... (输出已截断) ...
+ 需要一个值
这为你提供了每个选项功能的简要概述。请注意,有些选项标有 +,表示它们需要一个值。
使用 -H 查看扩展帮助显示
在本步骤中,你将查看扩展帮助菜单。虽然 -h 选项对于快速回顾很有用,但有时你需要关于所有可用选项的更详细信息,包括不太常用的选项。为此,Nikto 提供了 -H (或 --Help) 选项。
运行以下命令以查看完整的帮助显示:
nikto -H
此命令的输出比基本帮助菜单全面得多。它提供了所有选项的完整列表,通常附有更详细的说明和示例。
- Nikto v2.5.0
---------------------------------------------------------------------------
-ask+ (yes/no) 是否询问关于向 CIRT.net 提交更新信息。
-config+ (config.txt) 指定一个配置文件来使用,而不是默认文件。
-dbcheck 检查扫描数据库是否存在语法错误。
-Display+ (1234D) 控制 Nikto 显示的输出。使用参考编号或字母来指定类型。
可以同时使用多个。
1 - 显示重定向
2 - 显示收到的 cookies
3 - 显示所有 200/OK 响应
4 - 显示需要身份验证的 URL
D - 调试输出
E - 显示所有 HTTP 错误
P - 将进度打印到 STDOUT
S - 清理输出中的 IP 和主机名
V - 详细输出
... (输出已截断) ...
花点时间滚动浏览此输出。你将发现许多在基本帮助菜单中未列出的强大功能。
使用 -list-plugins 列出所有可用插件
在本步骤中,你将学习如何列出所有可用的 Nikto 插件。Nikto 的扫描能力来自于其插件,这些插件是执行特定测试的独立脚本。了解哪些插件可用可以帮助你自定义扫描。
要查看所有已安装插件的完整列表,请使用 -list-plugins 选项。
执行以下命令:
nikto -list-plugins
这将打印一份长列表,包含 Nikto 在扫描期间可以使用的所有插件。每个插件负责检查特定的漏洞或配置错误。
- Nikto v2.5.0
---------------------------------------------------------------------------
从 /var/lib/nikto/plugins 加载了 289 个插件
Plugin:
- aolserver
http://cirt.net/plugins.shtml#aolserver
检查 AOLserver 特定的项目
Plugin:
- apache
http://cirt.net/plugins.shtml#apache
检查 Apache 特定的项目
Plugin:
- apache_expect_xss
http://cirt.net/plugins.shtml#apache_expect_xss
检查 Apache Expect XSS 头部。
... (输出已截断) ...
此列表显示了插件名称、更多信息的链接以及其用途的简要描述。
检查特定选项的语法
在本步骤中,你将练习使用帮助菜单查找特定选项的语法。扩展帮助 (-H) 是你的参考手册。当你想要了解如何使用某个特定功能时,可以在此帮助输出中进行搜索。
假设你想使用 -Tuning 选项来控制运行哪些类型的测试,但不确定哪些值是有效的。你可以将 nikto -H 命令与 grep 结合使用,以快速找到相关信息。
运行以下命令查找关于 -Tuning 选项的详细信息:
nikto -H | grep 'Tuning'
管道符号 | 将 nikto -H 的输出发送到 grep 命令,然后 grep 会过滤输出,只显示包含单词 "Tuning" 的行。
-Tuning+ (1234567890ab) Tuning 选项控制 Nikto 将针对目标使用的测试。
使用参考编号或字母来指定类型。
可以同时使用多个。
1 - Interesting File / Seen in logs (有趣文件 / 日志中可见)
2 - Misconfiguration / Default File (配置错误 / 默认文件)
3 - Information Disclosure (信息泄露)
4 - Injection (XSS/Script/HTML) (注入 (XSS/脚本/HTML))
5 - Remote File Retrieval - Inside Web Root (远程文件检索 - Web 根目录内)
6 - Denial of Service (拒绝服务)
7 - Remote File Retrieval - Server Wide (远程文件检索 - 服务器范围)
8 - Command Execution / Remote Shell (命令执行 / 远程 Shell)
9 - SQL Injection (SQL 注入)
0 - File Upload (文件上传)
a - Authentication Bypass (身份验证绕过)
b - Software Identification (软件识别)
x - Reverse Tuning Options (i.e., include (反向 Tuning 选项 (即,包含
all except specified) 除指定项外的所有项))
此输出清楚地解释了 -Tuning 选项的作用,并列出了你可以与之一起使用的所有有效值。
验证已安装的 Nikto 版本
在最后这个步骤中,你将学习如何检查已安装的 Nikto 版本。了解版本很重要,原因有几个:它可以帮助你确定是否拥有最新的功能和安全检查,并且在报告 bug 或寻求帮助时,这是必不可少的信息。
Nikto 有一个专门的选项 -Version (注意大写 'V'),用于显示该工具及其关键组件的版本信息。
在你的终端中执行以下命令:
nikto -Version
该命令将输出详细的版本信息。
---------------------------------------------------------------------------
- Nikto v2.5.0
- LibWhisker v2.5
- Perl v5.34.0
- SSL 支持: Net::SSLeay 1.92
- SSL 编译选项: OPENSSL_VER=0x30000020, OPENSSL_INC=/usr/include, OPENSSL_LIB=/usr/lib/x86_64-linux-gnu
- Nikto DB: 20231125
- CIRT DB: 20221101
---------------------------------------------------------------------------
此输出显示了 Nikto 本身的版本,以及其底层组件(如 Perl 和 OpenSSL)的版本,还有其数据库的更新状态。
总结
在本实验中,你已成功探索了 Nikto Web 扫描器的基本命令行帮助选项。
你已学会如何:
- 使用
nikto -h获取常用选项的快速摘要。 - 使用
nikto -H查看所有可用选项的全面详细列表。 - 使用
nikto -list-plugins查看 Nikto 可以使用的所有测试插件。 - 通过将帮助输出通过管道传递给
grep来查找特定选项的信息。 - 使用
nikto -Version检查已安装的 Nikto 及其组件的版本。
你现在已具备了掌握 Nikto 选项并理解其功能所需的知识基础。这将使你能够自信地构建更复杂的扫描命令。


