使用字典破解Office密码的技术指南

本文详细介绍了如何使用自定义字典和工具如Hashcat、John the Ripper破解Microsoft Office文档加密,涵盖加密方法分析、字典构建技巧和实际攻击步骤,帮助提升密码安全认知。

如何使用字典破解Office密码

Kent Ickler//

TLDR:我们使用自定义字典破解Microsoft Office文档加密,然后在LinkedIn哈希数据库中使用自定义字典进行攻击。

背景

最近我收到几个关于更好方法破解加密Excel文件的问题。问题来自BHIS的扩展社区,他们使用商业密码恢复工具,并利用分布式CPU和GPU处理能力。问题是他们仍然获得荒谬的慢哈希速度,使得暴力破解不适用。

在讨论我们在John the Ripper(JTR)和Hashcat上的典型哈希破解流程时,用户回应说:“我15年前用过那个……人们还在用吗?”
是的……是的,我们仍然在用。

事实上,JTR和Hashcat至今都有活跃的开发。
公平地说,我不能说商业软件是否更快(更好、更快、更强),但我会说,如果它包括专业支持并且你正在处理复杂的事情,那总是很好的。Black Hills Information Security系统管理员有一个信条:我们既不支持专有也不支持开源;我们支持安全意识。商业软件肯定可以有它的利基,快速调查密码恢复软件显示了一些有趣的提供,特别是在分布式工作负载方面,开源社区难以找到显著增长。

Office加密

慢哈希破解是Microsoft Office应用程序在存储密码哈希和加密文档方面所做的努力的结果。加密方法比早期Office版本复杂得多。Office 2013加密使用128位AES和SHA-512算法。用于创建哈希的处理能力越多,尝试多个组合以找到匹配哈希就越困难。

未来研究

有趣的是,Microsoft还在所有Office 2013加密文档中留下了一个后门,允许使用主密钥。Microsoft甚至制作了DocRecrypt工具,允许IT管理员通过使用域上的证书签名服务来解密或重新加密Office文档,而无需原始密码。这些和其他攻击向量已被社区研究,并可能产生完全绕过哈希破解加密文档的潜在攻击向量。

设置加密文档

首先,我创建了一个Excel文档并填充了一些虚构数据。

现在,我将“使用密码加密”

让我们尝试使用一个我认为可能在常见字典中的密码:buckeye31。
(旁注,我使用了“shuf -n 1 rockyou.txt”)

保存文档后,我尝试再次打开它以验证其加密。

我们不想实际破解Excel文件本身——我们只想破解用于加密Excel文件的密码哈希。为此,我们需要一个工具来读取Excel文件,并为我们提供文件加密处理中使用的密码的明文哈希。通常,我会参考Hashcat-Utils,但所需的工具不在那里。由于我们在同一破解系统上编译了JTR,我将使用JTR的office2john.py。

Office2john.py [EXCEL FILE] > hash.txt

Office2John.py识别了哈希并确定它使用MS Office 2013的加密方法,因此尽管使用Office 2016,哈希机制看起来仍然相同。我可以从这里开始使用JTR,但我仍然偏爱Hashcat,尽管必须查找哈希类型代码,如果我只使用JTR就不需要。我需要将JTR Office 2013哈希切割成Hashcat能理解的东西,并从Hashcat的帮助文件中找到哈希方法代码。

为了转换这个JTR格式的字符串以便Hashcat能正确读取,我需要从office2john.py创建的行中删除前导“EncryptedBook.xlsx”。我们可以使用Hashcat的–username标志,但我更喜欢创建一个干净的哈希列表文件。所以我会使用cut:

Cut hash.txt -d”:” -f 2 >hashhc.txt

现在,让我们给Hashcat一些上下文:
使用hashcat64.bin –help,我可以找到Office 2013的哈希方法代码是9600

很快,我想在我们的HashCat设备上检查9600哈希方法的基准:
Hashcat64.bin -m 9600 -b

47,178 h/sec 并不好,但肯定比几百好。

