被勒索病毒加密的文件如何破解?

想要硬刚勒索病毒,脱密加密的文件,是很难的。之前,我已经介绍了数字签名,勒索病毒使用了公钥加密另一个常用应用“数字信封”技术。

想要恢复勒索病毒加密的文件,可以破解黑客的公钥,或者破解黑客加密文件的临时对称密钥。而这2种算法,黑客都选用了目前可靠的算法,不可能被破解。

为什么不能被破解?这2种算法保障着全球信息系统的安全性,如果能通过破解加密算法恢复文件,现代的信息防护技术也就都失效了。因此,如果必须恢复文件,目前的办法就是支付赎金给黑客,然后加固系统。

数字信封

不严谨的描述一下:

1.随机选取对称密钥

2.用对称加密明文得到密文

3.用公钥加密对称密钥,得到加密的对称密钥。

4.将密文和加密后的对称密钥保存在一个文件中。

最后的数字信封中全部是密文,先要解密数字信封,必须要有公钥对应的私钥,先从数字信封中解密对称密钥,在解密密文。

上面只是最简单的数字信封原理,我们可以进一步了PKCS#7解数字信封的格式,参考文献3。

数 字 信 封 格 式 (不带签名)

版本号

0

接收者信息

版本号

证书序列号

对密钥的加密算法标识

加密的报文密钥

加密内容信息

数据类型

数据加密算法标识

加密的内容

数 字 信 封 格 式 (带签名)

版本号

0

接收者信息

版本号

证书序列号

对密钥的加密算法标识

加密的报文密钥

信息摘要算法

算法标识

加密内容信息

数据类型

数据加密算法标识

加密的内容(使用报文密钥加密)

证书

签名者证书和签发者证书(可选)

签名者信息

版本号(1)

签名者证书序列号

签名时间

签名算法

加密的签名值(使用报文密钥加密)

其它属性

勒索病毒

先看一下分析资料,

加密过程

1, 病毒运行时会随机生成RSA Session公私钥对,私钥命名为:计算机-#-加密时间.key。

此文件会被随机生成的AES-256 key对称加密,保存在计算机-#-加密时间.key.~xdata~ 文件的头部。

2, 病毒作者用事先准备好的RSA公钥,把随机生成的AES-256 key加密后,保存在 *.key.~xdata~文件的尾部。

3, 普通文件,用随机生成的AES-256 key进行加密后存在文件头部。(大于100M的文件,只加密前15M,小于等于100M,大于等于10M的,加密前10M,小于10M的文件,加密filesize & 0xFFFFFFF0的 全文)

4, 用RSA Session public key加密随机生成的AES-256 key,并保存在加密文件的尾部。

解密过程

5, 病毒作者手中的RSA private key可以用来解密*.key.~xdata~ 的文件尾,获取到文件加密的AES-256 key。

6, 用上一步解密出来的AES-256 key 解密*.key.~xdata~,可以获取完整的RSA Session private key。

7, 用RSA Session private key解密用户电脑上所有的*.~xdata~ 文件尾部,获取每个文件的AES-256 key。

8, 用上一步获取到的AES-256 key解密每个 被加密文件。

解密的重点在于黑客手上的RSA private key!黑客在解密时,是不能提供自己的私钥的,*.key.~xdata~文件中就是一个加密对称密钥,黑客只需要解密这个文件还原AESkey,这里和数字信封原理是一样的。

黑客还用了一些技巧,每个文件都采用不同的对称密钥,和临时RSA Session private key ,这里是数字信封的原理用了2遍,做了一次嵌套。

个人感觉RSA Session private key,没有给加密系统增加安全性。如果我来做,用主AES key加密每个文件的AES key。这个观点大家是否支持?

参考文献:

1.XData勒索病毒加密方式剖析及解密工具 https://www.freebuf.com/sectool/136540.html

2. WannaCry勒索病毒,是这么一回事 https://www.guokr.com/article/442167

3. PKCS1签名&PKCS7签名&PKCS7信封格式 http://blog.sina.com.cn/s/blog_6a17ac950102w1ka.html

猜你喜欢

转载自blog.csdn.net/u011893782/article/details/106559456