在 Nmap 中调整数据包速率

NmapBeginner
立即练习

介绍

在本实验中,你将学习如何在 Nmap 中调整数据包速率,以控制扫描速度。这涉及使用 --min-rate--max-rate 选项来指定 Nmap 每秒应发送的最小和最大数据包数。

本实验将指导你分别设置最小和最大速率,在单次扫描中组合使用它们,增加详细输出的详细程度,并将结果保存到文件中。你将使用诸如 nmap --min-rate 100 192.168.1.1nmap --max-rate 50 127.0.0.1nmap -sS --min-rate 80 --max-rate 120 192.168.1.1 等命令,在 Xfce 终端中试验不同的速率配置,并观察它们的影响。

使用 nmap --min-rate 100 192.168.1.1 设置最小速率

在本步骤中,我们将探索如何使用 --min-rate 选项来控制 Nmap 的扫描速率。此选项允许你指定 Nmap 每秒应发送的最小数据包数。当你希望确保扫描在合理的时间范围内完成时,这非常有用,特别是在扫描具有高延迟或速率限制的网络时。

理解 --min-rate

--min-rate 选项接受一个数值参数,表示每秒所需的最小数据包数。Nmap 将尝试每秒至少发送这么多数据包。然而,需要注意的是,由于网络条件或其他因素,Nmap 可能并不总是能够达到指定的速率。

实际示例

让我们在扫描目标 IP 地址 192.168.1.1 时,使用 --min-rate 将最小发送速率设置为每秒 100 个数据包。

  1. 打开你的 Xfce 终端。

  2. 执行以下命令:

sudo nmap --min-rate 100 192.168.1.1

解释

  • sudo:此命令需要 sudo,因为 Nmap 通常需要提升权限才能执行某些类型的扫描,例如 SYN 扫描。
  • nmap:这是用于网络探索和安全审计的命令行工具。
  • --min-rate 100:此选项告诉 Nmap 尝试每秒至少发送 100 个数据包。
  • 192.168.1.1:这是你要扫描的目标 IP 地址。注意:为了测试目的,请将其替换为你网络上的有效 IP 地址。未经许可扫描网络是非法的。你可以使用你的网关 IP 地址或本地网络上的测试机器。

预期输出

