Password Cracker如何破解/猜出密码

⚡ 智能摘要

密码破解是指通过系统地猜测、比较或计算密码与存储的哈希值,来恢复密码凭证的行为。本文概述了攻击者的运作方式、他们使用的工具、抵御攻击的安全因素以及管理员必须实施的控制措施。

  • 🧭 Foundation基本原则: 密码强度取决于密码长度、字符复杂性和不可预测性,以抵抗暴力破解和字典恢复。
  • 🔐 哈希与加密: 存储的凭证采用 MD5、SHA-256 或 bcrypt 等单向哈希函数进行保护,而不是采用可逆加密。
  • 🎯 常见攻击技巧: 字典攻击、暴力破解、彩虹表攻击、混合攻击、网络爬虫攻击和凭证填充攻击都利用了可预测的人类行为。
  • 🛠️ 破解工具集: John the Ripper, Hashcat, Cain & Abel, OphcrackHydra 可自动针对捕获的哈希值进行离线和在线恢复。
  • 🤖 人工智能驱动的攻击: 生成模型能够根据泄露的转储文件预测出逼真的密码短语,从而显著提高字典对弱凭据的识别效率。
  • 🛡️ 防御控制: 加盐哈希、多因素身份验证、锁定策略和密码管理器可以抵消生产环境中的大多数破解尝试。

如何破解密码?

密码破解是攻击性安全领域最古老的技术之一,但它仍然至关重要,因为用户仍然倾向于选择可预测的密码。在本教程中,我们将介绍攻击者常用的密码恢复技术、自动化破解工具以及管理员可以部署的防御措施,以保护系统免受此类攻击。

什么是密码破解?

密码破解是指试图通过恢复保护身份验证机制的密钥来获取对受限系统的未经授权访问权限的过程。破解过程可能包括将存储的密码哈希值与预先计算的单词列表进行比较,或者运行生成候选密码的算法,直到找到匹配项。一旦找到匹配项,攻击者就可以冒充合法用户进行身份验证,而无需进行任何在线猜测。

什么是密码强度?

密码强度是衡量密码抵御破解攻击能力的指标。任何密码的强度都由以下三个属性决定:

  • 长度: 密码包含的字符总数。
  • 复杂: 它是否使用大写字母、小写字母、数字和符号的组合。
  • 不可预测性: 攻击者如果认识用户,是否能够轻易猜到密码。

让我们来比较三个密码: 密码, password1#密码1$在这个例子中,我们将使用cPanel的密码强度指标。下图显示了每个候选密码的强度。

cPanel密码强度指示器显示密码值强度评级非常低

注意:使用的密码是 密码强度为 1,非常弱。

cPanel密码强度指示器显示密码值password1的强度评级为弱。

注意:使用的密码是 password1强度为 28,仍然很弱。

cPanel 密码强度指标显示 hashpassword1dollar 值评级为强

注意:使用的密码是 #密码1$密码强度为 60,属于强密码。强度值越高,密码越安全。

现在假设我们需要使用 MD5 哈希算法存储相同的密码。我们将使用在线 MD5 哈希生成器将每个密码转换为其哈希值。下表显示了生成的哈希值。

密码 MD5 哈希 cPanel 强度指标
密码 5f4dcc3b5aa765d61d8327deb882cf99 1
password1 7c6a180b36896a0a8c02787eeafb0e4c 28
#密码1$ 29e08fb7103c327d68327f23d8d9256c 60

现在我们将使用一个公开的 MD5 反向查找网站来破解上述哈希值。下图显示了每个哈希值的密码破解结果。

对值 password 进行哈希运算得到的 MD5 反向查找结果

对值 password1 进行哈希值的 MD5 反向查找结果

MD5 反向查找结果显示无法破解强哈希密码 hashpassword1dollar

如上所示,我们成功破解了强度较低的前两个密码。但我们未能破解第三个密码,该密码更长、更复杂、更难以预测,且强度更高。

密码破解技术

攻击者使用多种已被证实有效的技术来恢复密码。下面我们将介绍最常用的几种类型。

  • 字典攻击: 该方法使用一个可能的候选单词列表,并将每个单词与捕获的用户密码或密码哈希值进行比较。
  • 蛮力攻击: 暴力破解攻击结合字母数字字符和符号,使用算法系统地生成所有可能的密码,直到找到匹配项为止。例如,密码如下: 密码 也可以尝试作为 p@$$word 使用混合暴力破解规则。
  • 彩虹桌攻击: 这种方法依赖于预先计算的哈希值。假设数据库以 MD5 哈希值的形式存储密码。攻击者创建另一个表,用于存储常用密码的 MD5 哈希值,并将捕获到的哈希值与预先计算好的哈希值表进行比较。如果找到匹配项,则可以恢复密码。
  • 猜测: 顾名思义,这种方法涉及猜测。例如,密码可能是: QWERTY, 密码管理员 这些设置通常被使用或设置为默认值。如果它们没有被更改,很容易受到攻击。
  • 蜘蛛: 大多数组织使用的密码都包含公司信息。这些信息可以从公司网站和社交媒体(例如 Facebook 和 Twitter)上获取。网络爬虫会从这些来源收集数据,构建针对性的字典,然后利用这些字典进行字典攻击和暴力破解攻击。
  • 凭证填充: 攻击者利用从一次数据泄露中泄露的用户名和密码对,对不相关的服务进行重放攻击,从而利用用户重复使用凭据的漏洞。

