引言
Nikto 是一个流行的开源 Web 服务器扫描器,它针对 Web 服务器进行全面的测试,检查超过 6700 个潜在危险文件/程序,检查超过 1250 个服务器的过时版本,以及超过 270 个服务器的版本特定问题。
运行扫描很有用,但能够以清晰、可读且可共享的格式保存结果对于安全专业人员至关重要。Nikto 可以将扫描结果导出为多种格式,其中 HTML 是最方便分析的格式之一。
在本实验中,你将学习如何针对目标 Web 服务器运行 Nikto 扫描并生成结构良好的 HTML 报告。
Nikto 是一个流行的开源 Web 服务器扫描器,它针对 Web 服务器进行全面的测试,检查超过 6700 个潜在危险文件/程序,检查超过 1250 个服务器的过时版本,以及超过 270 个服务器的版本特定问题。
运行扫描很有用,但能够以清晰、可读且可共享的格式保存结果对于安全专业人员至关重要。Nikto 可以将扫描结果导出为多种格式,其中 HTML 是最方便分析的格式之一。
在本实验中,你将学习如何针对目标 Web 服务器运行 Nikto 扫描并生成结构良好的 HTML 报告。
在本步骤中,你将学习如何为 Nikto 扫描指定输出格式。Nikto 可以生成多种格式的报告,在本实验中,我们将重点关注 HTML 格式,它具有高度的可读性和易于导航的特点。
-Format 选项用于告知 Nikto 使用哪种报告格式。要生成 HTML 报告,你必须为该选项指定 html 作为参数。
让我们首先探索 Nikto 的帮助菜单,查看可用的格式选项。
nikto -Help | grep Format
你应该会看到列出可用格式的输出,其中包括 html。
-Format Scan report format (csv, htm, msf+, nbe, sql, txt, xml)
指定 HTML 格式的语法就是 -Format html。在接下来的步骤中,我们将把它与其他标志结合起来,构建完整的命令。
在本步骤中,你将学习如何指定 Nikto 保存报告的文件。仅仅将格式设置为 HTML 会将原始 HTML 代码打印到你的终端,这并没有太大用处。你需要将此输出定向到一个文件。
-o (或 --output) 标志用于此目的。你将所需的文件名作为参数提供给此标志。
让我们将其与前一步的格式标志结合起来。我们将报告文件命名为 nikto_report.html,并将其保存在当前目录 (~/project) 中。我们还需要使用 -h (或 --host) 标志指定要扫描的目标。在本实验中,我们的目标是运行在 http://127.0.0.1:8000 的本地 Web 服务器。
完整的命令结构将如下所示:
nikto -h http://127.0.0.1:8000 -Format html -o nikto_report.html
我们将在下一步执行这个完整的命令。现在,只需熟悉其结构和每个标志的用途即可。
现在是时候将所有内容整合起来并运行扫描了。我们将使用在前面步骤中构建的命令来扫描我们的本地 Web 服务器,并将结果保存到 HTML 文件中。
在你的终端中执行以下命令。扫描可能需要几分钟才能完成。
nikto -h http://127.0.0.1:8000 -Format html -o nikto_report.html
在扫描过程中,Nikto 将在终端显示其进度。输出将类似于:
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: 127.0.0.1
+ Target Port: 8000
+ Start Time: 2023-10-27 10:30:00
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.12
+ 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
+ No CGI directories found (use '-C all' to force check all possible dirs)
+ "robots.txt" not found.
+ OSVDB-3233: /: HTTP TRACE method is active, suggesting the host is vulnerable to XST
+ 7528 requests: 0 error(s) and 5 item(s) reported on remote host
+ End Time: 2023-10-27 10:30:15
+ (15 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
扫描完成后,你可以通过列出当前目录中的文件来验证报告文件是否已创建。
ls -l nikto_report.html
你应该会在输出中看到 nikto_report.html 文件。
-rw-r--r-- 1 labex labex 21435 Oct 27 10:30 nikto_report.html
在本步骤中,你将打开生成的 nikto_report.html 文件来查看其内容。由于它是一个 HTML 文件,最佳的查看方式是在 Web 浏览器中打开。
LabEx 环境包含了 Firefox Web 浏览器。你可以通过运行 firefox 命令后跟文件名,直接从终端打开报告。
执行以下命令。这将启动 Firefox 并打开你的报告。
firefox nikto_report.html
一个新的 Firefox 窗口应该会出现在你的屏幕上,显示 Nikto 扫描报告。如果窗口出现在终端后面,你可能需要移动终端窗口才能看到它。
最后一步是浏览你刚刚在 Firefox 中打开的报告。Nikto 生成的 HTML 报告结构清晰且信息丰富。
花点时间看看报告的不同部分:
URI 列,它显示了受影响的路径;以及 Description 列,它解释了发现的内容。许多发现都包含一个链接(通常是 OSVDB ID),你可以点击它来获取有关该特定漏洞的更多详细信息。点击报告中的一些链接,看看它们如何提供额外的上下文。熟悉这个报告结构是分析安全扫描结果的关键技能。此步骤仅用于观察,无需执行任何命令。
在本实验中,你学会了如何使用 Nikto 生成一份全面的 HTML 格式的 Web 服务器漏洞报告。
你练习了使用 -Format html 选项来指定报告类型,以及使用 -o 标志将输出保存到名为 nikto_report.html 的文件中。最后,你在 Web 浏览器中打开并浏览了生成的报告,学会了如何解读扫描摘要和详细发现。
这项技能对于有效记录和沟通安全评估至关重要。