现在,我使用的密码在rockyou.txt中(事实上,我是从该文件中随机提取的)。让我们看看rockyou.txt有多大:

14,344,393。不计开销,大约5分钟。
开始吧:
hashcat64.bin -m 9600 hasheshc.txt /opt/wordlists/rockyou.txt -o hashes.pot

四分钟后……

不奇怪,密码在rockyou.txt中被找到。

但如果我们只知道它有一些小写字母后跟几个数字呢?
hashcat64.bin -m 9600 -a 3 hasheshc.txt ?l?l?l?l?l?l?d?d -o hashes.pot

七天。哇,痛。

等等……如果我们只知道它是8个字符但其他一无所知呢?
hashcat64.bin -m 9600 -a 3 hasheshc.txt ?a?a?a?a?a?a?a?a -o hashes.pot

好吧。

重点是,如果你使用字典,可以节省大约4577年,或者……一个8字符的字母数字密码对于MS Office加密来说显然相当好。

另一种方法呢?
我不是一个大足球迷,但如果我知道Excel文件的作者是,我可能会尝试构建一个自定义字典。我将使用cewl在这个Wikipedia页面上查找关于大学足球的关键词,以帮助我构建字典文件。

cewl –depth 0 -w customdict.txt https://en.wikipedia.org/wiki/List_of_college_team_nicknames_in_the_United_States

这生成了一个1626个单词的自定义字典。

让我们也添加所有大写和小写:
cp customdict.txt customdict.more.txt

cat customdict.txt | tr ‘[:upper:]’ ‘[:lower:]’ » customdict.more.txt

cat customdict.txt | tr ‘[:lower:]’ ‘[:upper:]’ » customdict.more.txt

现在我们有4878个单词。

让我们更进一步,运行hashcat-utils的expander来扩展所有这些单词。
(注意,我必须重新编译expander以扩展到8个字符……)
cat customdict.more.txt | /opt/hashcat-utils/src/expander.bin > customdict.more.expanded.txt

392,322个单词。现在怎么办?

现在,让我们使用Hashcat的混合字典攻击在单词列表末尾添加几个数字:
hashcat64.bin –session HashBlog1 -a 6 -m 9600 hashhc.txt customdict.more.expanded.txt ?d?d -o hash.pot

然后……
27秒后,我们有了赢家。

字典对于处理密集型哈希来说是最佳选择。

如果你像大多数人一样不使用随机字母数字和符号,任何人知道的关于你的任何事情,包括你的体育偏好,都可以用在单词列表中以减少破解只有你(认为你)知道的密码的停机时间。

等等,这一切都是虚构的,你一开始就知道密码。没有人会实际使用那些密码……

只是为了好玩,让我们在已知的LinkedIn ~60M哈希发布上测试我们的custom.more.expanded.txt单词字典。由于它使用SHA1并且哈希将非常快,我们将在字典中的每个单词末尾添加几个字母数字。

hashcat64.bin -a 6 -m 100 68_hash.txt customdict.more.expanded.txt ?a?a -o test.pot

我们用大学足球来源的字典击中了~60百万LinkedIn哈希的1.27%,耗时22秒。

链接

DigINinja的CeWL:https://digi.ninja/projects/cewl.php
John the Ripper: http://www.openwall.com/john/
Hashcat: https://hashcat.net/hashcat/
Hashcat-utils: https://github.com/hashcat/hashcat-utils
Microsoft Office Document Encryption: https://technet.microsoft.com/en-us/library/cc179125.aspx

相关博客

Black Hills Information Security Hashcat博客:
https://www.blackhillsinfosec.com/tag/hashcat/
Black Hills Information Security密码破解设备构建:
https://www.blackhillsinfosec.com/build-password-cracker-nvidia-gtx-1080ti-gtx-1070/
Black Hills Information Security:如何破解密码保护的MS Office文档密码:
https://www.blackhillsinfosec.com/crack-passwords-password-protected-ms-office-documents/

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计