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

想要硬剛勒索病毒,脫密加密的文件,是很難的。之前,我已經介紹了數字簽名,勒索病毒使用了公鑰加密另一個常用應用“數字信封”技術。

想要恢復勒索病毒加密的文件,可以破解黑客的公鑰,或者破解黑客加密文件的臨時對稱密鑰。而這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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章