探索 Kali 的安全工具

Kali LinuxKali LinuxBeginner
立即练习

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

介绍

在这个实验(lab)中,你将学习如何在 Kali Linux 中导航和使用必要的安全工具,以进行渗透测试和网络安全任务。这个实践环节将指导你通过 dpkg -l 查看预装工具,使用 msfconsole 启动 Metasploit 框架,使用 nmap 执行网络扫描,使用 nikto 扫描 Web 服务器,通过 man 页面访问工具文档,以及将命令输出保存到文件。这个实验专为初学者设计,在 LabEx VM 上的受控容器环境中,提供 Kali Linux 的逐步介绍。当你打开终端时,你将自动连接到 Kali Linux 容器的 shell,准备开始练习。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kali(("Kali")) -.-> kali/KaliGroup(["Kali"]) kali/KaliGroup -.-> kali/term_ops("Kali Terminal") kali/KaliGroup -.-> kali/file_ctrl("File Management") kali/KaliGroup -.-> kali/pkg_ops("Package Management") kali/KaliGroup -.-> kali/nmap_ops("Nmap Tool") kali/KaliGroup -.-> kali/metasploit_ops("Metasploit Framework") kali/KaliGroup -.-> kali/vuln_scan("Vulnerability Scanning") kali/KaliGroup -.-> kali/nikto_ops("Nikto Scanner") subgraph Lab Skills kali/term_ops -.-> lab-552192{{"探索 Kali 的安全工具"}} kali/file_ctrl -.-> lab-552192{{"探索 Kali 的安全工具"}} kali/pkg_ops -.-> lab-552192{{"探索 Kali 的安全工具"}} kali/nmap_ops -.-> lab-552192{{"探索 Kali 的安全工具"}} kali/metasploit_ops -.-> lab-552192{{"探索 Kali 的安全工具"}} kali/vuln_scan -.-> lab-552192{{"探索 Kali 的安全工具"}} kali/nikto_ops -.-> lab-552192{{"探索 Kali 的安全工具"}} end

使用 dpkg -l 查看预装工具

在第一步中,你将学习如何使用 dpkg -l 命令查看 Kali Linux 系统上预装的工具和软件包。这是一项基本但至关重要的技能,可以帮助你了解哪些软件可用于渗透测试和系统管理。

当你打开 LabEx VM 环境中的终端时,你将自动连接到 Kali Linux 容器的 shell。无需手动启动容器或进入 shell;环境已经为你设置好了。

让我们首先运行命令来列出所有已安装的软件包。在终端中键入以下命令,然后按 Enter 键:

dpkg -l

此命令会显示所有已安装软件包的详细列表,包括它们的名称、版本、架构和简要描述。

预期输出(示例,实际输出可能有所不同):

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                           Version              Architecture Description
+++-==============================-====================-============-========================================================
ii  adduser                        3.118                all          add and remove users and groups
ii  apt                            2.2.4                amd64        commandline package manager
ii  base-files                     11.1+deb11u7         amd64        Debian base system miscellaneous files
...

此输出显示了每个软件包的状态(ii 表示已安装),以及其他详细信息。由于列表很长,它将在终端中滚动显示。你可以使用向上和向下箭头键或鼠标滚轮来浏览它。

为了使输出更易于管理,你可以对其进行过滤以搜索特定工具。例如,要查找与 apt 相关的软件包,请键入以下命令,然后按 Enter 键:

dpkg -l | grep apt

预期输出(示例,实际输出可能有所不同):

ii  apt                            2.2.4                              amd64        commandline package manager

这将过滤列表,仅显示名称或描述中包含 apt 的软件包。此技术可帮助你快速找到将在后续步骤中使用的工具。了解系统上可用的工具是在深入研究特定安全任务之前的基础步骤。

使用 msfconsole 安装和启动 Metasploit

既然你已经了解了 Kali Linux 上可用的工具,接下来让我们使用 msfconsole 命令启动最强大的渗透测试框架之一 Metasploit。这一步建立在你对系统工具的理解之上,并向你介绍一个用于安全测试的关键平台。

