Hash Cracker2025年3月17日 | 阅读 7 分钟 引言哈希破解器可以被认为是一个复杂的程序,它通常在一个庞大的哈希数据库上工作。它可以猜测数百万甚至数十亿个可能的密码,并自动将结果与整个收集到的被盗哈希密码进行比较,以找到匹配项。 Hashcat 是一个流行且有效的密码恢复工具(或密码破解实用程序),专门用于破解密码或密钥表示。它非常有效,甚至可以破解最复杂(或最强)的密码,因此被犯罪分子和渗透测试人员广泛用于不同目的。简而言之,我们可以说 Hashcat 是世界上最快的 CPU 和 GPU 密码恢复工具之一,正如其文档中所述。 通常,密码表示与多种类型的哈希密钥相关,例如 NTMLv2、NTMLv1、SHA、MD5、RipeMD 等。这些可以很容易地被理解为一个数学函数,该函数很容易执行,但很难反向工程。 它是如何工作的?总的来说,hashcat 将可理解的数据转换为一种混乱的状态,通常是一个随机的固定长度字符串。然而,与标准加密协议允许的通过特定密钥解密加密数据不同,哈希不允许用户这样做。Hashcat 使用预先计算的彩虹表、字典,有时还使用暴力破解攻击,以发现一种有效的方法来破解密码。为了破解哈希密码,它通过结合通用性和速度的多种方式来实现破解特定加密密钥。 如今,密码不再以纯文本形式存储。取而代之的是,它们现在使用一种称为哈希的单向函数进行加密。破解像 "password1" 这样的简单密码并将其转换为哈希不是什么难事。它能够在短时间内破解常用密码。 尽管如此,密码破解与猜测网站登录凭据是完全不同的事情,网站登录会限制猜测次数,否则会锁定您的账户。相反,成功访问了带有加密密码(哈希)的系统的人,通常会尝试破解这些哈希或加密信息来恢复密码。 如果我们只有一个哈希密码怎么办? 暴力破解攻击在计算上可能可以反转哈希函数并恢复密码,但这个过程可能会持续永远(或直到用户死亡)。然而,还有一些其他有效的方法可以反转哈希并恢复原始密码。 Hashcat 的用途除了明显的犯罪和间谍用途外,破解密码还有许多合法的用途。系统管理员可能希望通过预emptive 方式检查用户密码的安全性。如果 hashcat 可以破解它们,那么攻击者也可以。 在参与渗透测试时,测试人员经常会破解被盗的密码哈希,以便在网络内部横向移动或将特权提升到管理员用户。 如何破解哈希?破解哈希的第一步是尝试猜测密码。每次尝试都会被哈希并与实际哈希值进行比较,以查看两者是否相同,但这会是一个耗时的过程,需要很长时间。然而,还有许多其他方法可以加速这个过程。字典攻击、暴力破解攻击等是最标准的预测密码的方法。这些方法通常使用一个文件,该文件包含许多常用密码、单词、短语以及其他可用作有效密码的字符串。 ![]() 注意:要记住的一件重要事情是,无论如何,都无法保证可以避免暴力破解和字典攻击。让我们看看一些用于破解密码的其他方法
通常,哈希是从字典中预先计算的,然后与相应的密码一起存储在查找表结构中。
这种类型的攻击允许许多网络攻击者同时对多个哈希实现字典或暴力破解攻击,而无需预先计算的查找表。
彩虹表是一种时间-内存技术。它们与查找表有些相似,不同之处在于它们为了创建更小的查找表而牺牲了哈希破解速度。
这是一种技术,通过附加一个称为“盐”的随机字符串来随机化哈希。它通常在哈希之前应用于密码。 如何使用 Hashcat 破解哈希?通常,Hashcat 预装在大多数 Linux 发行版中,尤其是在 Kali Linux 中。如果您的系统未安装,您可以从提供的链接下载:https://hashcat.net/hashcat/ 现在,让我们看看如何使用 Hashcat 破解哈希。为了继续这个演示,我们将使用 mbd5 算法创建一些哈希,并将它们存储在一个 .txt 文件中。 创建 MBD5 哈希字典我们将使用以下命令创建包含多个密码的多个哈希条目 语法 echo -n "Password" | md5sum | tr -d' ' -f1 >> hashes.txt echo -n "HELLO" | md5sum | tr -d' ' -f1 >> hashes.txt echo -n "MYSECRET" | md5sum | tr -d' ' -f1 >> hashes.txt echo -n "Test1234" | md5sum | tr -d' ' -f1 >> hashes.txt echo -n "P455w0rd" | md5sum | tr -d' ' -f1 >> hashes.txt echo -n "welcome" | md5sum | tr -d' ' -f1 >> hashes.txt echo -n "abc1234" | md5sum | tr -d' ' -f1 >> hashes.txt 这些将随后存储在指定的 "hashes.txt" 文件中。每个命令都应单独在终端中执行,如下所示 ![]() 命令解释 在上面的命令中,echo 用于写入或打印,-n 选项会删除 "Password" 末尾添加的换行符。这一点很重要,因为我们不希望换行符与我们的密码一起被哈希。<cut -d' '-f1> 部分会从输出中删除任何空格或连字符字符。 检查密码哈希 在这里,我们将检查密码哈希是否成功哈希。要检查密码哈希,我们只需要在终端中输入以下命令。 命令 cat hashes.txt 一旦执行了上述命令,我们可能会得到一个与下面给出的类似的输出 ![]() 命令解释 cat 命令用于查看指定文件的内容。 在 Kali Linux 中启动 Hashcat现在,让我们启动 hash cat 工具。要启动或访问 Hashcat 工具,您可以按照以下提供的说明进行操作 1. 按下键盘上的 Ctrl+Alt+T 打开终端。 ![]() 2. 终端打开后,键入以下命令并按 Enter 键 命令 hashcat -h 输出 ![]() -m(或哈希类型)和-a(或攻击模式)等选项是 hashcat 最重要的选项。通常,在使用 Hashcat 的几乎所有密码破解尝试中,我们都需要这两个选项。Hashcat 具有专门设计的规则,可用于单词列表文件,并且字符列表可以自定义以破解密码。 此外,Hashcat 还提供了大量可供破解的密码哈希选项,如下面的屏幕截图所示 ![]() 指定单词列表Kali Linux 附带了大量的单词列表,这些列表是默认提供的(或内置的)。要定位或访问这些单词列表,您可以使用以下命令来帮助您找出系统中所有内置的单词列表。 命令 locate wordlists 输出 ![]() 注意:在此演示中,我们将专门使用我们从 "https://weakpass.com/" 下载的 "online broute" 单词列表。我们也可以使用 Linux 中预装的任何内置单词列表,例如 "rockyou"。 现在,为了不浪费您宝贵的时间,让我们继续本教程中最激动人心的下一步,即破解哈希 破解哈希要开始破解哈希,请在终端中键入以下命令并按 Enter 键,如下所示 语法 $ hashcat -m 0 -a 0 -o cracked.txt hashes.txt online_broute --force --show 输出 ![]() 上面命令的解释
结果 最后,我们已经破解了最初提出的几乎所有目标哈希。您可以通过打开输出文件 "cracked.txt" 随时查看它们。 ![]() 这些类型的密码很容易破解,破解它们不需要太多精力或时间,因为它们是弱密码。选择一个复杂的密码很重要,因为密码越简单,就越容易被破解。因此,请确保您始终选择一个长而复杂的密码,并尽量避免使用个人信息。定期更改密码也很重要,并且切勿重复使用旧密码。 此外,还有一些 GUI 工具使 hashcat 更易于使用。 Hashview 就是其中一个项目。 下一主题Nodemon |
我们请求您订阅我们的新闻通讯以获取最新更新。