时间:2019-10-15  来源:wonderhowto  作者:wonderhowto  阅读:1

可以对Microsoft Office文件进行密码保护,以防止篡改并确保数据完整性。但是来自Office早期版本的受密码保护的文档很容易被称为office2john的简单程序提取其哈希值。然后可以使用开膛手John和Hashcat破解这些提取的哈希。

使用office2john工具从受密码保护的Microsoft Office文件中提取哈希仅需要几秒钟。尽管多年来不同Office产品之间的加密标准一直在波动,但它们都无法抵御office2john的哈希窃取功能。

该工具是用Python编写的,可以直接在终端上运行。至于Office的兼容性,已知它可以处理使用Office 97,Office 2000,Office XP,Office 2003,Office 2007,Office创建的Word,Excel,PowerPoint,OneNote,Project,Access和Outlook中任何受密码保护的文件2010和Office 2013,包括Office for Mac版本。但是,它可能无法在较新版本的Office上运行,但是,我们在Office 2016中保存了一个DOCX,将其标记为Office 2013。

步骤1安装Office2John

首先,我们需要从GitHub下载该工具,因为标准版本的John Ripper中并未包含office2john(该版本已安装在您的Kali系统中)。使用wget可以轻松实现。

~# wget https://raw.githubusercontent.com/magnumripper/JohnTheRipper/bleeding-jumbo/run/office2john.py

--2019-02-05 14:34:45--  https://raw.githubusercontent.com/magnumripper/JohnTheRipper/bleeding-jumbo/run/office2john.py
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.148.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.148.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 131690 (129K) [text/plain]
Saving to: ‘office2john.py’

office2john.py                        100%[=======================================================================>] 128.60K  --.-KB/s    in 0.09s

2019-02-05 14:34:46 (1.45 MB/s) - ‘office2john.py’ saved [131690/131690]

步骤2确保所有内容都在同一目录中

为了使用Python运行office2john ,我们需要切换到与安装相同的目录。对于大多数人来说,默认情况下它将是Home(只需输入cd),但是可以随时创建一个单独的目录。

接下来,我们需要一个适当的文件对其进行测试。我使用的是一个简单的DOCX文件,该文件名为“ dummy.docx”,该文件是用Word 2007创建并受密码保护的。请下载该文件以进行后续操作。您会发现密码是“ password123”。您还可以下载使用Word 2010和Word 2016(显示为2013)制作的文档,以用于更多示例。这些用户的密码也为“ password123”。

步骤3使用Office2john提取哈希

我们需要做的第一件事是提取受密码保护的Office文件的哈希。运行以下命令,并将输出通过管道传递到“ hash.txt”,以供以后使用。

~# python office2john.py dummy.docx > hash.txt

要验证散列是否已成功提取,请使用cat命令。我们可以看到我保存的哈希对应于Microsoft Office2007。整洁。

~# cat hash.txt

dummy.docx:$office$*2007*20*128*16*a7c7a4eadc2d90fb22c073c6324b6b49*abc5f80409f5f96f97e184e44aacd0b7*930b0c48a7eb5e13a57af4f3030b48e9402b6870

步骤4破解刚刚保存的哈希

如前所述,我们将向您展示两种破解刚从密码保护的Microsoft Office文件中保存的哈希的方法。两种方法都很好用,所以这完全取决于首选项。

选项1:与John开膛手

用您喜欢的单词列表的位置设置--wordlist标志。Nmap附带的一个可以满足我们这里的目的,但是对于更严格的密码,您可能想要使用更广泛的单词列表。

~# john --wordlist=/usr/share/wordlists/nmap.lst hash.txt

Using default input encoding: UTF-8
Loaded 1 password hash (Office, 2007/2010/2013 [SHA1 128/128 SSE2 4x / SHA512 128/128 SSE2 2x AES])
Cost 1 (MS Office version) is 2007 for all loaded hashes
Cost 2 (iteration count) is 50000 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status

John将开始破解,并且取决于密码的复杂性,当找到匹配项时,它将结束。几乎按任意键可以查看当前状态。破解哈希后,屏幕上会显示一条消息,其中包含文档的密码:由于我们的密码非常简单,因此只需几秒钟即可破解它。

password123      (dummy.docx)
1g 0:00:00:03 DONE (2019-02-05 15:00) 0.2824g/s 415.8p/s 415.8c/s 415.8C/s lacoste..cooldude
Use the "--show" option to display all of the cracked passwords reliably
Session completed

我们也可以使用--show选项来显示它,如下所示:

~# john --show hash.txt

dummy.docx:password123

1 password hash cracked, 0 left

既然我们知道了一种破解受密码保护的Microsoft Office文件的方法,那么让我们来看看使用功能强大的工具Hashcat的另一种方法。