Metasploit 是一个用于开发、测试和执行针对目标系统的漏洞利用(exploit)的框架(framework)。msfconsole 是它的命令行界面(command-line interface),允许你与框架交互、配置设置并启动各种安全任务。

首先,通过更新软件包列表并安装必要的软件包,确保已安装 Metasploit。在 Kali Linux 容器的终端中键入以下命令,并在每个命令后按 Enter 键:

apt update
apt install -y metasploit-framework

这些命令刷新软件包列表,并在 Metasploit 尚未安装的情况下进行安装。等待安装完成;根据系统情况,这可能需要几分钟。

安装完成后,通过键入以下命令并按 Enter 键来启动 Metasploit 控制台(console):

msfconsole

首次运行此命令时,可能需要一些时间来初始化,因为它会设置数据库并加载模块。请在此过程中耐心等待。

预期输出(示例,实际输出可能有所不同):

Metasploit Framework
...
msf6 >

msf6 > 提示符表示你现在位于 Metasploit 控制台中,可以与框架进行交互。数字(例如,6)表示 Metasploit 的版本。

20250411-14-17-22-4MAzqnbV.png

目前,你无需在 Metasploit 中执行任何特定任务。通过在 msf6 > 提示符下键入以下命令并按 Enter 键来退出控制台:

exit

这将使你返回到标准终端提示符。启动和退出 msfconsole 使你熟悉访问此工具,这对于你将在未来学习中探索的许多渗透测试活动至关重要。

安装和运行基本的 Nmap 扫描

启动 Metasploit 后,现在让我们专注于使用 nmap 进行网络扫描,nmap 是一款用于网络发现和安全审计的多功能工具。这一步向你介绍如何识别系统上的开放端口和服务,这是渗透测试中的一项关键技能。

nmap,即网络映射器(Network Mapper)的缩写,用于通过发送数据包和分析响应来发现网络上的主机和服务。它通过显示目标系统上可访问的内容来帮助识别潜在的漏洞。

首先,确保你的 Kali Linux 容器上已安装 nmap。在终端中键入以下命令,然后按 Enter 键以更新软件包列表并安装 nmap

apt install -y nmap

等待安装完成;这应该只需要几秒钟。安装完成后,你就可以执行基本扫描了。由于未经许可扫描外部系统是不道德的,我们将扫描 localhost(你自己的容器)作为一个安全的目标。

让我们在容器上运行一个基本的 Web 服务器。

apt install -y apache2
service apache2 start

键入以下命令,然后按 Enter 键:

nmap localhost

此命令执行默认扫描,以检测本地系统上的开放端口和服务。

预期输出(示例,实际输出可能有所不同):

