在 Nmap 中指定扫描目标

NmapNmapBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习如何在 Nmap(一款免费的开源网络扫描器)中指定扫描目标。本实验涵盖了各种扫描场景,包括使用 IP 地址 127.0.0.1 扫描本地主机、扫描一个 IP 范围(例如 192.168.1.1 - 10)、扫描一个子网(例如 192.168.1.0/24)、在 Xfce 中创建目标列表并进行扫描、在扫描中排除特定 IP 以及在 Xfce 终端中验证结果。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/host_discovery("Host Discovery Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/port_scanning -.-> lab-530185{{"在 Nmap 中指定扫描目标"}} nmap/host_discovery -.-> lab-530185{{"在 Nmap 中指定扫描目标"}} nmap/target_specification -.-> lab-530185{{"在 Nmap 中指定扫描目标"}} nmap/service_detection -.-> lab-530185{{"在 Nmap 中指定扫描目标"}} end

使用 nmap 127.0.0.1 扫描本地主机

在本步骤中,你将学习如何使用 Nmap 扫描你自己的机器,也就是本地主机。扫描本地主机是网络安全中的一个基本步骤,它能帮助你了解在你的机器上运行着哪些服务以及它们是否存在漏洞。

在开始之前,让我们简要讨论一下什么是本地主机和 Nmap:

  • 本地主机:这是一个主机名,指代正在使用的当前计算机。它使用 IP 地址 127.0.0.1。当你扫描本地主机时,实际上就是在扫描你自己的机器。
  • Nmap:这是一个免费的开源网络扫描器。它通过发送数据包并分析响应来发现计算机网络上的主机和服务。

要使用 Nmap 扫描本地主机,请按照以下步骤操作:

  1. 打开 Xfce 终端。终端是你与 Linux 操作系统进行交互的入口。

  2. 输入以下命令并按回车键:

    nmap 127.0.0.1

    此命令告诉 Nmap 扫描 IP 地址 127.0.0.1,即本地主机。

  3. 观察输出。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 192.168.1.1-10 扫描 IP 范围

在本步骤中,你将学习如何使用 Nmap 扫描一系列 IP 地址。扫描 IP 范围对于发现网段内的活动主机很有用。

在我们继续之前,让我们了解一下什么是 IP 范围:

  • IP 范围:IP 范围是一组连续的 IP 地址。例如,192.168.1.1-10 表示从 192.168.1.1192.168.1.10(包括这两个地址)的 IP 地址。

要使用 Nmap 扫描 IP 范围 192.168.1.1-10,请按照以下步骤操作:

  1. 打开 Xfce 终端。

  2. 输入以下命令并按回车键:

    nmap 192.168.1.1-10

    此命令指示 Nmap 扫描从 192.168.1.1192.168.1.10 的所有 IP 地址。

  3. 观察输出。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 192.168.1.0/24 扫描子网

在本步骤中,你将学习如何使用 Nmap 扫描整个子网。对于网络管理员和安全专业人员来说,扫描子网是一项常见任务,用于发现网络内所有活动主机。

在开始之前,让我们先明确一下什么是子网和 CIDR 表示法:

  • 子网:子网是 IP 网络的逻辑细分。它使你能够将一个较大的网络划分为更小、更易于管理的部分。
  • CIDR 表示法:CIDR(无类别域间路由)表示法是一种紧凑的方式,用于表示 IP 地址及其相关的路由前缀。在示例 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.1192.168.1.254

要使用 Nmap 扫描子网 192.168.1.0/24,请按以下步骤操作:

  1. 打开 Xfce 终端。

  2. 输入以下命令并按回车键:

    nmap 192.168.1.0/24

    此命令告诉 Nmap 扫描 192.168.1.0/24 子网内的所有 IP 地址。这包括从 192.168.1.0192.168.1.255 的 IP 地址。

  3. 观察输出。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 扫描,因此即使它们实际上处于活动状态,也可能显示为关闭。

在 Xfce 中创建 targets.txt 并使用 nmap -iL targets.txt 进行扫描

在本步骤中,你将学习如何创建目标列表文件,并将其与 Nmap 一起使用来扫描多个主机。当你有一个预定义的 IP 地址或主机名列表想要扫描时,这会很有用。

以下是创建 targets.txt 文件并将其与 Nmap 一起使用的方法:

  1. 打开 Xfce 终端。

  2. 使用 nano 编辑器创建 targets.txt 文件。输入以下命令并按回车键:

    nano ~/project/targets.txt

    此命令将打开 nano 文本编辑器,使你能够在 ~/project 目录中创建和编辑 targets.txt 文件。

  3. 将你想要扫描的 IP 地址添加到 targets.txt 文件中,每行一个 IP 地址。例如,添加以下 IP 地址:

    127.0.0.1
    192.168.1.1
    192.168.1.2

    注意:你可以使用任何从你的 LabEx VM 可达的 IP 地址。

  4. 通过按 Ctrl+X,然后按 Y 确认,再按回车键保存 targets.txt 文件。

  5. 现在,使用 Nmap 扫描 targets.txt 文件中列出的 IP 地址。输入以下命令并按回车键:

    nmap -iL ~/project/targets.txt

    -iL 选项告诉 Nmap 从指定文件读取目标列表。在这种情况下,它将从 ~/project/targets.txt 文件读取 IP 地址。

  6. 观察输出。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 192.168.1.0/24 --exclude 192.168.1.5 排除 IP

在本步骤中,你将学习如何在 Nmap 扫描中排除特定的 IP 地址。当你想要扫描一个子网,但需要跳过某些主机(例如你没有权限扫描的网络设备或服务器)时,这会很有用。

要在 192.168.1.0/24 子网扫描中排除 IP 地址 192.168.1.5,请按以下步骤操作:

  1. 打开 Xfce 终端。

  2. 输入以下命令并按回车键:

    nmap 192.168.1.0/24 --exclude 192.168.1.5

    --exclude 选项告诉 Nmap 在扫描中排除指定的 IP 地址。在这种情况下,它将在 192.168.1.0/24 子网扫描中排除 192.168.1.5

  3. 观察输出。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 扫描,因此即使它们实际上处于活动状态,也可能显示为关闭。

在 Xfce 终端中验证结果

在本步骤中,你将验证在前几步中执行的 Nmap 扫描结果。这包括查看命令的输出,并确保扫描按预期执行。

  1. 查看扫描本地主机的 Nmap 输出

    回忆用于扫描本地主机的命令:

    nmap 127.0.0.1

    输出应显示主机 127.0.0.1(本地主机)处于活动状态,并列出任何开放端口。一个常见的开放端口是 22 端口(SSH)。

  2. 查看扫描 IP 范围的 Nmap 输出

    回忆用于扫描 IP 范围的命令:

    nmap 192.168.1.1-10

    输出应显示 192.168.1.1192.168.1.10 范围内每个 IP 地址的状态。它将指示哪些主机处于活动状态,并列出这些主机上的任何开放端口。请注意,根据你的网络配置,某些主机可能处于关闭或被过滤状态。

  3. 查看扫描子网的 Nmap 输出

    回忆用于扫描子网的命令:

    nmap 192.168.1.0/24

    输出应显示 192.168.1.0/24 子网中每个 IP 地址的状态。此扫描可能需要一些时间才能完成,因为它要扫描 256 个 IP 地址。输出将指示哪些主机处于活动状态,并列出这些主机上的任何开放端口。

  4. 查看使用目标列表进行扫描的 Nmap 输出

    回忆用于使用 targets.txt 文件进行扫描的命令:

    nmap -iL ~/project/targets.txt

    输出应显示 ~/project/targets.txt 文件中列出的每个 IP 地址的状态。验证输出是否包括你添加到文件中的每个 IP 地址的扫描结果。

  5. 查看排除 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 终端中验证结果。