输出将根据目标和 Nmap 默认执行的扫描类型而有所不同。然而,你应该会看到 Nmap 正在运行并显示有关扫描进度的信息。关键是 Nmap 将尝试每秒至少发送 100 个数据包。你在输出中不会看到速率的明确确认,但你可以根据扫描持续时间和扫描的端口数量来推断它。

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 EDT
Nmap scan report for 192.168.1.1
Host is up (0.00032s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

Nmap done: 1 IP address (1 host up) scanned in 1.23 seconds

重要注意事项

  • 网络条件:如果网络拥塞或目标响应缓慢,实际发送速率可能会低于指定的 --min-rate
  • 目标限制:目标主机可能设置了速率限制,这可能会阻止 Nmap 以所需的速率发送数据包。
  • 扫描类型:你执行的扫描类型也会影响发送速率。某些扫描类型比其他类型需要更多的数据包。

通过使用 --min-rate 选项,你可以影响 Nmap 扫描的速度,并确保它们在合理的时间范围内完成。请记住根据你的网络条件和目标的能力调整速率。

使用 nmap --max-rate 50 127.0.0.1 设置最大速率

在本步骤中,我们将学习如何使用 --max-rate 选项来限制 Nmap 的扫描速率。此选项允许你指定 Nmap 每秒应发送的最大数据包数。当你想要避免使目标系统或网络不堪重负,从而可能触发入侵检测系统(IDS)或导致类似拒绝服务(DoS)的情况时,这特别有用。

理解 --max-rate

--max-rate 选项接受一个数值参数,表示每秒所需的最大数据包数。Nmap 将尝试每秒发送不超过此数量的数据包。这有助于确保你的扫描侵入性更小,更不容易被检测到。

实际示例

让我们在扫描目标 IP 地址 127.0.0.1(localhost)时,使用 --max-rate 将最大发送速率设置为每秒 50 个数据包。

  1. 打开你的 Xfce 终端。

  2. 执行以下命令:

sudo nmap --max-rate 50 127.0.0.1

解释

  • sudo:此命令需要 sudo,因为 Nmap 通常需要提升权限才能执行某些类型的扫描。虽然扫描本地主机可能并非严格必需,但为了保持一致性,包含它是个好习惯。
  • nmap:这是用于网络探索和安全审计的命令行工具。
  • --max-rate 50:此选项告诉 Nmap 将其发送速率限制为每秒最多 50 个数据包。
  • 127.0.0.1:这是目标 IP 地址,即回环地址(localhost)。这是一个用于测试的安全目标。

预期输出

输出将根据 Nmap 默认执行的扫描类型而有所不同。然而,你应该会看到 Nmap 正在运行并显示有关扫描进度的信息。关键是 Nmap 将尝试每秒发送不超过 50 个数据包。你在输出中不会看到速率的明确确认,但扫描可能会比未设置速率限制时花费更长时间。

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
631/tcp  open  ipp
902/tcp  open  iss-realsecure

Nmap done: 1 IP address (1 host up) scanned in 2.51 seconds

重要注意事项

  • 网络条件:即使使用了 --max-rate,网络拥塞仍可能影响实际发送速率。
  • 目标响应能力:如果目标响应缓慢,Nmap 可能会以低于指定最大值的速率发送数据包。
  • 平衡速度与隐蔽性--max-rate 有助于使你的扫描侵入性更小,但也会增加扫描持续时间。你需要根据自己的情况在速度和隐蔽性之间找到合适的平衡。

通过使用 --max-rate 选项,你可以控制 Nmap 扫描的攻击性,并将干扰目标系统或网络的风险降至最低。

使用 nmap -sS --min-rate 80 --max-rate 120 192.168.1.1 组合速率

在本步骤中,我们将结合使用 --min-rate--max-rate 选项来定义扫描速率的范围。这使 Nmap 能够根据网络状况和目标响应能力动态调整发送速率,保持在指定的边界范围内。

理解组合速率控制

通过同时使用 --min-rate--max-rate,你为 Nmap 在管理扫描速度方面提供了更大的灵活性。Nmap 将尝试以介于最小值和最大值之间的速率发送数据包。这对于优化扫描性能同时又避免使目标不堪重负可能很有用。

实际示例

让我们将 --min-rate--max-rate 与 SYN 扫描(-sS)一起使用,来扫描目标 IP 地址 192.168.1.1。我们将最小速率设置为每秒 80 个数据包,最大速率设置为每秒 120 个数据包。

  1. 打开你的 Xfce 终端。

  2. 执行以下命令:

sudo nmap -sS --min-rate 80 --max-rate 120 192.168.1.1

解释

  • sudo:此命令需要 sudo,因为 SYN 扫描(-sS)需要提升的权限。
  • nmap:这是用于网络探索和安全审计的命令行工具。
  • -sS:此选项指定 SYN 扫描,这是一种隐蔽且高效的扫描类型。
  • --min-rate 80:此选项告诉 Nmap 尝试每秒至少发送 80 个数据包。
  • --max-rate 120:此选项告诉 Nmap 将其发送速率限制为每秒最多 120 个数据包。
  • 192.168.1.1:这是你要扫描的目标 IP 地址。注意:为了测试目的,请将其替换为你网络上的有效 IP 地址。未经许可扫描网络是非法的。你可以使用你的网关 IP 地址或本地网络上的测试机器。

预期输出

输出将根据目标和扫描结果而有所不同。然而,你应该会看到 Nmap 正在运行 SYN 扫描并显示有关扫描进度的信息。Nmap 将尝试保持每秒 80 到 120 个数据包之间的发送速率。

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 EDT
Nmap scan report for 192.168.1.1
Host is up (0.00029s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

Nmap done: 1 IP address (1 host up) scanned in 0.87 seconds

重要注意事项

  • 网络状况:实际发送速率将根据网络拥塞和目标响应能力在指定的最小值和最大值之间波动。
  • 扫描类型:扫描类型的选择(在这种情况下为 -sS)会影响速率限制的有效性。
  • 平衡速度与隐蔽性:结合使用 --min-rate--max-rate 可以采用更细致入微的方法来平衡扫描速度和隐蔽性。

通过同时使用 --min-rate--max-rate,你可以微调 Nmap 的扫描速率,以优化性能并将被检测到的风险降至最低。

使用 nmap -v --min-rate 100 127.0.0.1 增加详细程度

在本步骤中,我们将使用 -v 选项为 Nmap 扫描添加详细程度。详细程度会增加 Nmap 在扫描过程中显示的信息量,提供有关扫描过程和结果的更多细节。这有助于你了解 Nmap 正在做什么,并排查任何问题。

理解详细程度级别

-v 选项会增加详细程度级别。你可以多次使用它(例如,-vv-vvv)以进一步增加详细程度。每个级别都会提供更详细的信息。

实际示例

让我们将详细程度与 --min-rate 选项结合起来,扫描目标 IP 地址 127.0.0.1(localhost)。我们将最小速率设置为每秒 100 个数据包,并启用详细程度。

  1. 打开你的 Xfce 终端。

  2. 执行以下命令:

sudo nmap -v --min-rate 100 127.0.0.1

解释

  • sudo:此命令需要 sudo,因为 Nmap 通常需要提升权限才能执行某些类型的扫描。
  • nmap:这是用于网络探索和安全审计的命令行工具。
  • -v:此选项启用详细程度,提供更详细的输出。
  • --min-rate 100:此选项告诉 Nmap 尝试每秒至少发送 100 个数据包。
  • 127.0.0.1:这是目标 IP 地址,即回环地址(localhost)。这是一个用于测试的安全目标。

预期输出

输出将比之前的扫描更详细。你会看到有关扫描阶段、正在发送的探测以及端口状态原因的信息。

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 EDT
NSE: Loaded 0 scripts for scanning.
Initiating Ping Scan at 10:15
Scanning localhost (127.0.0.1) [4 ports]
Completed Ping Scan at 10:15, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:15
Completed Parallel DNS resolution of 1 host. at 10:15, 0.00s elapsed
Initiating SYN Stealth Scan at 10:15
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 25/tcp on 127.0.0.1
Discovered open port 631/tcp on 127.0.0.1
Discovered open port 902/tcp on 127.0.0.1
Completed SYN Stealth Scan at 10:15, 0.65s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
631/tcp  open  ipp
902/tcp  open  iss-realsecure

Nmap done: 1 IP address (1 host up) scanned in 0.65 seconds

详细程度的好处

  • 故障排查:详细程度有助于在扫描过程中识别问题,例如数据包丢失或防火墙干扰。
  • 理解 Nmap 的行为:它能让你深入了解 Nmap 的工作方式以及它在扫描过程中做出的决策。
  • 详细结果:你可以获得有关目标系统及其服务的更多信息。

通过使用 -v 选项,你可以用更详细的信息增强 Nmap 扫描,从而更轻松地理解和排查结果。

使用 nmap --max-rate 60 -oN rate.txt 192.168.1.1 保存结果

在本步骤中,我们将学习如何使用 -oN 选项将 Nmap 扫描结果保存到文件中。这使你能够稍后分析结果、与他人共享或用于报告目的。

理解 Nmap 输出选项

Nmap 提供了多种以不同格式保存扫描结果的选项。-oN 选项以“正常”的人类可读格式保存结果。其他选项包括用于 XML 格式的 -oX、用于脚本小子格式的 -oS 以及用于可 grep 格式的 -oG

实际示例

让我们将 Nmap 扫描的结果保存到 ~/project 目录下一个名为 rate.txt 的文件中。我们还将最大速率设置为每秒 60 个数据包,并扫描目标 IP 地址 192.168.1.1

  1. 打开你的 Xfce 终端。

  2. 执行以下命令:

sudo nmap --max-rate 60 -oN rate.txt 192.168.1.1

解释

  • sudo:此命令需要 sudo,因为 Nmap 通常需要提升权限才能执行某些类型的扫描。
  • nmap:这是用于网络探索和安全审计的命令行工具。
  • --max-rate 60:此选项将发送速率限制为每秒最多 60 个数据包。
  • -oN rate.txt:此选项告诉 Nmap 将结果以正常格式保存到名为 rate.txt 的文件中。该文件将在你当前的目录(即 ~/project)中创建。
  • 192.168.1.1:这是你要扫描的目标 IP 地址。注意:为了测试目的,请将其替换为你网络上的有效 IP 地址。未经许可扫描网络是非法的。你可以使用你的网关 IP 地址或本地网络上的测试机器。

验证输出文件

扫描完成后,你可以验证结果是否已保存到 rate.txt 文件中。

  1. 使用 ls 命令检查 ~/project 目录中是否存在该文件:
ls ~/project/rate.txt

如果文件存在,你将在输出中看到其名称。

  1. 使用 cat 命令查看 rate.txt 文件的内容:
cat ~/project/rate.txt

你应该会看到以人类可读格式呈现的 Nmap 扫描结果。

cat ~/project/rate.txt 的示例输出

## Nmap 7.80 scan initiated Fri Oct 27 10:20:00 2023
Nmap scan report for 192.168.1.1
Host is up (0.00032s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

## Nmap done at Fri Oct 27 10:20:01 2023 -- 1 IP address (1 host up) scanned in 0.91 seconds

保存结果的好处

  • 分析:你可以按照自己的节奏详细分析扫描结果。
  • 报告:你可以将结果包含在报告或文档中。
  • 共享:你可以轻松地与同事或客户共享结果。
  • 历史数据:你可以记录过去的扫描,以便进行比较并跟踪随时间的变化。

通过使用 -oN 选项(或其他输出选项),你可以有效地保存和管理 Nmap 扫描结果以用于各种目的。

在 Xfce 终端中查看速率影响

在本步骤中,我们将查看不同速率设置对 Nmap 扫描时间的影响。通过比较有限速和无限速情况下的扫描时间,你可以了解这些设置如何影响扫描的速度和全面性。

理解速率限制

Nmap 的速率限制选项,如 --min-rate--max-rate,控制每秒发送的数据包数量。设置这些选项对于避免网络拥塞、规避入侵检测系统(IDS)或在不稳定网络上确保更可靠的扫描可能很有用。然而,它们也可能会增加整体扫描时间。

实际示例

我们将进行两次 Nmap 扫描,一次有限速,一次无限速,然后比较扫描时间。

  1. 无速率限制的扫描

    打开你的 Xfce 终端并执行以下命令,在没有任何速率限制的情况下扫描 127.0.0.1

sudo nmap 127.0.0.1
记录扫描完成所需的时间。输出将显示开始和结束时间以及总扫描时间。

**示例输出**:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:25 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
631/tcp  open  ipp
902/tcp  open  iss-realsecure

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
在这个示例中,扫描耗时 0.15 秒。
  1. 有限速的扫描

    现在,执行以下命令,以每秒最多 50 个数据包的速率扫描 127.0.0.1

sudo nmap --max-rate 50 127.0.0.1
再次记录扫描完成所需的时间。

**示例输出**:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:26 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
631/tcp  open  ipp
902/tcp  open  iss-realsecure

Nmap done: 1 IP address (1 host up) scanned in 0.75 seconds
在这个示例中,扫描耗时 0.75 秒。
  1. 比较扫描时间

    比较两次扫描的时间。你会发现有限速的扫描比无速率限制的扫描花费的时间更长。这是因为 Nmap 被迫以较慢的速率发送数据包,从而增加了整体扫描时间。

分析影响

扫描时间的差异展示了速率限制的影响。虽然速率限制在某些情况下可能是有益的,但重要的是要意识到在速度与网络稳定性或隐蔽性等其他因素之间的权衡。

注意事项

  • 网络状况:在拥塞的网络上,速率限制实际上可能通过防止数据包丢失来提高扫描的可靠性。
  • 目标系统:某些目标系统可能对高扫描速率更敏感,可能会变得不稳定或无响应。
  • IDS/IPS:速率限制有助于规避入侵检测和预防系统的检测。

通过了解速率限制的影响,你可以在 Nmap 扫描中明智地决定何时以及如何使用这些选项。

总结

在本实验中,我们探讨了如何使用 --min-rate--max-rate 选项在 Nmap 中调整数据包速率。我们学习了使用 --min-rate 设置最小数据包发送速率,确保 Nmap 尝试每秒至少发送指定数量的数据包,以及使用 --max-rate 设置最大速率。

我们还练习了将这些选项与其他 Nmap 标志(如用于 SYN 扫描的 -sS 和用于增加详细程度的 -v)相结合。最后,我们学习了如何使用 -oN 选项将扫描结果保存到文件中,以便稍后查看和分析速率影响。