分析 Nmap 中的扫描统计信息

NmapBeginner
立即练习

介绍

在本实验中,你将学习如何分析 Nmap 中的扫描统计信息。本实验涵盖了使用 --stats-every 选项定期显示扫描统计信息、使用 -v 选项增加详细程度以及将统计信息输出保存到文件。你还将查看计时统计信息、将不同计时模板的统计信息进行比较,并分析扫描持续时间。

本实验首先在启用统计信息的情况下运行扫描,然后在输出中增加详细程度。接下来,你将学习如何将统计信息保存到文件以便后续分析。最后,你将探索不同的计时模板并分析扫描持续时间,以了解它们如何影响扫描过程。

使用 nmap --stats-every 5s 192.168.1.0/24 运行带统计信息的扫描

在这一步中,你将学习如何使用 Nmap 的 --stats-every 选项定期显示扫描统计信息。这对于监控扫描进度非常有用,尤其是在扫描大型网络时。

首先,让我们了解一下基本语法:

nmap --stats-every <时间> <目标>
  • --stats-every <时间>:指定 Nmap 显示扫描统计信息的时间间隔(以秒为单位)。
  • <目标>:你要扫描的目标 IP 地址或网络。

在这一步中,你将扫描 192.168.1.0/24 网络,并每 5 秒显示一次统计信息。

在终端中执行以下命令:

sudo nmap --stats-every 5s 192.168.1.0/24

你将看到 Nmap 开始扫描网络,并每 5 秒打印一次统计信息。这些统计信息包括已扫描的主机数量、在线主机数量以及估计剩余时间等信息。

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

Stats: 0:00:05 elapsed; 0 hosts completed (0 up), 256 hosts total
Stats: 0:00:10 elapsed; 0 hosts completed (0 up), 256 hosts total
Stats: 0:00:15 elapsed; 0 hosts completed (0 up), 256 hosts total
...

注意:输出会因你的网络配置而异。扫描可能需要一些时间才能完成。你可以随时按 Ctrl+C 停止扫描。由于这只是一个演示,你无需等待扫描完成。

使用 nmap -v --stats-every 5s 127.0.0.1 添加详细输出

在这一步中,你将学习如何使用 -v 选项增加 Nmap 输出的详细程度,同时使用 --stats-every 定期显示扫描统计信息。详细程度会提供有关扫描过程的更详细信息,这有助于故障排除或理解 Nmap 的行为。

-v 选项会增加详细程度级别。你可以多次使用它(例如,-vv)以获得更详细的输出。

在终端中执行以下命令,以详细模式扫描本地主机(127.0.0.1)并每 5 秒显示一次统计信息:

sudo nmap -v --stats-every 5s 127.0.0.1

你将看到 Nmap 开始扫描,并打印有关扫描每个步骤的更详细信息,以及每 5 秒的统计信息。

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Initiating Ping Scan at 10:05
Scanning 127.0.0.1 [4 ports]
Completed Ping Scan at 10:05, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:05
Completed Parallel DNS resolution of 1 host. at 10:05, 0.00s elapsed
Initiating Connect Scan at 10:05
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Completed Connect Scan at 10:05, 0.00s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000083s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Stats: 0:00:05 elapsed; 1 hosts completed (1 up), 1 hosts total
Stats: 0:00:10 elapsed; 1 hosts completed (1 up), 1 hosts total
Stats: 0:00:15 elapsed; 1 hosts completed (1 up), 1 hosts total
...

请注意 -v 选项提供的额外信息,例如不同扫描阶段的启动和完成情况。这对于理解 Nmap 在做什么以及诊断任何问题非常有用。

你可以随时按 Ctrl+C 停止扫描。由于这只是一个演示,你无需等待扫描完成。

使用 nmap --stats-every 5s -oN stats.txt 192.168.1.1 保存扫描统计信息输出

在这一步中,你将学习如何使用 -oN 选项将 Nmap 扫描的输出(包括由 --stats-every 显示的统计信息)保存到文件中。这使你能够在之后分析扫描结果和统计信息。

-oN 选项指定输出应以“正常”格式保存到指定文件。

在终端中执行以下命令,扫描主机 192.168.1.1,每 5 秒显示一次统计信息,并将输出保存到你 ~/project 目录下名为 stats.txt 的文件中:

sudo nmap --stats-every 5s -oN stats.txt 192.168.1.1

Nmap 将开始扫描并在终端上显示统计信息,但它也会将完整的扫描输出保存到 stats.txt 文件中。

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

Stats: 0:00:05 elapsed; 0 hosts completed (0 up), 1 hosts total
Stats: 0:00:10 elapsed; 0 hosts completed (0 up), 1 hosts total
Stats: 0:00:15 elapsed; 0 hosts completed (0 up), 1 hosts total
...

扫描完成后(或者你用 Ctrl + C 中断扫描后),你可以使用 cat 命令查看 stats.txt 文件的内容:

cat ~/project/stats.txt

这将显示 Nmap 扫描输出,包括扫描报告以及扫描期间显示的统计信息。

## Nmap 7.80 scan initiated Fri Oct 27 10:10:00 2023 as: nmap --stats-every 5s -oN stats.txt 192.168.1.1
Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

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

注意stats.txt 中的输出将是最终的扫描报告,而不是定期的统计信息更新。只有在使用 --stats-every 时,统计信息才会显示在终端上。

在 Xfce 终端中查看扫描时间统计信息

在这一步中,你将学习如何观察和解读 Nmap 在扫描过程中显示的时间统计信息。我们将使用 --stats-every 选项在 Xfce 终端中定期显示这些统计信息。

