電腦安全 - WanaKiwi - WannaCry不完美解密工具+病毒加密原理簡介 - 電腦

前往內容


WanaKiwi - WannaCry不完美解密工具+病毒加密原理簡介

在國外科技網站看到此消息,決定發到這裡分享一下,首先想解密的人不要抱太高的期待,使用這個工具需要的條件很嚴苛,首先中毒後電腦不可關機,原因是因為斷電後記憶體所有資訊都會遺失,第二此方法是透過抓取記憶體中殘留用來生成加密金鑰的質數,就算沒關機該資訊也有蠻高的可能性被其他東西覆蓋掉導致解密失敗

假設不符合條件一的人可以直接跳過此方法,沒重開機的人建議馬上試用此方法,反正死馬當活馬醫也不會再損失什麼
WanaKiwi適用於Windows XP, Windows 7, Windows Vista, Windows Server 2003 和 2008

下載地址 (解壓後執行wanakiwi.exe)

WanaKiwi的運作方式:
昨天安全研究人員Adrien Guinet發現了WannaCry在生成金鑰後使用的系統內建Windows Crypt APIs來清除記憶體中的私鑰,不過在舊版Windows中該API有漏洞導致生成加密金鑰的質數會殘留在記憶體中,擷取成功的話可以用來反推加密私鑰,Adrien Guinet發佈了可以在Windows XP上使用的WannaKey工具,今天另一名研究人員Benjamin Delpy將此方式使用到Windows 7上取得成功,發佈了更新版的WanaKiwi解密工具。

按這裡檢視外部影片 (按這裡在新視窗中開啟影片)

同場加映WannaCry的加密方式簡介:

首先對加密原理不太熟的人解釋對稱與非對稱加密,對稱加密代表加密與解密都是用同一把金鑰,對稱加密比較有名的是AES加密法,對稱加密的好處為速度快以及強度非常高,但缺點為只能用在本地端,就跟你無法把一個上鎖的盒子和鑰匙一起寄給別人,因為中途被攔截就可以直接被打開了。非對稱加密解決了這個通信問題,最有名的為RSA加密法,RSA加密利用了電腦無法有效的計算質數分解問題的弱點,使用兩個非常龐大的質數來形成一對金鑰,用其中一個金鑰加密後只能用另一個與其配對的金鑰進行解密,如此一來就可以在本地端儲存一把金鑰叫做私鑰,另一把則對外公布叫做公鑰,當甲要把資訊寄給乙,甲就用乙的公鑰加密這樣該檔案就只有擁有自己私鑰的乙才打得開,甲同時也可以附上一段用自己私鑰加密的訊息,讓乙可以用甲的公鑰來確認發件者的身份,非對稱加密的缺點為加密速度慢。

每一個勒索病毒的加密方式都略有不同,以下的解釋僅限定於WannaCry,目前比較先進的勒索病毒具備了以下幾個特性:可以離線加密、加密速度快讓被害人察覺的可能性降低、讓作者具有解密能力、以及高安全性,這些先進的勒索病毒通常會使用Hybrid Encryption混合了對稱與非對稱加密的優點,將這次的WannaCry 勒索病毒除了以上提到的Windows系統API漏洞外也使用了Hybrid Encryption具備了以上所有的特性,首先每個病毒都事先內建了作者的RSA-2048公鑰(簡稱RSA2),使病毒不需要向作者私服器要求金鑰,讓WannaCry具有離線加密的能力,當毒發時WanaCry會在被害者的本地端建立另一組每個受害者都不同的加密用的RSA公鑰(存放在00000000.pky)與私鑰,加密用私鑰會被病毒用作者的公鑰(RSA2)加密,然後存放在00000000.eky,接下來病毒使用系統內建的Windows Crypt APIs清除記憶體中儲存的加密私鑰,讓被害者無法用其解密,病毒會對每一個要被加密的檔案用隨機生成的獨特AES-128金鑰加密,然後每個檔案的AES加密金鑰會被用剛剛生成的加密用公鑰00000000.pky加密。

由於檔案主要是用AES對稱加密法加密所以具有對稱加密速度快的特性,但是要解密時則需要與00000000.pky對應的私鑰(00000000.eky的解密版)來先解密每個檔案的AES金鑰,要獲取00000000.eky的解密版除非用上面提到的記憶體漏洞,在不花上幾十幾百年暴力破解的情況下就只能付款後把00000000.eky寄給作者,用作者的私鑰(與RSA2對應的金鑰)解密,當然作者會不會真的幫你解密就不知道了。

