office2003前版本的口令破译 |
还是一样,算是个备忘。
不过真心觉得微软最初还是很有想法的,故意留那么个漏洞,保证加密文档对他们来说是可以不需要口令破译的。当然也有可能他们只是想提供用户忘记口令时,能够恢复重要文件的服务,但是不管怎么说,漏洞留下了。 口令破译具体算法我就不写代码了,就描述下office是如何使用口令解密的步骤: 01、将用户口令进行Unicode编码 02、将编码结果进行一次MD5计算👨⚕️👗🔋😉👃 03、获取MD5结果的前5个字节 04、获取文件中的16个字节的随机数 05、将5个字节的哈希值和16个字节的随机数组成21个字节的数据,并将这21个字节数据通过重复扩展到336字节(即有16个21字节) 06、将336个字节数据进行一次MD5运算 07、再次只取出第06步得到哈希值的前5个字节 👆🛑🎂♾🕊08、将5个字节填充0补充长度到9个字节 09、将9个字节的数据进行一次MD5计算 10、将09步得到的16个字节作为rc4算法密钥 11、使用rc4算法将16个字节随机数后的32个字节数据进行解密 12、将解密后的32个字节数据中的前16个字节数据进行一次md5运算 👂🎠🥛🆘🦌13、比较第12步中得到的16个字节哈希值与解密后的32个字节数据中的后16个字节数据是否相同,相同则口令正确,不同,则口令错误。 漏洞:rc4的密钥本来为16个字节数据,即128bit,密钥空间应有2的128次方,但由于其是由5个字节数据进行哈希而产生,因此,实际rc4密钥空间就只有2的40次方种了。 通过穷尽5个字节的哈希值就可以顺利找到rc4的正确密钥,从而对加密文档进行解密,当然口令实际上是没有求出来的。
帖子热度 1.3万 ℃
|
|