发布于2026-08-19 阅读(0)
扫一扫,手机访问
本次实验将借助Hashcat(一款强大且功能多样的密码恢复工具),来探究一种特定的密码破解技术——组合攻击(combinator attack)。组合攻击,说白了,就是把两个独立的字典(wordlists)组合起来,生成密码候选。打个比方,要是一个列表里有“password”,另一个列表里有“123”,那这种攻击就会去测试“password123”这个组合。
这种方法对于由两个单词拼接而成,或者由一个单词加上数字或符号序列组成的密码特别有效。在本实验中,你将学习如何准备字典,构建合适的 Hashcat 命令,针对示例哈希(hash)执行攻击,并验证结果。
在本步骤中,你将学习 Hashcat 中组合攻击的核心概念。此攻击模式由攻击模式 CODE_0 指定。它通过从第一个字典中取一个基础单词,并附加第二个字典中的一个单词来生成新的候选密码。这个过程会针对两个列表中的每个单词重复进行。
例如,如果你有两个列表:
组合攻击将生成以下候选密码:CODE0, CODE1, CODE2, CODE3.
这种方法在不需要单个庞大的字典文件的情况下,极大地扩展了潜在的密码空间。让我们开始确认 Hashcat 帮助菜单中的攻击模式。
执行以下命令来过滤帮助输出,以获取有关组合攻击的信息:
hashcat --help | grep "Combinator"
你应该会在输出中看到一行明确提到组合攻击模式及其对应的数字。
-a, --attack-mode | ## | Attack-mode
...
| 1 | Combinator
...
这证实了 CODE_0 是组合攻击的正确标志。
在本步骤中,你将创建将在组合攻击中使用的两个字典。在本实验中,我们将创建两个小型自定义字典。在实际场景中,这些字典会大得多,包含更多常用词、名称和模式。
我们的目标密码是常用词和数字序列的组合。我们将把单词部分放在 CODE0 中,数字部分放在 CODE1 中。
首先,使用 CODE0 命令和 CODE1 标志(用于处理换行符 CODE2)创建 CODE3,其中包含一些潜在的基础单词:
echo -e "adminnusernpasswordnguest" > wordlist1.txt
接下来,创建 CODE_0,其中包含一些常用的数字后缀:
echo -e "2024n!@#n123nxyz" > wordlist2.txt
现在,使用 CODE_0 命令验证两个文件的内容,以确保它们已正确创建。
检查第一个字典:
cat wordlist1.txt
预期输出:
admin
user
password
guest
检查第二个字典:
cat wordlist2.txt
预期输出:
2024
!@#
123
xyz
有了这两个字典,Hashcat 现在就能够形成候选密码 CODE_0。
在本步骤中,你将构建完整的 Hashcat 组合攻击命令。在执行命令之前,理解命令的每个部分至关重要。
组合攻击的通用语法是:CODE_0
以下是我们即将使用的命令的详细说明:
在运行完整攻击之前,使用 CODE_0 标志是一个好习惯。此标志告诉 Hashcat 显示已破解并存储在 potfile 中的任何哈希,而无需启动新的破解会话。
让我们使用 CODE_0 运行命令,以查看我们的目标哈希尚未被破解:
hashcat -m 0 -a 1 hash.txt wordlist1.txt wordlist2.txt --show
由于这是我们第一次运行它,该命令将不会产生任何输出,这是预期的结果。这证实了我们已准备好继续进行实际攻击。
现在是时候在没有 CODE0 标志的情况下执行组合攻击了。这将启动破解过程。Hashcat 将读取两个字典,将它们组合起来,对结果进行哈希处理,并与 CODE1 中的目标哈希进行比较。
在你的终端中运行以下命令:
hashcat -m 0 -a 1 hash.txt wordlist1.txt wordlist2.txt
Hashcat 将初始化并显示一个状态屏幕。由于我们的字典非常小,该过程将几乎立即完成。输出将显示哈希已被破解。
你将看到类似以下的输出(速度和时间等详细信息可能会有所不同):
```plaintext
hashcat (v6.2.6) starting
...
会话名称:hashcat
破解状态:已破解
哈希算法:MD5
目标哈希值:e10adc3949ba59abbe56e057f20f883e
开始时间:...
预计剩余时间:0秒(0.00毫秒)
猜测来源:文件(wordlist1.txt),文件(wordlist2.txt)
猜测队列:2/2(100.00%)
速度#*:... H/s(...)
已恢复:1/1(100.00%)个摘要
进度:16/16(100.00%)
已拒绝:0/16(0.00%)
恢复点:4/4(100.00%)
恢复子#*:4/4(100.00%)
候选数#*:16
Cracked Hashes: 1/1
e10adc3949ba59abbe56e057f20f883e:password123
...
All hashes ha ve been recovered
Started: ...
Stopped: ...
```
CODE_0 这一行清楚地显示了原始哈希及其破解出的明文密码。这证实了我们的攻击是成功的。
在本步骤中,你将查看 Hashcat 的 potfile。potfile (CODE_0) 是一个纯文本文件,Hashcat 会自动将成功破解的哈希及其对应的密码存储在此文件中。这是一个非常有用的功能,可以防止你浪费时间重新破解已经解决的哈希。
默认情况下,potfile 位于 CODE_0 目录中。
使用 CODE_0 命令查看 potfile 的内容,并确认我们的结果已保存:
cat ~/.local/share/hashcat/hashcat.potfile
输出将显示哈希及其破解出的密码,两者之间用冒号分隔:
e10adc3949ba59abbe56e057f20f883e:password123
这证实了攻击是成功的,并且结果现在已永久存储在 potfile 中。如果你再次运行相同的攻击,Hashcat 将使用 CODE_0 标志从该文件中即时检索结果,而不是重新运行整个破解过程。
在本实验中,你已成功使用 Hashcat 执行了组合攻击。
你学会了如何:
组合攻击是密码破解中的一项基本技术,在处理遵循可预测连接模式的密码时尤其有用。
上一篇:破解密码保护的 RAR 压缩文件
下一篇:使用工作负载配置文件优化破解
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9