在 Nmap 中伪造 MAC 地址

NmapNmapBeginner
立即练习

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

简介

在本实验中,我们将探索如何使用 Nmap 欺骗 MAC 地址。欺骗 MAC 地址可让你在扫描期间隐藏网络身份,这对于逃避检测或测试网络安全性很有用。

本实验涵盖使用 --spoof-mac 选项指定自定义 MAC 地址、使用 --spoof-mac 0 随机化 MAC 地址、使用 -v 标志增加详细程度、将欺骗扫描输出保存到文件,以及在 Xfce 终端中将结果与正常扫描进行比较。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/syn_scan("SYN Scan") nmap/NmapGroup -.-> nmap/firewall_evasion("Firewall Evasion Techniques") nmap/NmapGroup -.-> nmap/stealth_scanning("Stealth and Covert Scanning") subgraph Lab Skills nmap/output_formats -.-> lab-547116{{"在 Nmap 中伪造 MAC 地址"}} nmap/save_output -.-> lab-547116{{"在 Nmap 中伪造 MAC 地址"}} nmap/port_scanning -.-> lab-547116{{"在 Nmap 中伪造 MAC 地址"}} nmap/target_specification -.-> lab-547116{{"在 Nmap 中伪造 MAC 地址"}} nmap/verbosity -.-> lab-547116{{"在 Nmap 中伪造 MAC 地址"}} nmap/syn_scan -.-> lab-547116{{"在 Nmap 中伪造 MAC 地址"}} nmap/firewall_evasion -.-> lab-547116{{"在 Nmap 中伪造 MAC 地址"}} nmap/stealth_scanning -.-> lab-547116{{"在 Nmap 中伪造 MAC 地址"}} end

使用 nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1 欺骗 MAC 地址

在本步骤中,我们将探索如何使用 Nmap 欺骗 MAC 地址。欺骗 MAC 地址可让你在扫描期间隐藏你的网络身份。出于各种原因,这可能会很有用,比如逃避检测或测试网络安全性。

在开始之前,让我们简要讨论一下什么是 MAC 地址。MAC(媒体访问控制)地址是分配给网络接口控制器(NIC)的唯一标识符,用作网段内通信中的网络地址。它就像是你网卡的物理地址。

现在,让我们使用 Nmap 来欺骗我们的 MAC 地址。我们将使用 --spoof-mac 选项,后跟所需的 MAC 地址和目标 IP 地址。

打开你的 Xfce 终端。

执行以下命令:

sudo nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1

此命令告诉 Nmap 在扫描目标 IP 地址 192.168.1.1 期间使用 MAC 地址 00:11:22:33:44:55。你可能会看到类似于正常 Nmap 扫描的输出,但用于扫描的源 MAC 地址将是被欺骗的那个。

输出将显示扫描结果,包括开放端口和有关目标的其他信息。

示例输出(具体输出将因目标而异):

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
80/tcp  open  http

Nmap done: 1 IP address (1 host up) scanned in 0.10s

在这个示例中,Nmap 使用被欺骗的 MAC 地址 00:11:22:33:44:55 扫描了 192.168.1.1

使用 nmap --spoof-mac 0 127.0.0.1 随机化 MAC 地址

在上一步中,我们学习了如何使用特定值欺骗 MAC 地址。在本步骤中,我们将探索如何使用 Nmap 随机化 MAC 地址。当你想要通过使用可预测的 MAC 地址来避免被追踪时,这会很有用。

Nmap 允许你通过将 0 用作 --spoof-mac 选项的参数来随机化 MAC 地址。这会告诉 Nmap 为每次扫描生成一个完全随机的 MAC 地址。

打开你的 Xfce 终端。

执行以下命令:

sudo nmap --spoof-mac 0 127.0.0.1

此命令告诉 Nmap 在扫描目标 IP 地址 127.0.0.1(localhost)期间使用随机 MAC 地址。

