在 Nikto 中设置扫描请求之间的延迟

Kali LinuxBeginner
立即练习

引言

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

默认情况下,Nikto 会尽可能快地向目标服务器发送请求。虽然这很高效,但很容易被安全系统检测到,并可能给目标服务器带来沉重负担。-Pause 选项允许你通过在每次测试之间添加延迟来控制扫描的节奏。

在本实验中,你将学习如何在 Nikto 中使用 -Pause 选项来执行更慢、侵扰性更小的扫描。

理解 -Pause 选项的用途

在此步骤中,你将了解 Nikto 中的 -Pause 选项。此选项用于指定每次扫描请求之间的延迟(以秒为单位)。这是执行隐蔽扫描或测试可能无法很好地处理大量请求的脆弱系统的关键功能。

让我们首先查看 Nikto 的帮助信息,了解 -Pause 选项的描述。这是理解任何工具选项功能的好习惯。

在终端中执行以下命令:

nikto -Help

滚动输出并查找 -Pause 选项。你将看到一个解释其功能的描述。

...
-Pause <seconds>      在测试之间暂停(秒,整数或浮点数)
...

这证实了 -Pause 接受一个数字(整数或浮点数),表示每次测试之间等待的秒数。

使用 -Pause 5 运行扫描,在测试之间等待 5 秒

在此步骤中,你将使用 -Pause 选项执行 Nikto 扫描。我们的实验环境在 http://localhost:8000 运行一个简单的 Web 服务器供你扫描。

我们将在每次测试之间设置 5 秒的暂停。这意味着 Nikto 在发送一个请求后会等待 5 秒,然后再发送下一个请求。

在你的终端中运行以下命令来启动扫描:

nikto -h http://localhost:8000 -Pause 5

让我们分解一下这个命令:

  • nikto: 运行 Nikto 扫描器的命令。
  • -h http://localhost:8000: -h(或 -host)选项指定目标主机。在这种情况下,它是我们的本地测试服务器。
  • -Pause 5: 这告诉 Nikto 在它执行的每次测试之间暂停 5 秒。

执行命令后,扫描将开始。你将在终端中看到输出。

观察扫描的较慢节奏

在此步骤中,你将观察你在上一步运行的命令的输出。你无需在此处运行任何新命令。

查看 Nikto 扫描正在运行的终端。你应该会注意到,输出的新行(代表单个测试的结果)出现的频率比默认扫描慢得多。屏幕上每出现一个新的测试结果之间会有明显的 5 秒间隔。

以下是输出可能样子的示例,每行都会在延迟后出现:

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        8000
+ Start Time:         2023-10-27 10:30:00 (GMT0)
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ The anti-clickjacking X-Frame-Options header is not present.
+ 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.
... (每 5 秒出现新行) ...

这种刻意的节奏是使用 -Pause 5 选项的直接结果。使用此设置进行完整扫描可能需要相当长的时间。你可以随时在终端中按 Ctrl+C 来停止扫描。对于本次实验,你可以让它运行一分钟来观察效果,然后在继续之前停止它。

分析这如何帮助规避速率限制防火墙

在此步骤中,我们将讨论使用 -Pause 选项的一个主要安全相关原因:规避速率限制防御。

许多现代安全系统,例如 Web Application Firewalls (WAFs) 和 Intrusion Detection Systems (IDS),都采用速率限制作为一种防御机制。速率限制通过跟踪来自单个 IP 地址在特定时间段内的请求数量来工作。如果请求数量超过预定义的阈值(例如,每分钟 100 个请求),系统可能会暂时或永久地阻止该 IP 地址。

默认的 Nikto 扫描非常激进,在很短的时间内发送数百甚至数千个请求。这种行为几乎肯定会触发任何速率限制规则,导致扫描被阻止,并使其结果不完整和不准确。

通过使用 -Pause 5,你将扫描的请求速率更改为每 5 秒一个请求,这相当于每分钟只有 12 个请求。这种低得多的速率更有可能不被简单的速率限制防御所察觉,从而使你的扫描能够成功完成而不会被阻止。这使得 -Pause 选项成为更隐蔽的渗透测试的宝贵工具。

将此选项用于扫描脆弱或敏感系统

在此步骤中,我们将探讨 -Pause 选项的另一个重要用例:负责任地扫描脆弱或敏感系统。

激进的高速扫描不仅有被检测到的风险;它还可能对目标系统的稳定性产生负面影响。一个 Web 服务器,尤其是老旧的、性能不足的或配置不当的服务器,可能难以处理来自扫描器的突然涌入的请求。这可能导致严重的性能下降,使应用程序对合法用户来说变慢或无响应,或者在最坏的情况下,可能导致 Web 服务或整个服务器崩溃。

当你负责评估一个正在运行的生产环境或一个已知的脆弱系统时,造成拒绝服务是不专业的,也是适得其反的。

使用 -Pause 选项是进行负责任和专业的安全评估的关键部分。通过减慢扫描速度,你显著降低了目标服务器的负载,最大限度地降低了干扰其正常运行的风险。这确保了你的安全测试不会干扰业务运营。

总结

在此实验中,你学会了如何使用 -Pause 选项来控制 Nikto Web 服务器扫描的速度。

你练习了在请求之间设置 5 秒延迟来运行扫描,并观察了这如何显著减慢扫描的节奏。你还探索了该技术的主要两个好处:

  1. 隐蔽性:减慢请求有助于规避防火墙和入侵检测系统中实现的简单速率限制规则。
  2. 稳定性:降低请求速率可以最大限度地减少目标服务器的负载,这在扫描脆弱、性能不足或关键生产系统时至关重要。

掌握 -Pause 选项是成为更有效和负责任的安全专业人员的重要一步。