1. 程式人生 > >[知乎]火絨 前一天的關於微信支付的病毒說明.

[知乎]火絨 前一天的關於微信支付的病毒說明.

一、 概述

昨天(12月1日)突發的"微信支付"勒索病毒,已被火絨安全團隊成功破解。被該病毒感染的使用者可以下載破解工具,還原被加密的檔案。下載地址:

 

 

據火絨安全團隊分析,該勒索病毒開始勒索前,會在本地生成加密、解密相關資料,火絨工程師根據這些資料成功提取到了金鑰。

此外,該勒索病毒只加密使用者的桌面檔案,並會跳過一些指定名稱開頭的目錄檔案, 包括"騰訊遊戲、英雄聯盟、tmp、rtl、program",而且不會感染使用gif、exe、tmp等副檔名的檔案。

值得一提的是,該病毒會利用帶有騰訊簽名的程式呼叫病毒程式碼,來躲避安全軟體的查殺。

"火絨安全軟體"已於昨天緊急升級,可攔截、查殺該病毒,廣大使用者如果遇到新情況,可通過火絨官方論壇、微博、微信公眾號等渠道,隨時向火絨安全團隊反映或求助。

 

二、 樣本分析

近期火絨接到使用者反饋,使用微信二維碼掃描進行勒索贖金支付的勒索病毒Bcrypt正在大範圍傳播。使用者中毒重啟電腦後,會彈出勒索資訊提示視窗,讓使用者掃描微信二維碼支付110元贖金進行檔案解密。病毒作者謊騙使用者稱"因金鑰資料較大如超出個這時間(即2天后)伺服器會自動刪除金鑰,此解密程式將失效",但實際解密金鑰存放在使用者本地,在不訪問病毒作者伺服器的情況下,也完全可以成功解密。如下圖所示:

勒索提示視窗

病毒程式碼依靠"白加黑"方式被呼叫,用於呼叫病毒程式碼的白檔案帶有有效的騰訊數字簽名。由於該程式在呼叫動態庫時,未檢測被呼叫者的安全性,所以造成名為libcef.dll的病毒動態庫被呼叫,最終執行惡意程式碼。被病毒利用的白檔案數字簽名信息,如下圖所示:

被病毒利用的白檔案數字簽名信息

該病毒執行後,只會加密勒索當前使用者桌面目錄下所存放的資料檔案,並且會對指定目錄和副檔名檔案進行排除,不進行加密勒索。被排除的目錄名,如下圖所示:

 

被排除的目錄名

 

在病毒程式碼中,被排除的副檔名之間使用"-"進行分割,如:-dat-dll-,則不加密勒索字尾名為".dat"和".dll"的資料檔案。相關資料,如下圖所示:

被排除的副檔名

目錄名和副檔名排除相關程式碼,如下圖所示:

 

排除目錄名

排除副檔名

值得注意的是,雖然病毒作者謊稱自己使用的是DES加密演算法,但是實則為簡單異或加密,且解密金鑰相關資料被存放在%user% \AppData\Roaming\unname_1989\dataFile\appCfg.cfg中。所以即使在不訪問病毒作者伺服器的情況下,也可以成功完成資料解密。病毒中的虛假說明資訊,如下圖所示:

病毒中的虛假說明資訊

加密相關程式碼,如下圖所示:

資料加密

在之前的使用者反饋中,很多使用者對勒索提示視窗中顯示的感染病毒時間頗感困惑,因為該時間可能遠早於實際中毒時間(如前文圖中紅框所示,2018-08-08 06:43:36)。實際上,這個時間是病毒作者用來謊騙使用者,從而為造成來的虛假時間,是通過Windows安裝時間戳 + 1440000再轉換成日期格式得來,Windows安裝時間戳通過查詢登錄檔方式獲取,登錄檔路徑為:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate。病毒作者使用這個虛假的中毒時間誤導使用者,讓使用者誤以為病毒已經潛伏了較長時間。相關程式碼,如下圖所示:

虛假感染時間顯示相關程式碼