一个虚构公司的爬虫词表可能组合如下:1976(创始人出生年份);史密斯,琼斯(姓氏);艾克米(公司名称);建造,到,最后(愿景关键词);高尔夫,国际象棋,足球(爱好)。

下表从速度、前提条件和可检测性等方面对各种技术进行了比较。

技术 速度 需要哈希值吗? 可在线检测?
字典 快速 可选
蛮力 放慢 可选
彩虹桌 速度非常快 否(离线)
揣测 请按需咨询 没有
爬网 放慢 没有
凭证填料 快速 没有

Password Cracker 工具

密码破解工具是能够自动执行上述技术的软件程序。我们在之前的强度示例中已经提到过一种这样的工具,它使用彩虹表来逆向常见的哈希值,从而实现公开的 MD5 查询。现在,我们将介绍从业人员在授权评估过程中使用的其他工具。

1) John the Ripper
John the Ripper 该程序使用命令行,并接受带有规则的单词列表来生成候选哈希值。它可以自动检测许多常见的哈希格式。该程序免费,但精选的商业单词列表需单独购买。访问 https://www.openwall.com/john/.

2) Cain & Abel
Cain & Abel 运行 Windows 它可以恢复用户密码、执行网络嗅探等等。其图形界面使其深受新手欢迎。该工具自 2014 年以来未进行积极维护,因此仅适用于旧版实验室系统。参见 https://sectools.org/tool/cain/.

3) Ophcrack
Ophcrack 是一个跨平台 Windows 使用彩虹表的密码破解程序。它运行在 Windows,Linux和 macOS并且包含一个暴力破解模块。访问 https://ophcrack.sourceforge.io/.

4) Hashcat
Hashcat 是离线密码恢复的现代标准。它支持 300 多种哈希算法,利用 GPU 加速,并提供基于规则的攻击。文档位于: https://hashcat.net/hashcat/.

5)九头蛇
Hydra (THC-Hydra) 针对 SSH、FTP、RDP 和 HTTP 登录表单等在线服务。它附带 Kali Linux 并广泛应用于授权的红队演练中。

如何防范密码破解攻击?

组织可以采取以下措施来降低密码被破解的风险:

  • 至少需要 12 个字符,并避免使用可预测的模式,例如 11552266 或 qwerty1234。
  • 存储密码时,请使用速度较慢的单向哈希函数(例如 bcrypt、scrypt 或 Argon2),而不是速度较快的哈希函数(例如 MD5 或 SHA-1)。
  • 在对每个密码进行哈希处理之前先加盐;即使哈希本身速度很快,盐也能阻止彩虹表查找。
  • 按照 NIST SP 800-63B 的建议,采用有利于高强度得分的密码策略,并推广使用密码短语。
  • 启用多因素身份验证 (MFA),这样仅凭被盗密码无法获得访问权限。
  • 使用密码管理器为每个服务生成唯一的凭据,从而消除凭据填充攻击。
  • 配置账户锁定、限流和持续监控,以便及早发现在线暴力破解活动。

黑客活动:立即黑客攻击!

在这个实际场景中,我们将破解一个 Windows 使用简单密码的帐户。 Windows 将本地凭据存储为 NTLM 哈希(基于 MD4 的方案),我们将使用 Cain and Abel 中的 NTLM 破解模块来恢复该值。

Cain 和 Abel 可以使用字典攻击、暴力破解或密码分析(预先计算的表格)来破解密码。这里我们将使用字典攻击。下载字典列表 10k-最常见的.zip 来自一家信誉良好的镜像网站。为了演示,我们创建了一个名为“ 账户 用密码 QWERTY 上 Windows 7 实验室机器。

Windows 7 个实验室用户,名为 Accounts,使用简单密码 qwerty 创建,用于演示

如何破解密码

以下操作指南将每个该隐与亚伯的界面与相应的操作一一对应。请按顺序在您自己的实验室账号上执行这些步骤,切勿在您不拥有的系统上操作。

步骤 1)打开该隐与亚伯。
启动应用程序;您将看到以下主屏幕。

Cain and Abel 的主界面,其中 Cracker 标签页可见

步骤 2)找到“添加”按钮。
确保已选中“破解程序”选项卡(如上图所示),然后单击工具栏上的“添加”按钮。

在 Cain and Abel 工具栏上选中“Cracker”选项卡,并选中“添加”按钮。

