首頁 > 運維 > 安全 > 主體

如何進行Rapid勒索病毒分析與檢測

王林
發布: 2023-05-13 18:10:06
轉載
1387 人瀏覽過

勒索病毒一直是安全產業的一個熱點,近期安全人員發現了一款名為rapid的勒索病毒,該勒索病毒使用了RSA加AES對檔案進行加密,它不僅會感染電腦上已有的文件,還會對新建立的文件進行加密。本文對rapid病毒進行了詳細分析,剖析其加密機制,解析其加密後的檔案。

1.概述

當rapid病毒運行時,它會創建多個執行緒不斷掃描檔案系統,進行檔案加密,它不僅會感染計算機上的已有文件,也會對新建立的文件進行加密。加密的文件,其檔案名稱被添加“.rapid”擴展名,同時文件大小增加了0x4D0位元組。

如何進行Rapid勒索病毒分析與檢測    

rapid病毒將在進行加密的資料夾中建立一個名為「How Recovery Files.txt」的勒索提示文件,檔案中包含一個電子郵件,讓受害者聯繫如何完成付款。使用者重新啟動電腦,將自動彈出名為「recovery.txt」的勒索提示文件,其內容和「How Recovery Files.txt」檔案內容相同。

如何進行Rapid勒索病毒分析與檢測

2.詳細分析

使用蘭眼(LanyEye)下一代威脅感知系統對rapid程式進行偵測。在蘭眼中,rapid程式被標示為高風險:

如何進行Rapid勒索病毒分析與檢測    

接下來對rapid程式進行逆向分析。

首先程式呼叫ShellExecuteA執行如圖所示指令:

如何進行Rapid勒索病毒分析與檢測    

主要作用包括清除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」檔案內容相同。

如何進行Rapid勒索病毒分析與檢測    

如何進行Rapid勒索病毒分析與檢測    

本次為了確保系統能夠正常運作,程式不會選取資料夾名稱為「Windows” 、「intel」、「nvidia」、「ProgramData」和「temp」下的檔案:

如何進行Rapid勒索病毒分析與檢測    

此勒索軟體並沒有透過後綴名過濾檔案而是判斷選取的檔案是不是“How Recovery Files.txt”、“info.exe”、“recovery.txt”,如果是其中三個檔案則跳過,剩下的全加密。

如何進行Rapid勒索病毒分析與檢測    

##2.1.

加密過程

   如何進行Rapid勒索病毒分析與檢測

#程式首先建立了一個PROV_RSA_FULL類型的CSP容器,然後將透過Base64的硬編碼在程式中的RSA的公鑰(命名為RSA1)匯入。   


   如何進行Rapid勒索病毒分析與檢測

#接著程式會檢視是否有登錄項目「local_public_key」。如果沒有則會建立登錄項目「local_public_key」

   如何進行Rapid勒索病毒分析與檢測

程式建立了一個PROV_RSA_FULL類型的CSP容器,並且呼叫CryptGenKey()產生了隨機RSA金鑰對(命名為RSA2)。

   如何進行Rapid勒索病毒分析與檢測

之後呼叫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

如何進行Rapid勒索病毒分析與檢測

之後開始對檔案進行加密,取得選取檔案的大小,如果檔案大小小於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個位元組的加密標誌

如何進行Rapid勒索病毒分析與檢測    

程式進入加密流程後,會先呼叫CryptGenKey()產生隨機AES密鑰。

如何進行Rapid勒索病毒分析與檢測
   

並呼叫CryptExportKey()匯出AES金鑰數據,BLOBTYPE=PLAINTEXTKEYBLOB:

如何進行Rapid勒索病毒分析與檢測
   

如何進行Rapid勒索病毒分析與檢測

如何進行Rapid勒索病毒分析與檢測

如何進行Rapid勒索病毒分析與檢測

如何進行Rapid勒索病毒分析與檢測

如何進行Rapid勒索病毒分析與檢測

如何進行Rapid勒索病毒分析與檢測

如何進行Rapid勒索病毒分析與檢測

#所示回傳資料長度0x2C,0x3A42A8-0x3A42AF是BLOBHEADER ,0x3A42B0-0x3A42B3是keysize,0x3A42B4-0x3A42D3是AES的金鑰,0x3xA42D4-00xA42# #    

使用RSA2公鑰加密AES金鑰,加密的是上文中提到的「BLOB格式資料AES金鑰填入資料」這整個0x80位元組的資料:

   如何進行Rapid勒索病毒分析與檢測

讀取檔案數據,使用AES金鑰對讀取的檔案資料進行加密 :

###    ##########AES加密是按照128bit進行分組,當原文件位元組數不是128bit的整數倍時,加密後的密文數據將會大於明文數據,所以程式在加密前在明文尾部填充了0x10個字節的0x00(一個AES分組的位元組數)。 ######向文件覆寫加密後的數據,首先只寫入原文件大小的密文數據,變多的0x10字節的數據接下來再寫;######繼續向文件中寫入數據,寫入0x4D0位元組的數據。這0x4D0字節的資料包括五個部分:第一部分0x10字節,這部分就是變多的資料;第二部分0x20字節,包含來源檔案檔案大小的字串和0xCD的填充資料;第三部分0x80字節,是加密的AES金鑰資料;第四部分0x400字節,是加密的RSA2私鑰資料;第五部分0x20字節,是檔案加密標誌資料。 #########    #########在檔案名稱後面加上「.rapid」副檔名:#########    ##########顯示勒索資訊######### ######至此,我們已經分析了rapid勒索軟體的檔案加密流程,接下來我們來分析加密後的檔案。 ######3.###加密檔案解析#########假設一個大小為0x9000位元組的檔案被rapid程式加密,加密後的檔案結構如下:####### ###    #########rapid勒索病毒使用數位簽章(RSA_AES-256)對檔案進行加密,檔案解密需要取得數位簽章的私鑰。但是,陣列簽署的私鑰使用RSA加密,在沒有RSA私鑰的情況下,很難取得數位簽章的私鑰,檔案復原的難度極高。 ###

2017年是勒索病毒高發的一年,可以預見2018年這種狀態仍將持續,我們每一個人都應該提高警惕,切勿打開來自可疑郵箱的附件,避免使用第三方軟體資源,安裝防毒軟體,降低安全隱憂。

以上是如何進行Rapid勒索病毒分析與檢測的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!