除了使用以上WanaKiwi工具或付款賭賭看外,另一個有可能救回部分檔案的方式是使用磁碟救援工具,但是根據賽門鐵克研究人員的分析WannaCry會對儲存在桌面(Desktop)、我的文件(My Documents)、以及任何可移除硬碟中的檔案磁區複寫,導致磁碟救援工具失效,不過儲存在以上這三個地點外的檔案在沒被其他東西複寫前是有可以被磁碟救援工具救援的可能性。

參考來源:
https://medium.com/threat-intel/wannacry-ransomware-decryption-821c7e3f0a2b
https://blog.comae.io/wannacry-decrypting-files-with-wanakiwi-demo-86bafb81112d
https://www.wired.com/2017/05/wannacry-flaw-help-windows-xp-victims-get-files-back/
kkk123kkk123kkk wrote:
在國外科技網站看到...(恕刪)


這個很神奇
先打卡一下⋯⋯

不過要中毒後不關電腦
正常人應該很難辦到⋯⋯⋯

通常反射動作都是直接關機
關了機就沒救了

而且即屎沒關
也會上網找解藥

在上網過程中你的ram早就被更新覆蓋掉無數次了⋯⋯
正常人的ram頂多8G 16G

即使是存在page file內也是很容易被複寫⋯⋯

所以這工具雖然第一時間可以救
可是也必須一中毒立刻執行才有希望救回⋯⋯⋯⋯

只適合公司mis人員預先下載在隨身碟準備急救的強心針吧⋯⋯🤣
kkk123kkk123kkk wrote:
在國外科技網站看到此...(恕刪)

打卡一下。純猜測,金鑰的部份應該在主機跟伺服器上都有一份,至於藏在那個檔案就要找找了。
kkk123kkk123kkk wrote:
在國外科技網站看到...(恕刪)


這文章不錯,內容都正確。
我想補充的是,不只需幾十、幾百年的暴力破解,以下舉例。

以 RSA-512 的 512 bits 長度可以表現出質數大約是 10 的 150 次方個,數量超過全宇宙存在的原子!! 注意,是全宇宙喔。
假設 100 億人,每人、每秒產生 100 億個金鑰對,則經過 100 億年所產生的金鑰對,大約可以暴力破解一下 10 的 39 次方次,別提上面講的 10 的 150 次方,而且這還只是用到 512 bits 的長度,更遑論 RSA-2048, 是以 2048 bits 長度的兩個隨機的質數所組成 ...

以數學上看,這是所謂的離散對數問題,除非未來可以發現另外的方法很快來解,要有,保證你就是下一屆諾與貝爾獎同級的 xx 獎得主了,因為諾貝爾沒有數學獎...
實在想不透MS為何要讓windows留下那麼多漏洞?? 連這內建API也有一堆漏洞..難道真是故意的與其政府單位合作??
專業文
kkk123kkk123kkk wrote:
在國外科技網站看到此...(恕刪)
kkk123kkk123kkk wrote:
記憶體中殘留用來生成加密金鑰(恕刪)

所以說WannaCry加密的原理是先將檔案寫入記憶體中再加密>.<???
假如是這樣子的話!那是不是單一檔案容量如果超過記憶體容量就無法載入加密
什麼都丟!小尾巴跟緊我!!逆襲★續寫傳奇*傳奇再現★

噹可物 wrote:
所以說WannaCry...(恕刪)


別忘了,硬碟也是記憶體的一種輔助記憶體,所以你想太多了。
RSA加密法的發明人,
大概也無法想像他們的發明,
被惡用成作惡工具,
對40多年後的電腦還是一樣無法解密的存在。

噹可物 wrote:
所以說WannaCry加密的原理是先將檔案寫入記憶體中再加密>.<???
假如是這樣子的話!那是不是單一檔案容量如果超過記憶體容量就無法載入加密...(恕刪)


你認真的嗎?.....

並不是把檔案寫入記憶體後加密,也不是某樓講的暫存檔案也是記憶體一部份這種錯誤的補充解釋。

1頁 (共3頁)

前往