阁子

阁子

马上订阅 阁子 RSS 更新: https://dfine.tech/atom.xml

Hashcat密码破解

2019年3月14日 19:25

拿到了一个被加密的Excel,要求输入密码才能打开,于是尝试了下密码破解方法。

AROP破解

AROP(ADVANCED OFFICEPASSWORD RECOVERY)好像是比较主流的Office的破解工具,有收费版和免费版,区别在于密码长度是否超过4字节。
用了一个虚拟机跑了一下,字典查询没有,于是暴力破解,嗯,破解速度比较令人绝望,毕竟是CPU在跑。
将该Excel文件解压之后,可以发现里面包含DataSpaceEncryptedPackage以及EncryptionInfo等文件,打开EncryptionInfo文件,可以看到里面加密的一些信息:

1
2
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<encryption xmlns="http://schemas.microsoft.com/office/2006/encryption" xmlns:p="http://schemas.microsoft.com/office/2006/keyEncryptor/password" xmlns:c="http://schemas.microsoft.com/office/2006/keyEncryptor/certificate"><keyData saltSize="16" blockSize="16" keyBits="256" hashSize="64" cipherAlgorithm="AES" cipherChaining="ChainingModeCBC" hashAlgorithm="SHA512" saltValue="tLnK9YHGccHAgMyj9Nuwmg=="/><dataIntegrity encryptedHmacKey="wF7fTyyf/qhB8Vg+8fvQcspTyuR7cc2+yjIyuEAF0O8avnv0LxYhw+DaVmikzCbFDjLgFCAj6+C6m6iJdhuknA==" encryptedHmacValue="IK7Xc7/e0AVLERogsLvFl912xsbhw+oRKd/ABUwE5vw5iQtcAkM0K0rjz+gB8UlDDJlGbQx0HOKWypF3EDbqcA=="/><keyEncryptors><keyEncryptor uri="http://schemas.microsoft.com/office/2006/keyEncryptor/password"><p:encryptedKey spinCount="100000" saltSize="16" blockSize="16" keyBits="256" hashSize="64" cipherAlgorithm="AES" cipherChaining="ChainingModeCBC" hashAlgorithm="SHA512" saltValue="wisEIaAFG08tJoh3tD0Bqw==" encryptedVerifierHashInput="ZMMqH6NC6xpnsH8zBXtfyA==" encryptedVerifierHashValue="mEcTV0662f/U1+nndKsBiv+L/CsAusbw+So+pA4g8TBKq70rNYy7nkZk+tYB6M/fFZdBfRH4363GRI4m8WPk6Q==" encryptedKeyValue="xUZ5hE+Tzhim5YcUf7KOA5Z1jAG+cTaOGRd859sCkPA="/></keyEncryptor></keyEncryptors></encryption>

其中,采用的是AES算法,有盐(salt,指随机的数据,加入到哈希的过程中,加大破解难度),hash算法是SHA512,spinCount=100000经过了100000次的迭代操作,想直接逆向破解,实在太难。字典尝试无效,只能暴力破解,但是随着密码长度增加,以及字母数字、特殊字符的引入,破解难度指数增长。对于纯小写字母的6位密码,复杂度为$26^6 = 308915776$次,七位则超过了80亿次,指望这个靠CPU计算的软件,实际希望不大,跑了半天后放弃了。

Hashcat破解

Hashcat号称世界上最快的密码破解,世界上第一个和唯一的基于GPGPU规则引擎,免费多GPU(高达128个GPU),多哈希,多操作系统(Linux和Windows本地二进制文件),多平台(OpenCL和CUDA支持),多算法,资源利用率低,基于字典攻击,支持分布式破解等等。

嗯,暴力破解的话,只能考虑使用GPU跑,这时,开源的hashcat就是一个不错的选择。

获取文件hash值

使用hashcat破解office,先需要获取文件的hash值,网上有现成的工具office2join.py,然后用python运行,参数加上该office文件即可。

1
2
3
python office2john.py ../test.xlsx
test.xlsx:$office$*2013*100000*256*16*c22b0421a0051b4f2d268877b43d01ab*64c32a1fa342eb1a67b07f33057b5fc8*984713574ebad9ffd4d7e9e774ab018aff8bfc2b00bac6f0f92a3ea40e20f130

可以看到,加密方式为office2013,将第一个冒号后面的字串复制到一个新文件中保存即可。

hashcat破解

知道加密方式后,需要找到对应的破解模式,首先使用--help看一下帮助:

1
./hashcat64.bin --help

可以看到office的加密模式有以下几种:

1
2
3
4
5
6
7
8
9
9700 |...

剩余内容已隐藏

查看完整文章以阅读更多