输出将显示扫描结果,包括开放端口和有关目标的其他信息。由于我们正在扫描 localhost,结果应该相对较快。

示例输出(具体输出将因目标和系统配置而异):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
Loopback interface ignored, scanning 0 interfaces
All 1000 scanned ports on localhost are closed

Nmap done: 1 IP address (1 host up) scanned in 0.01s

在这个示例中,Nmap 使用随机化的 MAC 地址扫描了 127.0.0.1。每次你运行此命令时,Nmap 都会生成不同的 MAC 地址。

使用 nmap -v --spoof-mac 00:11:22:33:44:55 192.168.1.1 增加详细程度

在本步骤中,我们将把 MAC 地址欺骗与增加 Nmap 的详细程度结合起来。详细程度会提供有关扫描过程的更详细信息,这对于故障排除或理解 Nmap 的行为可能会有帮助。

Nmap 中的 -v 选项会增加详细程度级别。使用一次 -v 会提供比默认情况更多的信息,多次使用它(例如 -vv-vvv)会进一步增加详细程度。

打开你的 Xfce 终端。

执行以下命令:

sudo nmap -v --spoof-mac 00:11:22:33:44:55 192.168.1.1

此命令告诉 Nmap 对 192.168.1.1 进行扫描,将 MAC 地址欺骗为 00:11:22:33:44:55,并提供详细输出。

输出将比前几步更详细,显示扫描的不同阶段、发送的探测以及收到的响应。

示例输出(具体输出将因目标和系统配置而异):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Loaded 0 scripts for scanning.
Initiating Ping Scan at 10:10
Scanning 192.168.1.1 [4 ports]
Completed Ping Scan at 10:10, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:10
Completed Parallel DNS resolution of 1 host. at 10:10, 0.00s elapsed
Initiating SYN Stealth Scan at 10:10
Scanning 192.168.1.1 [1000 ports]
Discovered open port 80/tcp on 192.168.1.1
Completed SYN Stealth Scan at 10:10, 0.05s elapsed (1000 total ports)
Nmap scan report for 192.168.1.1
Host is up (0.00018s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
80/tcp  open  http

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.07s
           Raw packets sent: 1001 (44.044KB) | Rcvd: 1001 (40.044KB)

注意提供的额外信息,例如 NSE 脚本加载、不同扫描阶段(Ping 扫描、DNS 解析、SYN 隐蔽扫描)的启动以及发送和接收的数据包数量。在调试网络问题或分析扫描结果时,这种详细程度可能非常宝贵。

使用 nmap --spoof-mac 0 -oN spoof.txt 127.0.0.1 保存欺骗扫描结果

在本步骤中,我们将学习如何将 Nmap 扫描的输出保存到文件中。这对于后续分析或生成报告很有用。我们还将继续使用 MAC 地址欺骗。

Nmap 提供了几种保存扫描结果的选项。-oN 选项以“正常”格式保存输出,这种格式是人类可读的。-oG 选项以可用于脚本编写的 grep 格式保存输出。-oX 选项以 XML 格式保存输出,这对于导入到其他工具中很有用。

打开你的 Xfce 终端。

执行以下命令:

sudo nmap --spoof-mac 0 -oN spoof.txt 127.0.0.1

此命令告诉 Nmap 对 127.0.0.1 进行扫描,随机化 MAC 地址,并将输出以正常格式保存到当前目录(~/project)中名为 spoof.txt 的文件中。

扫描完成后,你可以使用 cat 命令查看 spoof.txt 文件的内容:

cat spoof.txt

输出将以人类可读的格式显示扫描结果,类似于你在终端上看到的内容。

示例输出(具体输出将因目标和系统配置而异):

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.0000090s latency).
Loopback interface ignored, scanning 0 interfaces
All 1000 scanned ports on localhost are closed

Nmap done: 1 IP address (1 host up) scanned in 0.01s

