简介
在本实验中,你将学习如何在 Nmap(一款免费的开源网络扫描器)中指定扫描目标。本实验涵盖了各种扫描场景,包括使用 IP 地址 127.0.0.1 扫描本地主机、扫描一个 IP 范围(例如 192.168.1.1 - 10)、扫描一个子网(例如 192.168.1.0/24)、在 Xfce 中创建目标列表并进行扫描、在扫描中排除特定 IP 以及在 Xfce 终端中验证结果。
在本实验中,你将学习如何在 Nmap(一款免费的开源网络扫描器)中指定扫描目标。本实验涵盖了各种扫描场景,包括使用 IP 地址 127.0.0.1 扫描本地主机、扫描一个 IP 范围(例如 192.168.1.1 - 10)、扫描一个子网(例如 192.168.1.0/24)、在 Xfce 中创建目标列表并进行扫描、在扫描中排除特定 IP 以及在 Xfce 终端中验证结果。
在本步骤中,你将学习如何使用 Nmap 扫描你自己的机器,也就是本地主机。扫描本地主机是网络安全中的一个基本步骤,它能帮助你了解在你的机器上运行着哪些服务以及它们是否存在漏洞。
在开始之前,让我们简要讨论一下什么是本地主机和 Nmap:
127.0.0.1
。当你扫描本地主机时,实际上就是在扫描你自己的机器。要使用 Nmap 扫描本地主机,请按照以下步骤操作:
打开 Xfce 终端。终端是你与 Linux 操作系统进行交互的入口。
输入以下命令并按回车键:
nmap 127.0.0.1
此命令告诉 Nmap 扫描 IP 地址 127.0.0.1
,即本地主机。
观察输出。Nmap 将显示你机器上开放的端口以及运行在这些端口上的服务。输出可能如下所示:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost: ::1
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
输出显示了你机器上开放的端口以及与这些端口相关联的服务。例如,端口 22 通常用于 SSH,端口 80 用于 HTTP 等等。STATE
列指示端口是开放、关闭还是被过滤。
注意:列出的具体端口和服务会因你的机器配置而异。
在本步骤中,你将学习如何使用 Nmap 扫描一系列 IP 地址。扫描 IP 范围对于发现网段内的活动主机很有用。
在我们继续之前,让我们了解一下什么是 IP 范围:
192.168.1.1-10
表示从 192.168.1.1
到 192.168.1.10
(包括这两个地址)的 IP 地址。要使用 Nmap 扫描 IP 范围 192.168.1.1-10
,请按照以下步骤操作:
打开 Xfce 终端。
输入以下命令并按回车键:
nmap 192.168.1.1-10
此命令指示 Nmap 扫描从 192.168.1.1
到 192.168.1.10
的所有 IP 地址。
观察输出。Nmap 将为指定范围内的每个 IP 地址显示扫描报告。输出可能如下所示:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 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
Nmap scan report for 192.168.1.2
Host is up (0.00018s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
80/tcp open http
Nmap scan report for 192.168.1.3
Host is down
Nmap scan report for 192.168.1.4
Host is down
Nmap scan report for 192.168.1.5
Host is down
Nmap scan report for 192.168.1.6
Host is down
Nmap scan report for 192.168.1.7
Host is down
Nmap scan report for 192.168.1.8
Host is down
Nmap scan report for 192.168.1.9
Host is down
Nmap scan report for 192.168.1.10
Host is down
Nmap done: 10 IP addresses (2 hosts up) scanned in 2.50 seconds
输出显示了该范围内每个 IP 地址的状态。如果主机处于活动状态,Nmap 将显示该主机上开放的端口和运行的服务。如果主机处于关闭状态,Nmap 将指示该主机没有响应。
注意:列出的具体 IP 地址、端口和服务会因你的网络配置而异。此外,有些主机可能配置为阻止 Nmap 扫描,因此即使它们实际上处于活动状态,也可能显示为关闭。
在本步骤中,你将学习如何使用 Nmap 扫描整个子网。对于网络管理员和安全专业人员来说,扫描子网是一项常见任务,用于发现网络内所有活动主机。
在开始之前,让我们先明确一下什么是子网和 CIDR 表示法:
192.168.1.0/24
中,192.168.1.0
是网络地址,/24
表示子网掩码。/24
子网掩码意味着 IP 地址的前 24 位用于网络地址,剩下的 8 位用于主机地址。这总共允许有 256(2 的 8 次方)个地址,其中 192.168.1.0
是网络地址,192.168.1.255
是广播地址。可用主机地址范围从 192.168.1.1
到 192.168.1.254
。要使用 Nmap 扫描子网 192.168.1.0/24
,请按以下步骤操作:
打开 Xfce 终端。
输入以下命令并按回车键:
nmap 192.168.1.0/24
此命令告诉 Nmap 扫描 192.168.1.0/24
子网内的所有 IP 地址。这包括从 192.168.1.0
到 192.168.1.255
的 IP 地址。
观察输出。Nmap 将为子网中的每个 IP 地址显示扫描报告。输出可能如下所示:
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
Nmap scan report for 192.168.1.2
Host is up (0.00018s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
80/tcp open http
Nmap scan report for 192.168.1.100
Host is up (0.00030s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
21/tcp open ftp
Nmap scan report for 192.168.1.254
Host is down
Nmap done: 256 IP addresses (3 hosts up) scanned in 15.20 seconds
输出显示了子网中每个 IP 地址的状态。如果主机处于活动状态,Nmap 将显示该主机上开放的端口和运行的服务。如果主机处于关闭状态,Nmap 将指示该主机没有响应。
注意:扫描整个子网可能需要相当长的时间,这取决于子网的大小和网络状况。列出的具体 IP 地址、端口和服务会因你的网络配置而异。此外,有些主机可能配置为阻止 Nmap 扫描,因此即使它们实际上处于活动状态,也可能显示为关闭。
在本步骤中,你将学习如何创建目标列表文件,并将其与 Nmap 一起使用来扫描多个主机。当你有一个预定义的 IP 地址或主机名列表想要扫描时,这会很有用。
以下是创建 targets.txt
文件并将其与 Nmap 一起使用的方法:
打开 Xfce 终端。
使用 nano
编辑器创建 targets.txt
文件。输入以下命令并按回车键:
nano ~/project/targets.txt
此命令将打开 nano
文本编辑器,使你能够在 ~/project
目录中创建和编辑 targets.txt
文件。
将你想要扫描的 IP 地址添加到 targets.txt
文件中,每行一个 IP 地址。例如,添加以下 IP 地址:
127.0.0.1
192.168.1.1
192.168.1.2
注意:你可以使用任何从你的 LabEx VM 可达的 IP 地址。
通过按 Ctrl+X
,然后按 Y
确认,再按回车键保存 targets.txt
文件。
现在,使用 Nmap 扫描 targets.txt
文件中列出的 IP 地址。输入以下命令并按回车键:
nmap -iL ~/project/targets.txt
-iL
选项告诉 Nmap 从指定文件读取目标列表。在这种情况下,它将从 ~/project/targets.txt
文件读取 IP 地址。
观察输出。Nmap 将为 targets.txt
文件中的每个 IP 地址显示扫描报告。输出可能如下所示:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000070s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
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 scan report for 192.168.1.2
Host is up (0.00018s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
80/tcp open http
Nmap done: 3 IP addresses (3 hosts up) scanned in 2.50 seconds
输出显示了 targets.txt
文件中每个 IP 地址的状态。如果主机处于活动状态,Nmap 将显示该主机上开放的端口和运行的服务。
在本步骤中,你将学习如何在 Nmap 扫描中排除特定的 IP 地址。当你想要扫描一个子网,但需要跳过某些主机(例如你没有权限扫描的网络设备或服务器)时,这会很有用。
要在 192.168.1.0/24
子网扫描中排除 IP 地址 192.168.1.5
,请按以下步骤操作:
打开 Xfce 终端。
输入以下命令并按回车键:
nmap 192.168.1.0/24 --exclude 192.168.1.5
--exclude
选项告诉 Nmap 在扫描中排除指定的 IP 地址。在这种情况下,它将在 192.168.1.0/24
子网扫描中排除 192.168.1.5
。
观察输出。Nmap 将为子网中的每个 IP 地址显示扫描报告,但 不包括 192.168.1.5
。输出可能如下所示:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 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
Nmap scan report for 192.168.1.2
Host is up (0.00018s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
80/tcp open http
Nmap scan report for 192.168.1.100
Host is up (0.00030s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
21/tcp open ftp
Nmap scan report for 192.168.1.254
Host is down
Nmap done: 255 IP addresses (3 hosts up) scanned in 15.00 seconds
注意:输出显示 Nmap 扫描了 255 个 IP 地址而不是 256 个,因为 192.168.1.5
被排除了。列出的具体 IP 地址、端口和服务会因你的网络配置而异。此外,有些主机可能配置为阻止 Nmap 扫描,因此即使它们实际上处于活动状态,也可能显示为关闭。
在本步骤中,你将验证在前几步中执行的 Nmap 扫描结果。这包括查看命令的输出,并确保扫描按预期执行。
查看扫描本地主机的 Nmap 输出:
回忆用于扫描本地主机的命令:
nmap 127.0.0.1
输出应显示主机 127.0.0.1
(本地主机)处于活动状态,并列出任何开放端口。一个常见的开放端口是 22 端口(SSH)。
查看扫描 IP 范围的 Nmap 输出:
回忆用于扫描 IP 范围的命令:
nmap 192.168.1.1-10
输出应显示 192.168.1.1
到 192.168.1.10
范围内每个 IP 地址的状态。它将指示哪些主机处于活动状态,并列出这些主机上的任何开放端口。请注意,根据你的网络配置,某些主机可能处于关闭或被过滤状态。
查看扫描子网的 Nmap 输出:
回忆用于扫描子网的命令:
nmap 192.168.1.0/24
输出应显示 192.168.1.0/24
子网中每个 IP 地址的状态。此扫描可能需要一些时间才能完成,因为它要扫描 256 个 IP 地址。输出将指示哪些主机处于活动状态,并列出这些主机上的任何开放端口。
查看使用目标列表进行扫描的 Nmap 输出:
回忆用于使用 targets.txt
文件进行扫描的命令:
nmap -iL ~/project/targets.txt
输出应显示 ~/project/targets.txt
文件中列出的每个 IP 地址的状态。验证输出是否包括你添加到文件中的每个 IP 地址的扫描结果。
查看排除 IP 地址后的 Nmap 输出:
回忆用于排除 IP 地址的命令:
nmap 192.168.1.0/24 --exclude 192.168.1.5
输出应显示 192.168.1.0/24
子网中每个 IP 地址的状态,但 不包括 192.168.1.5
。验证输出中是否没有 192.168.1.5
的扫描报告。
通过查看每个 Nmap 命令的输出,你可以确认扫描已正确执行,并且结果符合你的预期。这是任何网络扫描活动中的重要一步,因为它有助于你了解网络并识别潜在的安全漏洞。
在本实验中,你学习了如何在 Nmap 中指定扫描目标。你首先使用命令 nmap 127.0.0.1
扫描本地主机,这有助于识别你自己机器上运行的服务和潜在漏洞。你还学习了使用 nmap 192.168.1.1-10
扫描 IP 范围、使用 nmap 192.168.1.0/24
扫描子网,并在 Xfce 中创建一个 targets.txt
文件,以便使用 nmap -iL targets.txt
扫描多个目标。此外,你还学习了使用 nmap 192.168.1.0/24 --exclude 192.168.1.5
从子网扫描中排除特定 IP,并在 Xfce 终端中验证结果。