简介
在本实验中,你将学习如何使用 Nmap 模拟各种网络条件。这包括模拟错误的校验和以及操纵最大传输单元(MTU),以了解它们对网络扫描的影响。
你将探索诸如 nmap --badsum 192.168.1.1
之类的命令,用于发送具有损坏校验和的数据包;nmap --mtu 1400 127.0.0.1
用于设置特定的 MTU,以及它们的组合。你还将学习使用 -v
增加详细程度,并使用 -oN
将结果保存到文件中。最后,你将在 Xfce 终端中分析这些模拟的效果。
在本实验中,你将学习如何使用 Nmap 模拟各种网络条件。这包括模拟错误的校验和以及操纵最大传输单元(MTU),以了解它们对网络扫描的影响。
你将探索诸如 nmap --badsum 192.168.1.1
之类的命令,用于发送具有损坏校验和的数据包;nmap --mtu 1400 127.0.0.1
用于设置特定的 MTU,以及它们的组合。你还将学习使用 -v
增加详细程度,并使用 -oN
将结果保存到文件中。最后,你将在 Xfce 终端中分析这些模拟的效果。
在本步骤中,我们将探索如何使用 Nmap 模拟错误的校验和。校验和用于验证通过网络传输的数据的完整性。错误的校验和表明数据在传输过程中已损坏。模拟错误的校验和对于测试系统如何处理损坏的数据包可能很有用。
首先,让我们了解该命令的基本语法:
nmap --badsum <目标 IP>
在这里,--badsum
是一个选项,它告诉 Nmap 生成具有无效校验和的数据包。<目标 IP>
是你要扫描的目标的 IP 地址。
在运行该命令之前,重要的是要明白,发送具有错误校验和的数据包可能会被某些网络设备或安全系统解释为恶意活动。因此,最好在测试网络上使用此选项,或者针对你已获得明确扫描许可的目标使用。
现在,让我们执行该命令。我们将以 IP 地址 192.168.1.1
为目标。确保你具有必要的权限,并且允许扫描此 IP。
打开你的 Xfce 终端并执行以下命令:
sudo nmap --badsum 192.168.1.1
你可能会看到表明 Nmap 正在发送具有错误校验和的数据包的输出。确切的输出将取决于目标系统和网络配置。
示例输出(可能会有所不同):
Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
All 1000 scanned ports on 192.168.1.1 are filtered
Nmap done: 1 IP address (1 host up) scanned in 4.63 seconds
注意:输出显示所有端口都被过滤了。这只是一个示例,实际结果取决于目标。重要的是 Nmap 使用 --badsum
选项执行了扫描。
此命令将带有故意损坏的校验和的数据包发送到 192.168.1.1
。这可用于测试系统如何处理无效数据包。
在本步骤中,我们将学习如何使用 Nmap 设置最大传输单元(MTU)大小。MTU 是网络接口能够传输的最大数据包大小(以字节为单位)。默认情况下,Nmap 会自动发现你网络的 MTU。但是,出于测试目的,你可以手动设置 MTU 值。
我们将使用的命令是:
nmap --mtu <MTU 值> <目标 IP>
在这里,--mtu
指定扫描时要使用的 MTU 值,<目标 IP>
是目标的 IP 地址。
在这种特定情况下,我们将把 MTU 设置为 1400,并以回环地址 127.0.0.1
为目标。回环地址是一个特殊的 IP 地址,始终指向本地机器。这使我们能够在不通过网络发送数据包的情况下测试 Nmap 的 MTU 设置。
打开你的 Xfce 终端并执行以下命令:
sudo nmap --mtu 1400 127.0.0.1
你将看到 Nmap 的输出,表明它正在扫描回环地址。输出还将显示 MTU 已设置为 1400。
示例输出(可能会有所不同):
Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
All 1000 scanned ports on localhost (127.0.0.1) are closed
Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds
此命令告诉 Nmap 在向 127.0.0.1
发送数据包时使用 1400 的 MTU。这对于测试系统如何处理特定大小的数据包可能很有用。
在本步骤中,我们将把 MTU 设置与特定的扫描类型相结合。我们将使用 SYN 扫描(-sS
)以及 --mtu
选项来执行具有指定 MTU 大小的扫描。
SYN 扫描(-sS
)是一种隐蔽扫描,它只向目标发送 SYN 数据包。它比完整的 TCP 连接扫描更快且更难被检测到。
我们将使用的命令是:
nmap -sS --mtu <MTU 值> <目标 IP>
在这里,-sS
指定 SYN 扫描类型,--mtu
设置 MTU 值,<目标 IP>
是目标的 IP 地址。
在这种特定情况下,我们将把 MTU 设置为 1000,并以 IP 地址 192.168.1.1
为目标。确保你具有必要的权限,并且允许扫描此 IP。
打开你的 Xfce 终端并执行以下命令:
sudo nmap -sS --mtu 1000 192.168.1.1
你将看到 Nmap 的输出,表明它正在执行 MTU 为 1000 的 SYN 扫描。确切的输出将取决于目标系统和网络配置。
示例输出(可能会有所不同):
Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
All 1000 scanned ports on 192.168.1.1 are filtered
Nmap done: 1 IP address (1 host up) scanned in 4.63 seconds
注意:输出显示所有端口都被过滤了。这只是一个示例,实际结果取决于目标。重要的是 Nmap 使用 --mtu
选项执行了 SYN 扫描。
此命令将 SYN 扫描与特定的 MTU 大小相结合。这对于测试系统在扫描期间如何响应不同大小的数据包可能很有用。
在本步骤中,我们将为 Nmap 命令添加详细输出。详细输出会增加扫描过程中显示的信息量,这有助于调试以及理解 Nmap 正在执行的操作。
-v
选项会提高详细程度。你可以多次使用它(例如 -vv
)以获得更详细的输出。
我们将把详细程度选项与第一步中使用的 --badsum
选项相结合,以回环地址 127.0.0.1
为目标。
打开你的 Xfce 终端并执行以下命令:
sudo nmap -v --badsum 127.0.0.1
与之前的命令相比,你将看到 Nmap 输出的信息更加详细。输出将包括正在发送的数据包、接收到的响应以及扫描进度等信息。
示例输出(可能会有所不同):
Starting Nmap 7.80 ( https://nmap.org )
NSE: Loaded 0 scripts for scanning.
Initiating Ping Scan at 15:00
Scanning localhost (127.0.0.1) [4 ports]
Completed Ping Scan at 15:00, 0.00s elapsed (1 total hosts)
Host localhost (127.0.0.1) appears to be up ... good.
Initiating Connect Scan at 15:00
Scanning localhost (127.0.0.1) [1000 ports]
Connect Scan Timing: About 0.00% done; ETC: 15:00 (0:00:00 remaining)
Completed Connect Scan at 15:00, 0.01s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
All 1000 scanned ports on localhost (127.0.0.1) are closed
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds
-v
选项提供了有关扫描过程的更多信息,从而更易于理解 Nmap 的操作并排查任何问题。
在本步骤中,我们将把 Nmap 扫描结果保存到一个文件中。这对于后续分析或将结果分享给他人很有用。
-oN
选项指定输出应以普通格式保存到指定文件。
我们将使用的命令是:
nmap --mtu <MTU 值> -oN <输出文件> <目标 IP>
在这里,--mtu
设置 MTU 值,-oN
指定以普通格式输出的文件,<输出文件>
是保存结果的文件名,<目标 IP>
是目标的 IP 地址。
在这种特定情况下,我们将把 MTU 设置为 1200,将输出保存到 ~/project
目录下一个名为 sim.txt
的文件中,并以 IP 地址 192.168.1.1
为目标。确保你具有必要的权限,并且允许扫描此 IP。
打开你的 Xfce 终端并执行以下命令:
sudo nmap --mtu 1200 -oN sim.txt 192.168.1.1
扫描完成后,将在你的 ~/project
目录中创建一个名为 sim.txt
的文件。此文件将包含以人类可读格式呈现的 Nmap 扫描结果。
要验证文件是否已创建并包含扫描结果,你可以使用 cat
命令来显示文件内容:
cat sim.txt
你应该会看到 Nmap 扫描结果打印到终端上。
示例输出(可能会有所不同):
## Nmap 7.80 scan initiated Mon Oct 26 15:05:05 2020
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
All 1000 scanned ports on 192.168.1.1 are filtered
## Nmap done: 1 IP address (1 host up) scanned in 4.63 seconds
此命令将 Nmap 扫描结果保存到一个文件中,以便你稍后查看和分析结果。
在本步骤中,我们将分析使用 Nmap 执行的模拟的效果。我们将检查上一步的输出,以了解 --badsum
和 --mtu
选项如何影响扫描结果。
首先,让我们回顾一下上一步中创建的 sim.txt
文件。打开你的 Xfce 终端并使用 cat
命令显示文件内容:
cat sim.txt
检查输出。注意目标 IP 地址、扫描的端口以及这些端口的状态(例如,开放、关闭、被过滤)。
接下来,让我们考虑 --badsum
选项。此选项会故意破坏 Nmap 数据包的校验和。在实际场景中,这可能会导致数据包被网络或目标主机丢弃。然而,即使数据包已损坏,Nmap 仍然可以提供一些信息。
回想一下我们使用 --badsum
的命令:
sudo nmap --badsum 192.168.1.1
此命令的输出(如果你没有将其保存到文件中)会显示尽管存在校验和错误,Nmap 仍如何尝试扫描目标。
现在,让我们考虑 --mtu
选项。此选项设置 Nmap 数据包的最大传输单元(MTU)。MTU 是可以在网络上传输的最大数据包大小。如果 MTU 设置得太高,数据包可能会被分片,这可能会影响扫描结果。如果 MTU 设置得太低,扫描可能会更慢。
回想一下我们使用 --mtu
的命令:
sudo nmap --mtu 1200 -oN sim.txt 192.168.1.1
通过将 MTU 设置为 1200,我们可能影响了目标主机接收和处理 Nmap 数据包的方式。sim.txt
文件包含此扫描的结果,你应该将其与没有 --mtu
选项的扫描结果进行比较,以查看差异。
为了进一步分析效果,你可以尝试使用不同的 MTU 值运行 Nmap 扫描并比较结果。例如,尝试一个小于默认值(通常为 1500)的 MTU 值和一个更大的值。
总之,通过使用 --badsum
和 --mtu
选项,我们模拟了可能影响 Nmap 扫描的网络条件。分析这些模拟的结果有助于我们了解 Nmap 在不同情况下的行为以及如何相应地解释扫描结果。
此步骤主要是关于理解上一步命令的影响。除了查看上一步的输出之外,此步骤中没有特定的命令要执行。
在本实验中,我们探索了如何使用 Nmap 模拟网络条件。具体来说,我们学习了如何使用 --badsum
选项向目标 IP 地址发送具有无效校验和的数据包,从而测试系统如何处理损坏的数据。我们还练习了使用 --mtu
选项设置最大传输单元(MTU)大小,以控制扫描期间发送的数据包大小。
此外,我们将 --mtu
选项与扫描类型相结合,并探索了使用 -v
标志增加详细程度以获得更详细的输出。最后,我们学习了如何使用 -oN
选项将扫描结果保存到文件中以供后续分析,并且我们被要求在 Xfce 终端中分析这些模拟的效果。