> 博客 > 密码学与安全 > office文件加密原理详解及密码破解实战演示

office文件加密原理详解及密码破解实战演示

   2018-10-26  点击:18504次

office文件加密原理详解及密码破解实战演示

一、office文件破解原理分析

1.正确的密码通过一种方式保存在加密的office文件中

既然office文件可以判断用户输入的密码是否正确,那么说明文件中保存了正确的密码的校验信息,这便是破解密码的关键所在。如何将密码保存在文件中用来校验用户输入的密码是否正确,而又不暴露密码本身呢?当然是通过散列算法:MD5,散列算法可以简单的理解成将任意长度的数据输出为固定长度的哈希值(通常是一段32字节的16进制),散列算法最大的特点是不可逆,即你无法通过哈希值反算出原数据,所以散列算法常被用于校验数据的一致性和完整性。所以,我们可以将哈希值提取出来,进行攻击。

2.Office文件加密算法进一步探究

在office2003-office2010版本中:doc格式的文件,默认采用RC4加密算法,密钥长度为40位,现已经可以快速破解(基于完整的密钥库)。在这种加密算法下,无论用户设置的密码长度如何,最终都将转换为40bit长度的密钥,我们只需要尝试2的40次方(大概一万亿)个密钥就能百分之百得到原始密码,如果按照现代家用计算机的算力,这将花费一个星期左右的时间。

在office2007-office2013版本中:docx格式的文件,采用AES加密算法,密钥长度强制为128位。这种加密算法下,共有2的128次方个密钥,以现代家用计算机的算力,如果要尝试完这些密钥组合,要从地球诞生跑到地球毁灭。如果没有好的密码字典以及社会工程学的配合,破解几乎不可能。

1. office文件加密原理详解(doc格式)

Word加密使用到的字段:

  1. Salt:随机生成16byte的数据(明文存储)

  2. FreshNumber:随机生成16byte的数据(RC4加密后存储)

  3. FreshNumberMD5:FreshNumber经过散列算法计算得到的哈希值(RC4加密后存储)

2.office文件加密过程

  1. 用户输入密码。

  2. 随机生成16字节的salt(密码学中被称为“加盐”),与用户输入的密码一起通过哈希算法生成40bit的密钥,用于加密,这保证了同样的密码会生成不同的RC4密钥。

  3. RC4算法使用40bit的密钥开始加密。

3. 密码验证过程(过程较为复杂,做如下图参考)


office文件密码验证过程详解

三、破解可行性分析

在不知道“打开密码”的情况下,要解密文件,一般有 2 种攻击方法:

  1. 暴力破解:暴力破解是最常用、最简单的攻击方法,暴力破解通常与密码字典配合使用(以及在社会工程学帮助下制作密码字典库)。此方法即提取密文hash,通过不断猜测密码来破解。因office文档最多可输入15个字符,且需要多次MD5计算,故暴力破解速度较慢。

  2. 攻击40bit密钥:从上图“office密码验证过程详解”中我们可以看出,如果知道了40bit的RC4密钥,那么我们可以在不知道密码的情况下解密文件,这种方法的好处是省略了多次的MD5计算。40bit的密钥长度所能组合出的密钥约为一万亿个(1099511627776),保存这一万亿个密钥和密文大约需要10TB空间。如果使用Rainbow(彩虹表),可能只需要16.8GB。

四、office docx文件破解案例演示

我们采用字典库(400万个常用密码库,25MB),使用hashcat跑库破解一个加密的docx文件,采用AES加密且密钥长度为128位。笔者显卡为1050ti,本次演示使用显卡计算hash。

1.提取加密文件“贯日建站.docx”的加密hash信息

$office$*2013*100000*256*16*830288e46874bb36af290520293c51eb*49db74fec2f814bf36f354322776ffbb*3d1d75bded508d5f469d729c0fd2fa1c933d91c7a27764359be9b84d945784a2

通过上方的hash信息,可以看到office的版本,以及加密信息。


2.使用hashcat加载字典库对提取到的hash进行攻击

hashcat读取系统硬件信息及温度报警设置、载入字典库到内存。

hashcat破解office密码演示

破解进程开始运行,状态如下,破解速度在每秒2673次。

hashcat破解docx密码


25秒后,字典库尝试到7.7%的时间,密码被找到,破解成功!密码为“abc123”

hashcat破解office密码


五、使用高算力的显卡矿机可大幅度提高破解速度

家用计算机的算力很有限,且CPU对于hash计算的效率远远低于显卡(显卡庞多的流处理器),我们采用专业的显卡矿机,破解上文演示的docx,算力可在每秒3万次。破解RC4加密的doc文件,算力可在每秒两千六百万次,成功率可大幅度提高。

显卡矿机

六、总结:

1、在office2003-office2010版本中,采用RC4加密的密钥长度为40bit的doc文件:

  1. 暴力破解方式:家用电脑的破解速度为每秒2600000(二百六十万)次,可以保证100%破解,家用电脑需要大约一个星期的时间。

  2. 攻击40bit密钥方式:可快速解密文件(但无法知道原密码),前提是拥有约一万亿个密钥和密文的查询数据库。

2、在office2007-office2013版本中:采用AES加密的密钥长度为128bit的docx文件:

  1. 暴力破解方式:家用电脑的破解速度为每秒2600-2700次。此种加密方式破解成功极低,但是依托于优秀的字典库、专业的高算力设备(或FPGA芯片)以及社会工程学的帮助,可大大提高成功率。

  2. 攻击128bit密钥方式:密钥个数为2的128次方,对于现代计算机的处理能力,属于天文数字。

商用密码破解可联系我司,我司拥有专业的高算力机器(见上图)、配合优秀的字典库以及社会工程学的分析,可以将破解成功率提升至最高,避免因重要资料丢失给企业带来损失。


相关文章