0
在網(wǎng)絡技術不斷發(fā)展的同時,一系列的網(wǎng)絡惡意軟件也在不斷衍生。勒索軟件是黑客用來劫持用戶資產(chǎn)或資源并以此為條件向用戶勒索錢財?shù)囊环N惡意軟件。最近非常火熱的CryptXXX又有了變種,新版CryptXXX變得更加兇悍了。
新版CryptXXX勒索軟件不僅能夠加密目標用戶電腦和網(wǎng)絡上的所有文件,用戶還還無法用數(shù)據(jù)備份來恢復文件——這是新版CryptXXX的重要功能升級之一。
卡巴斯基實驗室的安全研究人員一直都在與CryptXXX作斗爭:先前研究人員曾發(fā)布過一個解密工具,受害者不需要支付贖金就能恢復自己的文件;要是沒有解密工具的話,受害者至少需要支付500美元才能解密文件。CryptXXX的開發(fā)者發(fā)現(xiàn)卡巴斯基的這一舉動后,也開始調(diào)整程序代碼使得破解過程變成更加困難。最近開發(fā)者就發(fā)布了一個新版本的CryptXXX。安全公司SentinelOne本周一的一篇博客中提到,在6月4日-6月21日之間,新版本的贖金總數(shù)已經(jīng)達到45228美元,當然這不包括前面版本的收入。
實際早在5月21日的時候,CryptXXX的開發(fā)者就將該惡意軟件的代碼更新至3.0版本。此次更新的目的就是為了防止卡巴斯基推出的RannohDecryptor解密程序,免費解鎖被加密的文件。
新版本CryptXXX仍舊支持對單個文件進行加密,不過文件尺寸限定在512KB。新版本的主要改進在于破解難度加大了不少。其他改進還包括,相較之前.crypz和.crypt后綴,新版CryptXXX生成加密文件的后綴統(tǒng)一為.crypt1;還有就是前面提到的,針對系統(tǒng)shadow volume卷備份的刪除,防止數(shù)據(jù)可從備份恢復。另外,其傳播是通過垃圾郵件進行的,但SentinelOne表示,黑客可能還用到了其他傳播途經(jīng)。
查看惡意DLL文件屬性,發(fā)現(xiàn)它的文件屬性細節(jié)其實來自某個名為_BigBang.dll的合法文件,兩者的細節(jié)信息基本上是一樣的。
其實從這樣的文件細節(jié)信息,根本看不出什么異樣,令其看起來就像一般程序。先前的CryptXXX樣本還會偽裝成微軟的合法DLL文件。從unpacker的imports來看,絕大部分內(nèi)容也好像問題不大,偶爾有一些跟crypto加密相關的詞匯出現(xiàn)。從imports和exports列表的情況來看,很多函數(shù)是相關圖像處理的(和上面提到合法的_BigBang.dll肯定是完全不一樣了),似乎并沒有什么卵用,這些應該是用來妨礙分析的。
Unpack過程是通過VirtualAlloc為加密payload分配內(nèi)存,然后復制加密字節(jié)。隨后payload解密,但仍舊是壓縮過的。
根據(jù)上一版本的經(jīng)驗在這里可以尋找“MZ”頭,但卻找到了“M8ZP8”以及一部分可讀的字符串“This ? progr3am…”,其實這對Windows可執(zhí)行文件而言是很正常的。M8ZP8頭與aPLiB壓縮PE文件相符。
點擊這里查看Python腳本,里面有其壓縮具體的算法實施,和運行的技術描述詳情。首先dump包含壓縮payload的內(nèi)存片段,修剪null字節(jié),用上述Python腳本成功解壓。得到的文件再用IDA進行分析,實際上并不完整,而且也不包含有效的導入表(import table)。
payload解密之后,unpacker創(chuàng)建文件C:\PROGRA~2\Z (c:\ProgramData\Z),該文件會通過kernel32.GetFileType來核查,檢查是否為FILE_TYPE_CHAR。如果是的話,在不執(zhí)行惡意payload的情況下,代碼結束。隨后,當前時間、文件名,外加\r\n,寫入到Z文件中。像下面這樣:
這些字符串寫入文件后不久,這個文件就會被刪除。不清楚為什么要這么做,可能是用來干擾分析過程的。
然后unpaker通過查詢注冊表來確認Startup的位置:
SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup(Win7環(huán)境下的路徑)
這個位置的作用其實很明確,Unpack代碼會在里面放入HTML勒索信,這也算是勒索過程的重點嘛。
從分析的樣本來看,是從某個.Ink快捷方式執(zhí)行,該快捷方式指向rundll32.exe F0F3.tmp.dll,MSX3。此處,后面的,MSX3是個附加參數(shù),這句命令就是加載F0F3.tmp.dll,隨后執(zhí)行MSX3函數(shù)。實際上unpacker里面并不存在MSX3函數(shù),所以應該是payload的一部分。
所以也就很有可能是通過調(diào)用VirtualProtect來轉儲unpack過后的payload。既然需要確認MSX3函數(shù)的地址,我就在GetProcAddress建立一個斷點。
取回MSX3的地址之后,執(zhí)行跳往該地址,文件加密、勒索行為也就開始了。
似乎payload使用Delphi編譯的,通過如下信息可知。從下面這個列表來看,部分imports似乎還用到了DNS、POP3以及SMTP協(xié)議。不過這些函數(shù)相較MSX3,應該是通過不同的入口點來調(diào)用的。
最終,被勒索軟件鎖定的文件使用RSA和RC4混合加密,加密之后的文件擴展名為.cryp1,之前版本的擴展名為.crypt。如前面提到的,前一版本可以通過解密工具進行解密,但是新版本就無法實現(xiàn)了。
被加密過的文件所在的每個文件夾里面都會有勒索信。其中一封是文本文件,另一封就是HTML格式了。文本形式的勒索信是下面這樣的:
如前文提到的新版CryptXXX加入的新特性:文件完成加密后,磁盤上所有的備份文件都會被刪除,防止用戶用文件恢復這一招。
顯示在屏幕上的勒索信息是這個樣子的:
為了進一步警告用戶問題的嚴重性,CryptXXX還會在
路徑下,創(chuàng)建<RANSOM ID>.html以及<RANSOM ID>.bmp兩個文件。其實也是勒索信,不過跟前面提到的略有不同,重啟計算機之后就會出現(xiàn):
點擊進入支付頁面,頁面會讓受害者填寫相應信息,就是勒索軟件分配的ID:
用這個ID登錄之后,就會顯示如下頁面:
如果受害者都沒聽過比特幣,或者不會用比特幣支付,那么也不要緊,下面這個頁面會教你怎么做的。
為了證明他們的確能夠提供解密服務,下面這個頁面主要是供受害者進行解密服務的試用(服務很貼心),但這個所謂的試用服務,解密文件的大小限定在512KB之內(nèi)。
其實要避免勒索軟件感染,就如同避免其他惡意軟件一樣。保持Windows 和瀏覽器相關的組件(Java, Adobe等)獲得最新的更新。此外,也要保持瀏覽器干凈,注意預防能導致惡意感染的廣告軟件的侵入,還有不輕易打開來源不明的郵件附件。這次新版的CryptXXX具備刪除磁盤shadow volume備份文件的能力,那么其實也可以考慮將重要的文件備份到其他位置。
雷鋒網(wǎng)注:本文參考來源:arstechnica、sentinelone,由飯團君編譯,F(xiàn)reeBuf獨家文章授權雷鋒網(wǎng)發(fā)布,轉載請注明出處(FreeBuf黑客與極客FreeBuf.COM)。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。