Starting Nmap 7.91 ( https://nmap.org ) at ...
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
80/tcp   open  http
...
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

在此输出中,Host is up 确认目标可达。该表列出了开放端口(如 80/tcp,对应 HTTP)、它们的状态(open 表示可访问)以及关联的服务。此信息对于了解系统上正在运行哪些服务至关重要。通过扫描 localhost,你已经安全地练习了使用 nmap,为你将来步骤中更高级的网络侦察任务做好了准备。

安装并使用 Nikto 扫描 Web 漏洞

在你使用 nmap 建立网络扫描技能的基础上,这一步向你介绍 nikto,一个用于扫描 Web 服务器以识别漏洞和错误配置的工具。这是 Web 安全测试的重要组成部分。

nikto 是一个开源工具,用于检查 Web 服务器是否存在已知问题,例如过时的软件、不安全的文件和其他潜在的安全缺陷。它被安全专业人员广泛使用,以评估 Web 应用程序的安全性。

首先,确保你的 Kali Linux 容器上已安装 nikto。在终端中键入以下命令,然后按 Enter 键进行安装:

apt install -y nikto

等待安装完成;这应该只需要几秒钟。安装完成后,你将扫描 localhost 作为一个安全的目标,以演示 nikto 的功能。如果 localhost 上没有运行 Web 服务器,该工具仍然会显示它尝试连接的方式,这对于学习很有价值。键入以下命令,然后按 Enter 键:

nikto -h localhost

-h 选项指定要扫描的主机,在本例中为 localhost,目标是默认的 Web 服务器端口(通常为 80)。

预期输出(示例,实际输出可能有所不同):

- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        80
---------------------------------------------------------------------------
+ End Time:           ...
---------------------------------------------------------------------------

此输出显示 nikto 尝试连接到 localhost 上的 Web 服务器。如果没有服务器正在运行,它会报告无法连接,如上所示。如果服务器处于活动状态,它将列出潜在的漏洞或错误配置。此步骤可帮助你了解如何使用 nikto 进行 Web 漏洞扫描,这是识别 Web 应用程序中安全弱点的关键技能。

使用 man 手册访问工具文档

现在你已经使用了像 nmapnikto 这样的工具,重要的是要知道如何访问它们的文档以进行进一步的学习。在这一步中,你将学习使用 man 手册来探索关于 Kali Linux 中命令和工具的详细信息。

man 手册,即 manual pages(手册页)的缩写,是大多数 Linux 工具和命令的综合指南。它们提供详细的描述、选项、示例和使用说明,这使得它们对于理解如何有效地使用工具非常宝贵。

如果 man 尚未安装,请安装它。

apt install -y man

让我们以访问 nmapman 手册为例。在终端中键入以下命令,然后按 Enter 键:

man nmap

这将在一个分页界面(很可能是 less)中打开 nmap 的手册页,你可以在其中阅读详细的文档。

预期输出(示例,实际输出可能有所不同):

NMAP(1)                          Nmap Reference Guide                         NMAP(1)

NAME
       nmap - Network exploration tool and security / port scanner

SYNOPSIS
       nmap [Scan Type...] [Options] {target specification}

DESCRIPTION
       Nmap ("Network Mapper") is an open source tool for network exploration and
       security auditing. It was designed to rapidly scan large networks, although
       it works fine against single hosts. Nmap uses raw IP packets in novel ways
       to determine what hosts are available on the network, what services (application name and version) those hosts are offering, what operating systems (and
       OS versions) they are running, what type of packet filters/firewalls are in
       use, and dozens of other characteristics.
...

使用向上和向下箭头键在文档中导航。你将看到关于用法、选项和示例的部分。要退出 man 手册,请按 q 返回到终端提示符。

学习使用 man 手册使你能够独立地探索任何工具的功能。这在 Kali Linux 中尤其有用,因为工具具有许多选项,你可能需要在安全任务期间参考这些选项。

将 Nmap 输出重定向到文件

在最后一步中,你将学习如何将命令的输出保存到文件中以供将来参考。这建立在你之前使用 nmap 的基础上,并介绍了输出重定向,这是一项用于记录结果的基本 Linux 技能。

Linux 中的输出重定向允许你将命令的结果保存到文件中,而不是在终端中显示它们。这是使用 > 符号完成的,该符号将输出写入指定的文件,如果该文件已存在,则覆盖它。

让我们对 localhost 执行另一次 nmap 扫描,并将结果保存到名为 nmap_scan.txt 的文件中。在终端中键入以下命令,然后按 Enter 键:

nmap localhost > /root/nmap_scan.txt

> 符号将 nmap localhost 命令的输出重定向到文件 /root/nmap_scan.txt。你不会在终端中看到扫描结果,因为它们正在被保存到文件中。

要确认输出已保存,请通过键入以下命令并按 Enter 键来查看文件的内容:

cat /root/nmap_scan.txt

预期输出(示例,实际输出可能有所不同):

Starting Nmap 7.91 ( https://nmap.org ) at ...
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
80/tcp   open  http
...
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

这确认扫描结果已成功保存到 /root/nmap_scan.txt。将输出保存到文件是在渗透测试期间记录发现结果的一种实用方法,允许你稍后查看或共享结果,而无需重新运行命令。

总结

在这个实验中,你已经学习了如何在 Kali Linux 中探索和使用基本的安全工具来进行渗透测试。你首先使用 dpkg -l 查看了预安装的工具,然后使用 msfconsole 安装并启动了 Metasploit,使用 nmap 执行了网络扫描,使用 nikto 扫描了 Web 漏洞,通过 man 手册访问了工具文档,并将命令输出保存到文件中。这些基础技能为在受控环境中进一步学习网络安全和网络分析提供了坚实的基础。