勒索病毒一直是安全產業的一個熱點,近期安全人員發現了一款名為rapid的勒索病毒,該勒索病毒使用了RSA加AES對檔案進行加密,它不僅會感染電腦上已有的文件,還會對新建立的文件進行加密。本文對rapid病毒進行了詳細分析,剖析其加密機制,解析其加密後的檔案。
當rapid病毒運行時,它會創建多個執行緒不斷掃描檔案系統,進行檔案加密,它不僅會感染計算機上的已有文件,也會對新建立的文件進行加密。加密的文件,其檔案名稱被添加“.rapid”擴展名,同時文件大小增加了0x4D0位元組。
rapid病毒將在進行加密的資料夾中建立一個名為「How Recovery Files.txt」的勒索提示文件,檔案中包含一個電子郵件,讓受害者聯繫如何完成付款。使用者重新啟動電腦,將自動彈出名為「recovery.txt」的勒索提示文件,其內容和「How Recovery Files.txt」檔案內容相同。
使用蘭眼(LanyEye)下一代威脅感知系統對rapid程式進行偵測。在蘭眼中,rapid程式被標示為高風險:
接下來對rapid程式進行逆向分析。
首先程式呼叫ShellExecuteA執行如圖所示指令:
主要作用包括清除Windows卷影拷貝,防止受害者使用卷影拷貝恢復文件。停用系統修復和自動修改功能,勒索程式可能加密驅動檔案導致系統頻繁崩潰,停用修復功能,忽略錯誤降低系統崩潰機率。終止oracle.exe、sqlite.exe、sql.exe進程,一方面,可以釋放內存,另一方面,可以解除這些資料庫進程對某些檔案的佔用。
接著程式加入開機啟動項,在登錄HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run下新建Encrypter和userinfo項,Encrypter項值為“%AppData\Romaing\info.exe”,userinfo的項值為「%AppData\Romaing\recovery.txt」。 「info.exe」文件是勒索病毒程式本身的拷貝,「recovery.txt」文件是勒索資訊文件,文件內容和上述的「How Recovery Files.txt」檔案內容相同。
本次為了確保系統能夠正常運作,程式不會選取資料夾名稱為「Windows” 、「intel」、「nvidia」、「ProgramData」和「temp」下的檔案:
此勒索軟體並沒有透過後綴名過濾檔案而是判斷選取的檔案是不是“How Recovery Files.txt”、“info.exe”、“recovery.txt”,如果是其中三個檔案則跳過,剩下的全加密。
之後呼叫CryptExportKey()匯出剛剛產生的RSA2私鑰數據,並呼叫RSA1公鑰對RSA2私鑰加密。加密完成後,將RSA私鑰資料寫入登錄機碼HKEY_CURRENT_USER\Software\EncryptKeys\local_enc_private_key,將資料長度寫入登錄項HKEY_CURRENT_USER\Software\EncryptKeys\local_enc_private_#len_USER\Software\EncryptKeys\local_enc_private_#len_lenc ##>
##再次呼叫CryptExportKey()匯出剛剛產生的隨機RSA2公鑰數據,這次不需要加密,直接寫入登錄HKEY_CURRENT_USER\Software\EncryptKeys\local_public_key和HKEY_CURRENT_USER\Software\Encrypts\local_public_key和HKEY_CURRENT_USER\Software\Encrypts\local_public_key和HKEY_CURRENT_USER\Software\Encrypts\Key之後開始對檔案進行加密,取得選取檔案的大小,如果檔案大小小於0x4D0位元組,則直接進入加密流程;否則讀取檔案尾部0x20位元組的數據,並判斷這部分數據是否有加密標誌“F5 D5 CD CD CD 7D CD CD 95 91 C1 C1 CD AD CD CD 41 CD 41 CD C1 99 FD 1D 59 95 81 FD 99 79 25 A5”,如果不是則進入加密流程,否則選取下一個檔案。因為加密過的檔案是大於0x4D0的,並且在其檔案尾部添加了0x20個位元組的加密標誌
程式進入加密流程後,會先呼叫CryptGenKey()產生隨機AES密鑰。
2017年是勒索病毒高發的一年,可以預見2018年這種狀態仍將持續,我們每一個人都應該提高警惕,切勿打開來自可疑郵箱的附件,避免使用第三方軟體資源,安裝防毒軟體,降低安全隱憂。
以上是如何進行Rapid勒索病毒分析與檢測的詳細內容。更多資訊請關注PHP中文網其他相關文章!