要查看时间统计信息,请在终端中执行以下命令:

sudo nmap --stats-every 2s 192.168.1.1

此命令将扫描主机 192.168.1.1,并每 2 秒显示一次扫描统计信息。

你将在 Xfce 终端中看到类似于以下的输出:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Stats: 0:00:02 elapsed; 0 hosts completed (0 up), 1 hosts total
Stats: 0:00:04 elapsed; 0 hosts completed (0 up), 1 hosts total
Stats: 0:00:06 elapsed; 0 hosts completed (0 up), 1 hosts total
Stats: 0:00:08 elapsed; 0 hosts completed (0 up), 1 hosts total
Nmap done at Fri Oct 27 10:15:10 2023 -- 1 IP address (1 host up) scanned in 10.00 seconds

让我们来分析一下这些统计信息的含义:

  • “Starting Nmap...”:这一行显示了 Nmap 的版本以及扫描开始的时间。
  • “Nmap scan report for...”:这是标准的 Nmap 扫描报告,显示了开放的端口以及有关目标主机的其他信息。
  • “Host is up...”:表示目标主机可达。
  • “Not shown: 999 closed ports”:默认情况下,Nmap 不显示关闭的端口以减少输出。
  • “Stats: 0:00:02 elapsed; 0 hosts completed (0 up), 1 hosts total”:这是此步骤的关键部分。
    • “elapsed”:显示自扫描开始以来经过的时间(以小时:分钟:秒格式)。
    • “hosts completed”:显示已完全扫描的主机数量。
    • “(0 up)”:表示已完成扫描的主机中有多少是可达的。
    • “hosts total”:显示正在扫描的主机总数。
  • “Nmap done at...”:这一行显示扫描结束的时间以及总共花费的时间。

通过观察这些统计信息,你可以了解扫描所需的时间以及扫描进展的速度。这对于估计大型扫描所需的时间以及排查任何性能问题可能会很有用。

你可以随时按 Ctrl + C 中断扫描。

在 Xfce 终端中比较不同计时模板的统计信息

在这一步中,你将探究 Nmap 的扫描时间模板如何影响扫描速度和准确性。Nmap 提供了几个控制扫描激进程度的时间模板。这些模板通过 -T 选项指定,后面跟一个 0 到 5 的数字。

以下是对这些时间模板的简要概述:

  • -T0(偏执模式):最慢的模板,用于避免被检测到。
  • -T1(偷偷摸摸模式):与偏执模式类似,但稍快一些。
  • -T2(礼貌模式):减慢扫描速度以节省带宽和资源。
  • -T3(正常模式):默认模板,在速度和准确性之间取得平衡。
  • -T4(激进模式):通过使扫描更激进来加快扫描速度。
  • -T5(疯狂模式):最快的模板,但也最容易被检测到并可能导致网络问题。

为了比较不同时间模板的效果,我们将对 127.0.0.1(localhost)运行两次扫描,一次使用 -T2(礼貌模式),另一次使用 -T4(激进模式),并观察统计信息。

首先,使用“礼貌”模板运行扫描:

sudo nmap -T2 --stats-every 5s 127.0.0.1

在 Xfce 终端中观察输出。注意经过的时间以及端口被扫描的速率。你会看到扫描进展相对较慢。

接下来,使用“激进”模板运行扫描:

sudo nmap -T4 --stats-every 5s 127.0.0.1

再次,在 Xfce 终端中观察输出。将经过的时间和扫描速率与前一次扫描进行比较。你会注意到使用“激进”模板时扫描进展要快得多。

通过比较这两次扫描的统计信息,你可以看到时间模板如何影响 Nmap 扫描的速度和激进程度。请记住,使用更激进的模板会增加被检测到的风险,并可能在目标网络上导致问题。根据你的具体需求和正在扫描的环境选择合适的模板。

你可以随时按 Ctrl + C 中断扫描。

在 Xfce 终端中分析扫描持续时间

在这一步中,你将学习如何分析 Nmap 扫描的持续时间。了解扫描所需的时间对于规划和优化网络评估至关重要。Nmap 在扫描期间和之后提供详细的统计信息,包括开始时间、结束时间和总耗时。

为了分析扫描持续时间,我们将执行一次扫描,然后检查输出以获取相关的时间信息。

首先,使用 --stats-every 选项对 127.0.0.1(localhost)进行扫描,以定期显示统计信息:

sudo nmap --stats-every 5s 127.0.0.1

在扫描运行时,观察每隔 5 秒打印到 Xfce 终端的统计信息。这些统计信息包括扫描进度、已扫描的端口数量以及估计的剩余时间。

扫描完成后,Nmap 将打印结果摘要,包括总耗时。查找以“Nmap done”开头的行。这一行将告诉你扫描完成所需的时间。

例如:

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

在此示例中,扫描耗时 2.54 秒完成。

你也可以像上一步演示的那样,使用 -oN 选项将输出保存到文件中,以此来分析扫描持续时间。扫描完成后,你可以打开文件并查找“Nmap done”行以找到耗时。

通过分析扫描持续时间,你可以深入了解 Nmap 扫描的性能并识别潜在的瓶颈。这些信息可用于优化扫描设置并提高网络评估的效率。

总结

在本实验中,你学习了如何使用 Nmap 中的 --stats-every 选项定期显示扫描统计信息,这使你能够监控扫描进度,尤其是在扫描大型网络时。本实验演示了如何每 5 秒显示一次统计信息来执行扫描,展示诸如已扫描主机、活动主机和估计剩余时间等信息。

此外,本实验还介绍了 -v 选项以增加详细程度,在常规统计信息更新的同时提供有关扫描过程的更详细信息。