Nmap 扫描目标指定

NmapBeginner
立即练习

介绍

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

使用 nmap 扫描本地主机 127.0.0.1

本步骤将教你如何使用 Nmap 扫描你的本地机器,也称为 localhost。扫描本地主机是网络安全的基本步骤,它能帮助你了解机器上运行的服务以及它们是否存在漏洞。

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

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

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

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

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

    nmap 127.0.0.1
    

    这条命令指示 Nmap 扫描 IP 地址 127.0.0.1,也就是本地主机。

  3. 观察输出结果。Nmap 将显示机器上开放的端口和运行的服务列表。输出结果类似于以下内容:

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:10 CST
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000096s latency).
    Not shown: 995 closed ports
    PORT     STATE SERVICE
    22/tcp   open  ssh
    2121/tcp open  ccproxy-ftp
    2222/tcp open  EtherNetIP-1
    3001/tcp open  nessus
    8080/tcp open  http-proxy
    
    Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
    

    输出显示了机器上开放的端口及其关联的服务。例如,端口 22 通常用于 SSH,端口 8080 用于 HTTP 代理,以此类推。STATE 列指示端口的状态,可能是开放、关闭或被过滤。

    注意: 列出的特定端口和服务将根据你的机器配置而有所不同。

使用 nmap 扫描 IP 范围 192.168.1.1-10

本步骤将教你如何使用 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. 输入以下命令并按下 Enter 键:

    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 2025-06-03 09:11 CST
    Nmap done: 10 IP addresses (0 hosts up) scanned in 5.04 seconds
    

    输出显示了该范围中每个 IP 地址的状态。在这种情况下,在 192.168.1.1-10 范围内没有发现任何活动主机。如果主机处于活动状态,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

为了演示子网扫描,我们将采用更实际的方法:

  1. 打开 Xfce 终端。

  2. 首先,让我们尝试快速 ping 扫描,看看子网中有无响应的主机。输入以下命令并按下 Enter 键:

    nmap -sn 192.168.1.0/24
    

    -sn 选项执行“ping 扫描”(仅主机发现),无需端口扫描,速度更快。

  3. 如果 ping 扫描花费时间过长或显示无结果,可以使用 Ctrl+C 中断它,并尝试扫描较小的范围:

    nmap -sn 192.168.1.1-20
    

    这仅扫描该范围内的前 20 个 IP 地址,更易于管理。

  4. 为了演示,让我们扫描包含本地主机的较小子网。尝试以下命令:

    nmap 127.0.0.0/30
    

    这扫描一个非常小的子网(只有 4 个地址:127.0.0.0、127.0.0.1、127.0.0.2、127.0.0.3),应该很快完成:

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:11 CST
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000096s latency).
    Not shown: 995 closed ports
    PORT     STATE SERVICE
    22/tcp   open  ssh
    2121/tcp open  ccproxy-ftp
    2222/tcp open  EtherNetIP-1
    3001/tcp open  nessus
    8080/tcp open  http-proxy
    
    Nmap done: 4 IP addresses (1 host up) scanned in 0.15 seconds
    

    注意: 扫描大型子网,例如 192.168.1.0/24(256 个地址),可能需要很长时间,并且在像 LabEx 这样的虚拟化环境中可能会被网络策略阻止。通常,先扫描较小的范围或使用主机发现选项来识别活动目标,然后再执行详细的端口扫描更实用。

使用 targets.txt 文件并用 nmap -iL targets.txt 扫描

本步骤将教你如何使用目标列表文件与 Nmap 扫描多个主机。当你有预定义的 IP 地址或主机名列表需要扫描时,此方法非常有用。

以下是如何使用预创建的 targets.txt 文件与 Nmap:

  1. 打开 Xfce 终端。

  2. 首先,让我们检查已为你准备好的 targets.txt 文件的内容。输入以下命令并按下 Enter 键:

    cat ~/project/targets.txt
    

    这将显示文件内容:

    127.0.0.1
    192.168.1.1
    192.168.1.2
    

    该文件包含三个 IP 地址,我们将扫描:本地主机 (127.0.0.1) 和来自 192.168.1.x 范围的两个 IP 地址。

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

    nmap -iL ~/project/targets.txt
    

    -iL 选项指示 Nmap 从指定文件中读取目标列表。在本例中,它将从 ~/project/targets.txt 文件中读取 IP 地址。

  4. 观察输出结果。Nmap 将为 targets.txt 文件中每个 IP 地址显示扫描报告。输出结果类似于以下内容:

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:13 CST
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00011s latency).
    Not shown: 995 closed ports
    PORT     STATE SERVICE
    22/tcp   open  ssh
    2121/tcp open  ccproxy-ftp
    2222/tcp open  EtherNetIP-1
    3001/tcp open  nessus
    8080/tcp open  http-proxy
    
    Nmap done: 3 IP addresses (1 host up) scanned in 1.25 seconds
    

    输出显示了 targets.txt 文件中每个 IP 地址的状态。在本例中,仅发现本地主机 (127.0.0.1) 处于活动状态,而其他 IP 地址 (192.168.1.1 和 192.168.1.2) 在实验环境中不可访问。

使用 nmap 排除 IP 192.168.1.0/24 中的 192.168.1.5

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

要将 IP 地址 192.168.1.5192.168.1.0/24 子网扫描中排除,请按照以下步骤操作:

  1. 打开 Xfce 终端。

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

    nmap 192.168.1.0/24 --exclude 192.168.1.5
    

    --exclude 选项指示 Nmap 从扫描中排除指定的 IP 地址。在本例中,它将从 192.168.1.0/24 子网扫描中排除 192.168.1.5

  3. 观察输出结果。扫描将开始,由于实验环境的网络配置,输出可能非常少:

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:13 CST
    

    扫描将尝试检查子网中所有 IP 地址,但排除 192.168.1.5。这意味着 Nmap 将扫描 255 个 IP 地址,而不是 256 个,因为 192.168.1.5 被排除在外。

    注意: 在实验环境中,扫描可能因网络安全策略而中断或被过滤。列出的特定 IP 地址、端口和服务将根据你的网络配置而异。此外,某些主机可能配置为阻止 Nmap 扫描,因此即使它们实际上处于活动状态,它们也可能显示为不可访问。

总结

在本实验中,你学习了如何在 Nmap 中指定扫描目标。你首先使用命令 nmap 127.0.0.1 扫描本地主机,识别出几个正在运行的服务,包括 SSH (端口 22)、ccproxy-ftp (端口 2121)、EtherNetIP-1 (端口 2222)、nessus (端口 3001) 和 http-proxy (端口 8080)。你还在实验环境中学习了如何使用 nmap 192.168.1.1-10 扫描 IP 范围,但未发现任何活动主机。对于子网扫描,你学习了实用方法,包括使用 ping 扫描 (nmap -sn) 进行主机发现,以及扫描更小的子网(例如 127.0.0.0/30)以获得更快的结果。你使用预先创建的 targets.txt 文件,通过 nmap -iL targets.txt 扫描多个目标,成功扫描了本地主机,但发现其他 IP 地址不可访问。最后,你学习了如何使用 nmap 192.168.1.0/24 --exclude 192.168.1.5 从子网扫描中排除特定 IP 地址。这些练习演示了指定扫描目标的各种方法,以及在不同网络环境中使用适当扫描技术的意义。