现在,spoof.txt 文件包含了 Nmap 扫描的结果,你可以在方便的时候查看。

在 Xfce 终端中查看扫描输出

在本步骤中,我们将查看在上一步中保存到 spoof.txt 文件的扫描输出。这将让你练习解读 Nmap 扫描结果。

打开你的 Xfce 终端。

使用 cat 命令显示 spoof.txt 文件的内容:

cat spoof.txt

输出将显示 Nmap 扫描报告。让我们来剖析报告的关键部分:

  • Starting Nmap:这一行显示了 Nmap 版本以及扫描开始的日期和时间。
  • Nmap scan report for:这一行指明了扫描的目标(在本例中是 localhost127.0.0.1)。
  • Host is up:这一行确认目标主机可达。还显示了延迟(往返时间)。
  • Ports:这部分列出了扫描的端口及其状态(开放、关闭、被过滤)。在上一步中,如果所有端口都关闭,你会看到“All 1000 scanned ports on localhost are closed”。如果有任何端口开放,它们会连同服务名称一起列在这里(例如,80/tcp open http)。
  • Nmap done:这一行总结了扫描情况,包括扫描的 IP 地址数量和总扫描时间。

示例输出(具体输出会因目标和系统配置而异):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
Loopback interface ignored, scanning 0 interfaces
All 1000 scanned ports on localhost are closed

Nmap done: 1 IP address (1 host up) scanned in 0.01s

花些时间检查输出,并理解它告诉你关于目标系统的哪些信息。在下一步中,我们将把这个输出与正常扫描(不进行 MAC 地址欺骗)的输出进行比较,看看是否有任何差异。

在 Xfce 终端中与正常扫描进行比较

在本步骤中,我们将执行一次正常的 Nmap 扫描(不进行 MAC 地址欺骗),并将其输出与前几步中欺骗扫描的输出进行比较。这将帮助你了解 MAC 地址欺骗是否会影响扫描结果。

打开你的 Xfce 终端。

首先,对 127.0.0.1 运行一次正常的 Nmap 扫描:

sudo nmap 127.0.0.1

此命令将对本地主机执行标准的 Nmap 扫描。

仔细检查此扫描的输出。注意以下几点:

  • Nmap 版本和开始时间。
  • 扫描的目标(127.0.0.1)。
  • 主机是否可达。
  • 扫描的端口列表及其状态(开放、关闭、被过滤)。
  • 扫描完成时间。

示例输出(具体输出会因目标和系统配置而异):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:25 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
Loopback interface ignored, scanning 0 interfaces
All 1000 scanned ports on localhost are closed

Nmap done: 1 IP address (1 host up) scanned in 0.01s

现在,将此输出与包含欺骗扫描输出的 spoof.txt 文件的内容进行比较。你可以使用 cat 命令查看 spoof.txt 的内容:

cat spoof.txt

这两次扫描结果之间有什么差异吗?在大多数基本情况下,扫描结果将是相同的。然而,在更复杂的网络环境中,MAC 地址欺骗可能会影响目标系统对扫描的响应方式,从而可能导致不同的结果。这是因为一些网络设备或防火墙可能会使用 MAC 地址进行过滤或访问控制。

在这个简单的实验环境中,MAC 地址欺骗的主要目的是掩盖扫描的来源,而不一定是改变扫描结果。

总结

在这个实验中,我们探索了如何使用 Nmap 欺骗 MAC 地址。我们学会了在扫描目标 IP 地址时,使用 --spoof-mac 选项来指定一个特定的 MAC 地址,例如 00:11:22:33:44:55。这使我们能够伪装自己的网络身份,并有可能逃避检测。

此外,我们开始研究如何使用 Nmap 随机化 MAC 地址,这对于避免因使用可预测的 MAC 地址而被追踪很有用。该实验展示了指定 MAC 地址和随机化 MAC 地址的基本语法,为更高级的网络扫描技术奠定了基础。