如何使用 Hashcat 工具破解密码?

已发表: 2021-12-14

在道德黑客和渗透测试中,密码破解对于访问系统或服务器至关重要。

在系统和数据库中,密码很少以纯文本形式保存。

密码在存储到数据库之前总是经过哈希处理,并且在验证过程中会比较哈希值。

根据所采用的加密方式,不同的系统以不同的方式存储密码哈希。 如果你有哈希,你可以轻松破解任何密码。

在本文中,我们将探讨如何使用方便且出色的 Hashcat 命令行工具来破解密码哈希。

所以让我们开始吧。

但在那之前……

什么是哈希函数?

散列是使用称为散列函数的某种数学函数将普通输入文本转换为固定大小的文本字符串的过程。 任何文本,无论长度如何,都可以使用算法转换为整数和字母的随机组合。

散列

  • 输入是指将被散列的消息。
  • 散列函数是类似于 MD5 和 SHA-256 的加密算法,将字符串转换为散列值。
  • 最后,哈希值就是结果。

什么是哈希猫?

Hashcat 是最快的密码恢复工具。 它旨在在短时间内破解高度复杂的密码。 而且这个工具还能够进行单词列表蛮力攻击

Hashcat 有两种变体。 基于 CPU 和 GPU(图形处理单元)。 基于 GPU 的工具可以在比 CPU 更短的时间内破解哈希。 您可以在其官方网站上查看 GPU 驱动程序要求。

特征

  • 免费和开源
  • 可以实现超过 200 种散列类型变体。
  • 支持 Linux、Windows 和 macOS 等多操作系统。
  • 可以使用 CPU 和 GPU 支持等多平台。
  • 可以同时破解多个哈希。
  • 支持Hex-salthex-charset 文件以及自动性能调整。
  • 可以使用内置的基准测试系统。
  • 可以使用覆盖来支持分布式破解网络。

您还可以从他们的网站上看到其他功能。

Hashcat的安装

首先,确保您的 Linux 系统使用最新的程序和工具是最新的。

为此,打开一个终端并输入:

 $ sudo apt update && sudo apt upgrade

Hashcat 通常预装在 Kali Linux 中。 您可以在密码破解部分下找到该工具。 但是,如果您需要在任何 Linux 发行版中手动安装它,请在终端中键入以下命令。

 $ sudo apt-get install hashcat

工具使用

要开始使用 Hashcat,我们需要一些密码哈希。 如果您没有要破解的哈希,我们将首先创建一些哈希。

要使用命令行创建哈希,只需遵循以下格式。

 echo -n "input" | algorithm | tr -d "-">>outputfiename

例如,您可以看到我使用下面的 md5 算法将一些单词转换为哈希值。

 ┌──(rootkali)-[/home/writer/Desktop] └─# echo -n "geekflare" | md5sum | tr -d "-">>crackhash.txt echo -n "password123" | md5sum | tr -d "-">>crackhash.txt echo -n "Webtechnology" | md5sum | tr -d "-">>crackhash.txt echo -n "microsoftteams" | md5sum | tr -d "-">>crackhash.txt echo -n "recyclebin" | md5sum | tr -d "-">>crackhash.txt

并且输出将保存在crackhash.txt 文件中。

现在我们将检查保存在给定文件中的哈希值。

 ┌──(rootkali)-[/home/writer/Desktop] └─# cat crackhash.txt 066d45208667198296e0688629e28b14 482c811da5d5b4bcd497ffeaa98491e3 72a2bc267579aae943326d17e14a8048 2192d208d304b75bcd00b29bc8de5024 caae8dd682acb088ed63e2d492fe1e13

你可以看到,现在我们有一些哈希要破解。 这是使用您选择的算法创建散列的过程。

下一步是在你的 Linux 机器上启动一个 Hashcat 工具。 只需使用以下命令即可使用 Hashcat。

 $ hashcat --help

它将显示运行该工具所需的所有选项。 在终端上,您可以找到所有的攻击和哈希模式。

命令的一般形式是

$ hashcat -a num -m num hashfile wordlistfile

这里的“num”表示要使用的特定攻击和哈希模式。 如果滚动终端,您可以找到每种攻击和哈希模式的确切数字,例如 md4 - 数字是 0,而 sha256 算法 - 数字是 1740。

我要使用的词表是rockyou wordlist。 您可以在路径 /usr/share/wordlists 中轻松找到该词表。

您甚至可以使用 locate 命令来查找该词表路径。

 ┌──(rootkali)-[/home/writer] └─# locate rockyou.txt

最后,要使用 wordlist 文件破解哈希,请使用以下命令。

 $ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt

运行此命令后,您可能会遇到运行时错误(令牌长度异常错误),可以轻松解决。

哈希猫3

要解决此问题,请将每个哈希分别保存在不同的文件中。 如果您的 CPU 或 GPU 速度较低,则会出现此错误。 如果您的计算机具有高速处理器,您可以轻松地同时破解所有哈希作为单个文件本身。

所以在修复错误和一切之后,结果将是这样的。

 ┌──(rootkali)-[/home/writer/Desktop] └─# hashcat -a 0 -m 0 hashcrack.txt rockyou.txt hashcat (v6.1.1) starting... OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project] ============================================================================================================================= * Device #1: pthread-Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz, 2403/2467 MB (1024 MB allocatable), 4MCU Minimum password length supported by kernel: 0 Maximum password length supported by kernel: 256 Hashes: 1 digests; 1 unique digests, 1 unique salts Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates Rules: 1 Dictionary cache built: * Filename..: rockyou.txt * Passwords.: 14344405 * Bytes.....: 139921671 * Keyspace..: 14344398 * Runtime...: 1 sec 8276b0e763d7c9044d255e025fe0c212: [email protected] Session..........: hashcat Status...........: Cracked Hash.Name........: MD5 Hash.Target......: 8276b0e763d7c9044d255e025fe0c212 Time.Started.....: Sun Dec 12 08:06:15 2021 (0 secs) Time.Estimated...: Sun Dec 12 08:06:15 2021 (0 secs) Guess.Base.......: File (rockyou.txt) Guess.Queue......: 1/1 (100.00%) Speed.#1.........: 1059.6 kH/s (0.52ms) @ Accel:1024 Loops:1 Thr:1 Vec:8 Recovered........: 1/1 (100.00%) Digests Progress.........: 4096/14344398 (0.03%) Rejected.........: 0/4096 (0.00%) Restore.Point....: 0/14344398 (0.00%) Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1 Candidates.#1....: 123456 -> pampam Started: Sun Dec 12 08:06:13 2021 Stopped: Sun Dec 12 08:06:16 2021

在上面的结果中,在字典缓存详细信息之后,您可以注意到,哈希被破解,密码被泄露。

结论

我希望您对使用 Hashcat 破解密码有了更好的了解。

您可能也有兴趣了解用于渗透测试的各种蛮力工具和一些最好的渗透测试工具。