Hashcat 安装与系统基准测试

LinuxBeginner
立即练习

介绍

Hashcat 被广泛认为是速度最快、最先进的密码恢复工具之一。它支持多种哈希算法,并且可以利用 CPU 和 GPU 来加速破解密码的过程。

在这个 Lab 中,你将了解在 Linux 系统上开始使用 Hashcat 的基本步骤。你将学习如何使用标准的包管理器安装它,验证安装是否成功,以及最重要的是,运行基准测试(benchmark)以了解你系统的性能能力。对于任何对渗透测试、系统安全审计或性能分析感兴趣的人来说,这是至关重要的一步。

完成这个 Lab 后,你将熟悉 Hashcat 的初始设置和评估。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 91%。获得了学习者 100% 的好评率。

使用 apt 包管理器安装 Hashcat

在这一步中,你将在你的 Ubuntu 系统上安装 Hashcat。我们将使用 apt 包管理器,它是管理基于 Debian 的 Linux 发行版(如 Ubuntu)上软件的标准工具。

首先,更新系统的包列表是一个好习惯,以确保你获得最新版本的软件。在你的终端中运行以下命令:

sudo apt update

你将看到包列表正在从仓库下载。

接下来,你可以安装 Hashcat。-y 标志用于在安装过程中自动对任何提示回答“是”,使其成为非交互式的。

sudo apt install hashcat -y

系统现在将下载并安装 Hashcat 及其依赖项。你将看到详细说明安装进度的输出。一个示例输出可能如下所示(确切的包和版本可能会有所不同):

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  hashcat-data ocl-icd-libopencl1
The following NEW packages will be installed:
  hashcat hashcat-data ocl-icd-libopencl1
0 upgraded, 3 newly installed, 0 to remove and XX not upgraded.
Need to get X,XXX kB of archives.
After this operation, XX.X MB of additional disk space will be used.
...
Setting up hashcat-data (X.X.X+ds1-1) ...
Setting up ocl-icd-libopencl1:amd64 (X.X.X-1) ...
Setting up hashcat (X.X.X+ds1-1) ...
Processing triggers for man-db (X.X.X-1) ...
Processing triggers for libc-bin (X.X.X-0ubuntu1) ...

一旦命令提示符返回,Hashcat 就已安装在你的系统上。

使用 'hashcat --version' 验证 Hashcat 安装

在这一步中,你将验证 Hashcat 是否已正确安装并可以从你的终端访问。检查命令行工具是否已安装并正常工作的常见方法是查询其版本号。

执行以下命令以显示已安装的 Hashcat 版本:

hashcat --version

如果安装成功,该命令将打印 Hashcat 二进制文件的版本号。输出应类似于以下内容:

vX.X.X

看到版本号即确认操作系统可以找到并执行 hashcat 程序。

使用 'hashcat -I' 列出可用的计算设备

在这一步中,你将识别 Hashcat 可以用于其操作的计算设备。Hashcat 被设计用来利用现代硬件的并行处理能力,包括中央处理器(CPU)和图形处理器(GPU)。

要查看系统上所有兼容的 OpenCL 设备列表,你可以使用 -I(大写 i)标志。

运行以下命令:

hashcat -I

该命令将扫描你的系统并列出所有可用的设备及其详细信息。在这个虚拟环境中,你很可能只会看到 CPU 被列出。如果你在装有独立显卡(dedicated graphics card)的机器上运行此命令,你也会看到它被列出。

输出将类似于以下内容:

hashcat (vX.X.X) starting...

OpenCL Info:
============

Platform ID #1
  Vendor  : ...
  Name    : ...
  Version : OpenCL X.X ...

  Device ID #1
    Type           : CPU
    Vendor ID      : XXX
    Vendor         : ...
    Name           : Intel(R) Xeon(R) ...
    Version        : OpenCL X.X ...
    Processor(s)   : X
    Clock          : XXXX MHz
    ...

此信息对于了解 Hashcat 将使用哪些设备,以及在有多个设备可用时为任务选择特定设备很有用。

使用 'hashcat -b -m 0' 运行 MD5 的系统基准测试

在这一步中,你将运行一个基准测试来衡量你的系统在特定哈希类型上的性能。这是了解系统破解密码速度的关键步骤。

我们将使用 Hashcat 内置的基准测试模式。该命令使用了两个重要的标志(flag):

  • -b--benchmark: 这告诉 Hashcat 运行其基准测试模式,而不是实际的破解会话。
  • -m 0: 这指定了要进行基准测试的哈希类型。数字 0 对应于 MD5 算法。MD5 是一种非常常见且相对快速的哈希算法。

现在,在你的终端中运行基准测试命令:

hashcat -b -m 0

Hashcat 将开始基准测试过程。它将测试所有检测到的设备上指定的算法(MD5)并报告速度。该过程可能需要一分钟才能完成。输出将是详细的,但最重要部分是末尾的速度摘要。

hashcat (vX.X.X) starting in benchmark mode...

... (initialization messages) ...

Benchmark relevant options:
===========================
* Hash-Type: 0 (MD5)

... (device information) ...

[s]tatus [p]ause [r]esume [b]ypass [q]uit =>

... (status updates) ...

Benchmark.Final:
================
* Hash-Type: 0 (MD5)

Speed.Dev.#1.:   XXX.X MH/s (XX.XXms)

...

等待基准测试完成后再进行下一步。

Speed.Dev.#1. 这一行显示了你的主设备(在本例中是 CPU)的性能。

解读基准测试速度结果

在最后一步中,我们将分析你刚刚运行的基准测试的输出。这是一个概念性步骤,无需执行新的命令。

回顾上一步中 hashcat -b -m 0 命令的输出。关键信息是那行以 Speed 开头的行。

Speed.Dev.#1.:   XXX.X MH/s (XX.XXms)

我们来分解一下:

  • Speed.Dev.#1.: 这指的是设备 #1 的速度,你在步骤 3 中已经确定了它(很可能是你的 CPU)。
  • XXX.X MH/s: 这是最重要的指标。它代表“每秒百万次哈希”(Mega Hashes per second)。100.0 MH/s 的值意味着你的系统每秒可以计算和检查 1 亿个 MD5 哈希。这个数字越高,你的系统执行暴力破解或字典攻击的速度就越快。
  • (XX.XXms): 这个值表示一批操作的延迟或耗时,这对于性能调优更有意义。对于基本的基准测试,H/s 值是衡量性能的主要指标。

你看到的速度是针对 MD5 算法(-m 0)的。如果你对更复杂的算法(如 bcrypt,-m 3200)进行基准测试,速度会显著降低(以 H/s 或 kH/s 而非 MH/s 为单位),因为 bcrypt 在设计上就是为了计算缓慢。

了解你系统的基准测试速度对于估算密码破解任务所需的时间至关重要。

总结

恭喜你!你已成功完成了关于 Hashcat 安装和基准测试的这个实验(Lab)。

在这个实验中,你掌握了以下技能:

  • 使用 apt 包管理器在 Linux 系统上安装 Hashcat 工具。
  • 通过检查软件版本来验证安装。
  • 识别 Hashcat 可以利用的可用 CPU 和 GPU 计算设备。
  • 针对特定哈希算法(MD5)运行系统性能基准测试。
  • 解读基准测试结果,以了解你系统的哈希破解能力。

这些基础技能对于任何希望使用 Hashcat 进行安全审计、密码恢复或系统性能评估的人来说都至关重要。你现在已准备好探索 Hashcat 更高级的功能。