选项2:使用Hashcat破解

我们可以从显示Hashcat 的帮助菜单(--help)开始。这将为我们提供大量信息,包括使用选项,哈希模式和其他功能。这里有很多信息,所以我不会显示输出,但是如果您真的想了解Hashcat,则应该深入研究。

~# hashcat --help
从输出中,我们只对MS Office哈希模式感兴趣。在帮助菜单底部附近,我们将找到MS Office模式选项及其相应编号。从哈希中我们知道这是一个Office 2007文件,因此请找到其编号ID 9400。

9700 | MS Office <= 2003 $0/$1, MD5 + RC4               | Documents
9710 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #1  | Documents
9720 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #2  | Documents
9800 | MS Office <= 2003 $3/$4, SHA1 + RC4              | Documents
9810 | MS Office <= 2003 $3, SHA1 + RC4, collider #1    | Documents
9820 | MS Office <= 2003 $3, SHA1 + RC4, collider #2    | Documents
9400 | MS Office 2007                                   | Documents
9500 | MS Office 2010                                   | Documents
9600 | MS Office 2013                                   | Documents

现在,我们可以使用以下命令设置其余选项。

~# hashcat -a 0 -m 9400 --username -o cracked_pass.txt hash.txt /usr/share/wordlists/nmap.lst

该-a标志设置攻击类型为默认的直接模式0。

该-m标志指定我们要使用的模式,这是我们刚发现。

该--username选项忽略在散列文件中的任何用户名。

我们可以指定输出文件cracked.txt用-o标志。

最后,我们可以传入包含哈希值的hash.txt,并像我们之前那样设置单词列表。

然后,Hashcat将开始破解。

hashcat (v5.1.0) starting...

* Device #2: Not a native Intel OpenCL runtime. Expect massive speed loss.
             You can use --force to override, but do not report related errors.
OpenCL Platform #1: Intel(R) Corporation
========================================
* Device #1: Intel(R) Core(TM) i5 CPU       M 480  @ 2.67GHz, 934/3736 MB allocatable, 4MCU

...

一段时间后,状态将显示为“已破解”,我们准备查看密码。

Session..........: hashcat
Status...........: Cracked
Hash.Type........: MS Office 2007
Hash.Target......: $office$*2007*20*128*16*a7c7a4eadc2d90fb22c073c6324...2b6870
Time.Started.....: Tue Feb  5 15:08:00 2019 (4 secs)
Time.Estimated...: Tue Feb  5 15:08:04 2019 (0 secs)
Guess.Base.......: File (/usr/share/wordlists/nmap.lst)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:      610 H/s (8.51ms) @ Accel:512 Loops:128 Thr:1 Vec:4
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 2048/5084 (40.28%)
Rejected.........: 0/2048 (0.00%)
Restore.Point....: 0/5084 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:49920-50000
Candidates.#1....: #!comment:  ***********************IMPORTANT NMAP LICENSE TERMS************************ -> Princess

Started: Tue Feb  5 15:07:50 2019
Stopped: Tue Feb  5 15:08:05 2019

只要hash不在指定输出文件,它会显示已上涨了年底明文密码的哈希。

~# cat cracked_pass.txt

$office$*2007*20*128*16*a7c7a4eadc2d90fb22c073c6324b6b49*abc5f80409f5f96f97e184e44aacd0b7*930b0c48a7eb5e13a57af4f3030b48e9402b6870:password123

成功!现在,我们知道了使用office2john从受密码保护的Microsoft Office文件中提取散列后破解散列的两种方法。

如何防止破解

当涉及到任何类型的密码破解时,最好的防御技术是使用密码最佳实践。这意味着使用长且不容易猜到的唯一密码。尽管最近的研究表明简单地使用具有高熵的长短语会更好,但它有助于结合使用大写和小写字母,数字和符号。更好的是随机生成的长密码,几乎不可能破解它们。

关于此特定攻击,由于office2john旨在在早期版本的Office上工作,因此使用Microsoft Office 2016或2019文档或更高版本可能无效。但是,如您在上面看到的,Office 2016可能会在用户不知情的情况下吐出2013文档,因此这并不意味着无法破解“新”文件。另外,仍然有大量的较旧的Microsoft Office文档随处可见,并且一些组织继续使用这些较旧的版本,从而使今天的攻击仍然非常可行。

总结

今天,我们了解到,受密码保护的Microsoft Office文件的安全性还不如人们想象的那么安全。我们使用了一个名为office2john的工具来提取DOCX文件的哈希,然后使用Ripper和Hashcat破解了该哈希。这些类型的文件今天仍然很常用,因此,如果遇到带有密码的文件,请放心,有一种方法可以将其破解。

Top