转换 Nmap 中的输出格式

NmapBeginner
立即练习

介绍

在本实验中,你将学习如何将 Nmap 扫描结果转换为不同的输出格式,以便于分析和报告。本实验涵盖了使用 nmap -oX 将扫描结果保存为 XML,然后使用 xsltproc 将 XML 输出转换为 HTML 以便在浏览器中查看。

你还将探索使用 nmap -oG 将扫描结果保存为可通过 grep 搜索的格式,然后使用 grep 提取特定信息(如 IP 地址)并将其保存到文本文件中以供进一步查看。这使得从 Nmap 扫描输出中进行高效的数据提取和处理成为可能。

使用 nmap -oX scan.xml 192.168.1.1 将扫描结果保存为 XML

在本步骤中,你将学习如何使用 Nmap 进行扫描并将结果保存为 XML 格式。XML(可扩展标记语言)是一种标记语言,它定义了一组规则,用于以一种人类可读和机器可读的格式对文档进行编码。将 Nmap 扫描结果保存为 XML 格式便于其他工具和脚本进行解析和分析。

首先,让我们了解一下这个命令:

nmap -oX scan.xml 192.168.1.1

  • nmap:这是运行 Nmap 扫描器的命令。
  • -oX scan.xml:此选项告诉 Nmap 将扫描结果以 XML 格式保存到名为 scan.xml 的文件中。-oX 选项指定了 XML 输出格式。
  • 192.168.1.1:这是 Nmap 将扫描的目标 IP 地址。如有需要,请将其替换为你要扫描的实际 IP 地址。在本实验中,我们将使用 192.168.1.1

现在,让我们在 LabEx VM 中执行该命令。打开你的 Xfce 终端并导航到 ~/project 目录。这是你的默认工作目录。

cd ~/project

接下来,运行 Nmap 命令扫描目标 IP 地址并将结果保存到 scan.xml

sudo nmap -oX scan.xml 192.168.1.1

你将看到 Nmap 正在运行扫描并在终端中显示进度。输出将显示扫描的不同阶段,例如主机发现和端口扫描。

扫描完成后,你可以验证 ~/project 目录中是否已创建 scan.xml 文件。你可以使用 ls 命令列出目录中的文件:

ls -l

你应该在文件列表中看到 scan.xml

你还可以使用 cat 命令或像 nano 这样的文本编辑器查看 scan.xml 文件的内容:

cat scan.xml

nano scan.xml

输出将是一个大型 XML 文档,其中包含 Nmap 扫描的详细信息,包括目标 IP 地址、开放端口和其他信息。

使用 xsltproc /usr/share/nmap/nmap.xsl scan.xml -o scan.html 将 XML 转换为 HTML

在本步骤中,你将学习如何使用 xsltproc 将上一步 Nmap 扫描生成的 XML 输出转换为 HTML 格式。xsltproc 是一个命令行工具,用于将 XSLT(可扩展样式表语言转换)样式表应用于 XML 文档。这使你能够将 XML 数据转换为更易于人类阅读的格式,如 HTML。

让我们来剖析一下这个命令:

xsltproc /usr/share/nmap/nmap.xsl scan.xml -o scan.html

  • xsltproc:这是运行 XSLT 处理器的命令。
  • /usr/share/nmap/nmap.xsl:这是 Nmap 提供的 XSLT 样式表的路径。此样式表定义了 XML 数据应如何转换为 HTML。
  • scan.xml:这是你在上一步中创建的输入 XML 文件。
  • -o scan.html:此选项指定转换后的 HTML 文档的输出文件名。-o 选项表示输出。

现在,让我们在 LabEx VM 中执行该命令。确保你在 ~/project 目录中。如果不在,请使用以下命令导航到该目录:

cd ~/project

接下来,运行 xsltproc 命令将 scan.xml 文件转换为 scan.html

xsltproc /usr/share/nmap/nmap.xsl scan.xml -o scan.html

此命令将读取 scan.xml 文件,应用 nmap.xsl 样式表,并在同一目录中生成一个名为 scan.html 的 HTML 文件。

命令完成后,你可以验证 ~/project 目录中是否已创建 scan.html 文件。你可以使用 ls 命令列出目录中的文件:

ls -l

你应该在文件列表中看到 scan.html

你还可以使用 cat 命令或像 nano 这样的文本编辑器查看 scan.html 文件的内容:

cat scan.html

nano scan.html

输出将是一个包含格式化后的 Nmap 扫描结果的 HTML 文档。

在 Xfce 浏览器中打开 HTML 文件

在本步骤中,你将使用 Xfce 网络浏览器打开上一步中创建的 scan.html 文件。这将使你能够以视觉上吸引人且易于浏览的格式查看 Nmap 扫描结果。

要在 Xfce 浏览器中打开 HTML 文件,你可以使用 xdg-open 命令。此命令是一种与桌面无关的方式,用于使用关联的应用程序打开文件。

首先,确保你在 ~/project 目录中。如果不在,请使用以下命令导航到该目录:

cd ~/project

接下来,运行以下命令在 Xfce 浏览器中打开 scan.html 文件:

xdg-open scan.html

此命令将在 Xfce 中启动默认的网络浏览器并显示 scan.html 文件的内容。你应该会看到一份格式化的 Nmap 扫描结果报告,包括有关目标 IP 地址、开放端口和其他详细信息。

现在你可以在浏览器中查看扫描结果。与原始 XML 输出相比,HTML 格式使信息更易于阅读和理解。

使用 nmap -oG scan.grep 127.0.0.1 保存可用于 grep 搜索的输出

在本步骤中,你将执行另一项 Nmap 扫描,但这次你要将输出保存为“可用于 grep 的”格式。这种格式经过专门设计,便于像 grep 这样的工具进行解析,从而能轻松地从扫描结果中提取特定信息。

Nmap 命令中的 -oG 选项指定输出应以可用于 grep 的格式保存。

让我们来剖析一下这个命令:

nmap -oG scan.grep 127.0.0.1

  • nmap:这是运行 Nmap 扫描器的命令。
  • -oG scan.grep:此选项告诉 Nmap 将输出以可用于 grep 的格式保存到名为 scan.grep 的文件中。
  • 127.0.0.1:这是扫描的目标 IP 地址。127.0.0.1 是回环地址,指的是本地机器。

现在,让我们在 LabEx VM 中执行该命令。确保你在 ~/project 目录中。如果不在,请使用以下命令导航到该目录:

cd ~/project

接下来,运行 Nmap 命令以保存可用于 grep 的输出:

nmap -oG scan.grep 127.0.0.1

此命令将扫描回环地址(127.0.0.1),并将结果以可用于 grep 的格式保存到 scan.grep 文件中。

命令完成后,你可以验证 ~/project 目录中是否已创建 scan.grep 文件。你可以使用 ls 命令列出目录中的文件:

ls -l

你应该在文件列表中看到 scan.grep

你还可以使用 cat 命令或像 nano 这样的文本编辑器查看 scan.grep 文件的内容:

cat scan.grep

nano scan.grep

输出将是一个文本文件,其中包含 Nmap 扫描结果,其格式便于使用 grep 进行解析。

使用 grep "Host" scan.grep > hosts.txt 提取 IP 地址

在本步骤中,你将使用 grep 命令从上一步创建的 scan.grep 文件中提取包含单词“Host”的行。这些行包含被扫描主机的 IP 地址。然后,你将把提取的行保存到一个名为 hosts.txt 的新文件中。

grep 命令是一个用于在文本文件中搜索特定模式的强大工具。在这种情况下,你使用它来查找包含单词“Host”的行。

> 符号用于输出重定向。它获取 grep 命令的输出并将其保存到指定的文件(hosts.txt)中。如果该文件已经存在,它将被覆盖。

让我们来剖析一下这个命令:

grep "Host" scan.grep > hosts.txt

  • grep:这是在文件中搜索模式的命令。
  • "Host":这是你要搜索的模式。在这种情况下,你要查找包含单词“Host”的行。
  • scan.grep:这是你要在其中搜索的文件。
  • >:这是输出重定向运算符。它获取 grep 命令的输出并将其保存到指定的文件中。
  • hosts.txt:这是你要将输出保存到的文件。

现在,让我们在 LabEx VM 中执行该命令。确保你在 ~/project 目录中。如果不在,请使用以下命令导航到该目录:

cd ~/project

接下来,运行 grep 命令以提取 IP 地址并将它们保存到 hosts.txt 文件中:

grep "Host" scan.grep > hosts.txt

此命令将在 scan.grep 文件中搜索包含“Host”的行,并将这些行保存到一个名为 hosts.txt 的新文件中。

命令完成后,你可以验证 ~/project 目录中是否已创建 hosts.txt 文件。你可以使用 ls 命令列出目录中的文件:

ls -l

你应该在文件列表中看到 hosts.txt

你还可以使用 cat 命令或像 nano 这样的文本编辑器查看 hosts.txt 文件的内容:

cat hosts.txt

nano hosts.txt

输出将是一个文本文件,其中包含 scan.grep 中包含单词“Host”的行。这些行将包含被扫描主机的 IP 地址。

在 Xfce 终端中查看提取的数据

在本步骤中,你将使用 Xfce 终端查看 hosts.txt 文件中提取的数据。这能让你看到在 Nmap 扫描期间识别出的 IP 地址。

你可以使用 cat 命令在终端中直接显示 hosts.txt 文件的内容。或者,你也可以使用像 nano 这样的文本编辑器打开该文件并查看数据。

首先,确保你在 ~/project 目录中。如果不在,请使用以下命令导航到该目录:

cd ~/project

要使用 cat 命令查看 hosts.txt 文件的内容,运行以下命令:

cat hosts.txt

这将在终端中显示 hosts.txt 文件的内容。你应该会看到以“Host:”开头,后面跟着 IP 地址和其他信息的行。

或者,要使用 nano 文本编辑器打开 hosts.txt 文件,运行以下命令:

nano hosts.txt

这将在 nano 编辑器中打开 hosts.txt 文件。然后你可以滚动浏览文件并查看提取的数据。要退出 nano,按 Ctrl + X,然后按 Y 保存(如果你做了任何更改),然后按 Enter

通过查看提取的数据,你可以确认 grep 命令已成功从 scan.grep 文件中提取了包含 IP 地址的行。

总结

在本实验中,你学习了如何使用 Nmap 以不同格式保存扫描结果。首先,你执行了一次 Nmap 扫描,并使用 -oX 选项将输出保存为 XML 格式,创建了一个名为 scan.xml 的文件。这便于其他工具进行解析和分析。

接下来,本实验指导你使用 xsltprocnmap.xsl 样式表将 XML 输出转换为 HTML,创建一个人类可读的 scan.html 文件。最后,你将学习如何以可用于 grep 的格式保存输出,并使用 grep 提取特定信息,如 IP 地址。