简介
在本实验中,目标是学习如何在 Nmap 中管理输出格式。你将首先对 IP 地址 192.168.1.1
执行基本扫描,以收集有关开放端口和服务的信息。然后,你将以不同格式保存扫描结果,包括普通文本、XML 和可用于 grep 的输出,还将学习如何将输出追加到现有文件中。最后,你将在 Xfce 文本编辑器中打开结果。
在本实验中,目标是学习如何在 Nmap 中管理输出格式。你将首先对 IP 地址 192.168.1.1
执行基本扫描,以收集有关开放端口和服务的信息。然后,你将以不同格式保存扫描结果,包括普通文本、XML 和可用于 grep 的输出,还将学习如何将输出追加到现有文件中。最后,你将在 Xfce 文本编辑器中打开结果。
在这一步中,我们将使用 Nmap 对 IP 地址 192.168.1.1
进行基本扫描。Nmap 是一个强大的网络扫描工具,用于通过发送数据包并分析响应来发现计算机网络上的主机和服务。基本扫描会提供有关目标的信息,例如开放端口和操作系统详细信息。
首先,让我们了解一下 nmap
命令的基本语法:
nmap [目标]
其中 [目标]
是你要扫描的 IP 地址或主机名。
现在,让我们对 192.168.1.1
进行基本扫描。打开你的终端并执行以下命令:
nmap 192.168.1.1
此命令将启动对目标 IP 地址的扫描。Nmap 将尝试确定哪些端口是开放的、正在运行哪些服务以及目标的操作系统可能是什么。
输出将类似于以下内容(确切输出将根据目标系统而有所不同):
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
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 2.18 seconds
此输出表明主机 192.168.1.1
处于活动状态,并且端口 22(SSH)是开放的。“Not shown: 999 closed ports”这一行表示 Nmap 为了使输出简洁而未显示 999 个关闭的端口。
在这一步中,我们将使用 -oN
选项把 Nmap 扫描的输出保存到一个普通文本文件中。这对于存储扫描结果以便后续分析或报告很有用。
-oN
选项告诉 Nmap 将输出以人类可读的格式保存到指定文件。语法如下:
nmap -oN <文件名> <目标>
其中 <文件名>
是你想要保存输出的文件名,<目标>
是你想要扫描的 IP 地址或主机名。
在这种情况下,我们将扫描 127.0.0.1
(localhost)并将输出保存到你 ~/project
目录下一个名为 scan.txt
的文件中。
打开你的终端并执行以下命令:
nmap -oN scan.txt 127.0.0.1
扫描完成后,你可以使用文本编辑器或 cat
命令查看 scan.txt
文件的内容。例如:
cat scan.txt
输出将类似于以下内容(确切输出会有所不同):
## Nmap 7.80 scan initiated Tue Oct 27 10:00:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
## Nmap done at Tue Oct 27 10:00:02 2023 -- 1 IP address (1 host up) scanned in 2.00 seconds
此输出与你在终端上看到的信息相同,但现在它被保存在 scan.txt
文件中以供将来参考。
在这一步中,我们将生成一个包含 Nmap 扫描结果的 XML 文件。XML 格式对于以编程方式解析扫描结果很有用,这使得将 Nmap 与其他工具或脚本集成变得更加容易。
-oX
选项告诉 Nmap 将输出以 XML 格式保存到指定文件。语法如下:
nmap -oX <文件名> <目标>
其中 <文件名>
是你要创建的 XML 文件的名称,<目标>
是你要扫描的 IP 地址或主机名。
在这种情况下,我们将扫描 192.168.1.1
并将输出保存到你 ~/project
目录下一个名为 scan.xml
的文件中。
打开你的终端并执行以下命令:
nmap -oX scan.xml 192.168.1.1
扫描完成后,你可以使用文本编辑器或 cat
命令查看 scan.xml
文件的内容。然而,由于它是一个 XML 文件,它将包含大量标记,在纯文本编辑器中可能不太容易阅读。
cat scan.xml
输出将是一个大型 XML 文档,包含有关扫描的详细信息,包括主机详细信息、开放端口、服务版本等等。你可以使用像 xmllint
这样的工具来格式化和验证 XML 文件,或者使用像 Python 这样的编程语言以及 xml.etree.ElementTree
这样的库来解析数据。
此 XML 输出是为自动化处理而设计的,并非供人阅读。
在这一步中,我们将从 Nmap 扫描生成一个可通过 grep 搜索的输出文件。这种格式专门设计用于便于被 grep
、awk
和 sed
等命令行工具解析,这使得它在脚本编写和自动化分析中很方便。
-oG
选项告诉 Nmap 将输出以可通过 grep 搜索的格式保存到指定文件。语法如下:
nmap -oG <文件名> <目标>
其中 <文件名>
是你要将可通过 grep 搜索的输出保存到的文件名,<目标>
是你要扫描的 IP 地址或主机名。
在这种情况下,我们将扫描 127.0.0.1
(localhost)并将输出保存到你 ~/project
目录下一个名为 scan.grep
的文件中。
打开你的终端并执行以下命令:
nmap -oG scan.grep 127.0.0.1
扫描完成后,你可以使用文本编辑器或 cat
命令查看 scan.grep
文件的内容。
cat scan.grep
输出将采用一种易于用 grep
解析的格式。例如:
## Nmap 7.80 scan initiated Tue Oct 27 10:00:00 2023
## Nmap scan report for localhost (127.0.0.1)
Host: 127.0.0.1 (localhost) Status: Up
Host: 127.0.0.1 (localhost) Ports: 22/open/tcp//ssh///, 80/open/tcp//http///
## Nmap done at Tue Oct 27 10:00:02 2023 -- 1 IP address (1 host up) scanned in 2.00 seconds
现在,你可以使用 grep
在文件中搜索特定信息。例如,要查找所有开放端口,你可以使用以下命令:
grep "Ports:" scan.grep
这将输出包含开放端口的行:
Host: 127.0.0.1 (localhost) Ports: 22/open/tcp//ssh///, 80/open/tcp//http///
可通过 grep 搜索的输出格式提供了一种简单而高效的方法,用于从 Nmap 扫描结果中提取特定数据以进行进一步处理。
在这一步中,我们将把 Nmap 扫描的输出追加到一个现有文件中。当你想要将多次扫描的结果合并到一个文件中,而不覆盖之前的结果时,这会很有用。
我们将使用 -oN
选项以正常格式保存输出,并使用 --append-output
选项将输出追加到指定文件。
首先,回顾一下,在之前的步骤中,我们创建了一个名为 scan.txt
的文件,其中包含对 127.0.0.1
的扫描结果。现在,我们将把对 192.168.1.1
的扫描结果追加到同一个文件中。
打开你的终端并执行以下命令:
nmap -oN scan.txt --append-output 192.168.1.1
扫描完成后,输出将被追加到 scan.txt
文件中。你可以使用文本编辑器或 cat
命令查看 scan.txt
文件的内容。
cat scan.txt
你应该会在文件中看到两次扫描的结果。第一部分将是对 127.0.0.1
的扫描,第二部分将是对 192.168.1.1
的扫描。
--append-output
选项确保新的扫描结果被添加到文件末尾,保留之前的内容。这与不使用 --append-output
而使用 -oN scan.txt 192.168.1.1
不同,后者会覆盖现有的 scan.txt
文件。
在这一步中,我们将在 Xfce 文本编辑器中打开 Nmap 扫描结果。这使你能够在图形环境中查看和分析扫描输出。
Xfce 文本编辑器名为 mousepad
。我们可以使用它来打开我们在前面步骤中创建的文件,例如 scan.txt
、scan.xml
和 scan.grep
。
要从终端在 mousepad
中打开文件,请使用以下命令:
mousepad <文件名>
其中 <文件名>
是你要打开的文件的名称。
首先,让我们打开 scan.txt
文件。在你的终端中,执行以下命令:
mousepad scan.txt
这将在 mousepad
文本编辑器中打开 scan.txt
文件。现在你可以滚动浏览该文件并检查 Nmap 扫描结果。
接下来,让我们打开 scan.xml
文件。在你的终端中,执行以下命令:
mousepad scan.xml
这将在 mousepad
中打开 scan.xml
文件。此文件包含 XML 格式的扫描结果,这对于使用脚本和其他工具进行解析很有用。
最后,让我们打开 scan.grep
文件。在你的终端中,执行以下命令:
mousepad scan.grep
这将在 mousepad
中打开 scan.grep
文件。此文件包含可通过 grep 搜索的格式的扫描结果,这对于使用 grep
等命令行工具搜索和过滤结果很有用。
使用像 mousepad
这样的文本编辑器提供了一种在图形环境中查看和分析 Nmap 扫描结果的便捷方式。
在本实验中,参与者学习了如何管理 Nmap 中的输出格式。他们首先对 IP 地址 192.168.1.1
进行了基本扫描,以收集有关开放端口和服务的信息。然后,他们将扫描结果保存为不同的格式:使用 -oN
保存为普通文本,使用 -oX
保存为 XML,使用 -oG
保存为可通过 grep 搜索的输出。他们还学习了使用 --append-output
选项将输出追加到现有文件中。最后,他们在 Xfce 文本编辑器中打开结果进行查看。