步骤 3)选择导入源。
出现以下对话框。选择 从本地系统导入哈希表 并点击下一步。

该隐和亚伯的对话,询问应该从哪个源导入 NTLM 哈希值。

步骤4) Rev查看导入的账户。
本地用户帐户如下所示。实际结果将反映您实验室计算机上的用户帐户。

导入的本地列表 Windows 该隐和亚伯内部的账户已准备好破解

步骤 5)右键单击目标帐户。
右键单击要破解的帐户。在本教程中,我们将使用…… 账户 用户。

在 Cain and Abel 中,右键单击 Accounts 用户,即可打开上下文菜单。

步骤 6)打开字典攻击面板。
在字典攻击窗口中,右键单击字典部分并选择 添加到列表 如下所示。

字典攻击面板,并突出显示了“添加到列表”选项

步骤 7)浏览到单词列表文件。
浏览到 10k-most-common.txt 选择您刚刚下载的文件。

在 Cain and Abel 中打开文件浏览器,选择包含 10 个最常用密码单词的列表。

步骤8) Rev查看已恢复的密码。
如果用户选择了一个简单的密码,例如 QWERTY您将看到与下图类似的结果,用户帐户旁边会显示明文值。

Cain 和 Abel 显示了 Accounts 用户的已恢复明文密码 qwerty

注意:破解密码所需时间取决于密码强度、候选列表的复杂度以及计算机的处理能力。如果字典攻击无法恢复密码,请尝试暴力破解或密码分析攻击。

人工智能是如何运作的?ping 密码破解与防御

人工智能已成为密码破解攻防两端的一股重要力量。攻击者利用泄露的凭证数据训练语言模型,以预测可信的密码短语;而防御者则将同样的模型与遥测管道相结合,以更快地检测到入侵行为。

以下是人工智能如今正在改变该领域的方式:

  • 更智能的词表生成: PassGAN 等生成模型学习人类密码模式,并生成候选列表,这些列表比静态字典能破解更多哈希值。
  • 行为风险评分: 防御型人工智能会检查登录地理位置、设备指纹和类型ping 节奏,发送不寻常的上下文以加强身份验证。
  • 实时异常检测: 机器学习分类器监视身份验证日志,并标记签名规则无法识别的凭证填充或缓慢的暴力破解活动。
  • 自动化政策指导: 身份平台会根据组织特定的语料库对新密码短语进行评分,并在用户最终确定密码短语之前建议更强的替代方案。
  • 抵御网络钓鱼攻击的防御措施: AI 通过分析风险信号和减少用户摩擦,加速 FIDO2 和密码流程的推广。

将 AI 监控与多因素身份验证、Argon2 等现代哈希技术以及快速入侵通知信息流相结合,使自动化防御领先于自动化攻击。

常见问题

只有在获得明确的书面授权的情况下,例如渗透测试、内部审计或恢复自身凭证时,密码破解才是合法的。未经授权的破解行为几乎在所有司法管辖区都违反了计算机滥用相关法律。

哈希是一种单向转换:原始值无法恢复。加密则可以使用正确的密钥进行逆操作。密码应该始终以加盐哈希值的形式存储,例如使用 bcrypt、scrypt 或 Argon2 等算法,切勿以加密字符串的形式存储。

对于离线破解, Hashcat 它通常是最快的,因为它利用了 GPU 加速,并支持对 300 多种哈希格式进行基于规则的攻击。 John the Ripper 当GPU资源有限时,它仍然很受欢迎。

盐值是在每个密码进行哈希处理之前添加到其哈希值的唯一随机值。加盐可以抵御彩虹表攻击,因为预先计算的彩虹表只能用于破解未加盐的哈希值。此外,盐值还能确保两个使用相同密码的用户生成不同的哈希值。

一个包含字母、数字和符号的 12 位密码,即使使用 bcrypt 等慢速哈希算法,也可能需要几个世纪才能暴力破解。而使用快速的无盐 MD5 哈希算法,同样的密码可能只需几天就能破解。哈希算法的选择和密码长度都至关重要。

攻击者利用泄露的凭证数据训练诸如 PassGAN 之类的生成模型,使其能够预测逼真的人类密码短语。生成的词表在相同的运行时间内破解的哈希值明显多于静态字典,尤其是在结合基于规则的变异操作时。 Hashcat.

是的。防御型人工智能会建立正常的登录行为基线,评估每次尝试的风险,并标记规则引擎无法识别的撞库攻击或缓慢的暴力破解活动。为了获得最佳效果,请将人工智能监控与多因素身份验证和现代哈希技术(例如 Argon2)结合使用。

多因素身份验证可以阻止绝大多数破解行为,因为仅凭找回的密码无法完成登录。诸如 FIDO2 安全密钥和通行密钥之类的防钓鱼因素提供最强大的保护,应尽可能启用。

总结一下这篇文章: