您好,登錄后才能下訂單哦!
如何進行Rapid勒索病毒分析與檢測,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
勒索病毒一直是安全行業(yè)的一個熱點,近期安全人員發(fā)現(xiàn)了一款名為rapid的勒索病毒,該勒索病毒使用了 RSA加AES對文件進行加密,它不僅會感染計算機上已有的文件,還會對新創(chuàng)建的文件進行加密。本文對rapid病毒進行了詳細分析,剖析其加密機制,解析其加密后的文件。
當rapid病毒運行時,它會創(chuàng)建多個線程不斷掃描文件系統(tǒng),進行文件加密,它不僅會感染計算機上的已有文件,還會對新創(chuàng)建的文件進行加密。被加密的文件,其文件名被添加“.rapid”擴展名,同時文件大小增加了0x4D0字節(jié)。
rapid病毒將在進行加密的文件夾中創(chuàng)建名為“How Recovery Files.txt”的勒索提示文件,文件中包含一個電子郵件,讓受害者聯(lián)系如何完成付款。用戶重啟電腦,將自動彈出名為“recovery.txt”的勒索提示文件,其內容和“How Recovery Files.txt”文件內容相同。
使用蘭眼(LanyEye)下一代威脅感知系統(tǒng)對rapid程序進行檢測。在蘭眼中,rapid程序被標記為高危:
接下來對rapid程序進行逆向分析。
首先程序調用ShellExecuteA執(zhí)行如圖所示命令:
主要作用包括清除Windows卷影拷貝,防止受害者使用卷影拷貝恢復文件。禁用系統(tǒng)修復和自動修改功能,勒索程序可能加密驅動文件導致系統(tǒng)頻繁崩潰,禁用修復功能,忽略錯誤降低系統(tǒng)崩潰概率。終止oracle.exe、sqlite.exe、sql.exe進程,一方面,可以釋放內存,另一方面,可以解除這些數(shù)據(jù)庫進程對某些文件的占用。
接著程序添加開機啟動項,在注冊表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run下新建Encrypter和userinfo項,Encrypter項值為“%AppData\Romaing\info.exe”,userinfo的項值為“%AppData\Romaing\recovery.txt”?!癷nfo.exe”文件是勒索病毒程序自身的拷貝,“recovery.txt”文件是勒索信息文件,文件內容和上文提到的“How Recovery Files.txt”文件內容相同。
本次為了保證系統(tǒng)能夠正常運行,程序不會選取文件夾名稱為“Windows”、“intel”、“nvidia”、“ProgramData”和“temp”下的文件:
此勒索軟件并沒有通過后綴名過濾文件而是判斷選取的文件是不是“How Recovery Files.txt”、“info.exe”、“recovery.txt”,如果是其中三個文件則跳過,剩下的全加密。
程序首先創(chuàng)建了一個PROV_RSA_FULL類型的CSP容器,然后將通過Base64的硬編碼在程序中的RSA的公鑰(命名為RSA1)導入。
接著程序會查看是否存在注冊表項“l(fā)ocal_public_key”。如果沒有則會創(chuàng)建注冊表項“l(fā)ocal_public_key”
程序創(chuàng)建了一個PROV_RSA_FULL類型的CSP容器,并且調用CryptGenKey()生成了隨機RSA密鑰對(命名為RSA2)。
之后調用CryptExportKey()導出剛剛生成的RSA2私鑰數(shù)據(jù),并調用RSA1公鑰對RSA2私鑰加密。加密完成后,將RSA私鑰數(shù)據(jù)寫入注冊表項HKEY_CURRENT_USER\Software\EncryptKeys\local_enc_private_key,將數(shù)據(jù)長度寫入注冊表項HKEY_CURRENT_USER\Software\EncryptKeys\local_enc_private_key_len
再次調用CryptExportKey()導出剛剛生成的隨機RSA2公鑰數(shù)據(jù),這次不需要加密,直接寫入注冊表HKEY_CURRENT_USER\Software\EncryptKeys\local_public_key和HKEY_CURRENT_USER\Software\EncryptKeys\local_public_key_len。
之后開始對文件進行加密,獲取選取文件的大小,如果文件大小小于0x4D0字節(jié),則直接進入加密流程;否則讀取文件尾部0x20字節(jié)的數(shù)據(jù),并判斷這部分數(shù)據(jù)是不是加密標志“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個字節(jié)的加密標志
程序進入加密流程后,會先調用CryptGenKey()生成隨機AES密鑰。
并調用CryptExportKey()導出AES密鑰數(shù)據(jù),BLOBTYPE=PLAINTEXTKEYBLOB:
如圖所示返回數(shù)據(jù)長度0x2C,0x3A42A8-0x3A42AF是BLOBHEADER ,0x3A42B0-0x3A42B3是keysize,0x3A42B4-0x3A42D3是AES的密鑰,0x3A42D4-0x3A4327則是使用0xCD填充的數(shù)據(jù):
使用RSA2公鑰加密AES密鑰,加密的是上文中提到的“BLOB格式數(shù)據(jù)+AES密鑰+填充數(shù)據(jù)”這整個0x80字節(jié)的數(shù)據(jù):
讀取文件數(shù)據(jù),使用AES密鑰對讀取的文件數(shù)據(jù)進行加密 :
AES加密是按照128bit進行分組,當原文件字節(jié)數(shù)不是128bit的整數(shù)倍時,加密后的密文數(shù)據(jù)將會大于明文數(shù)據(jù),所以程序在加密前在明文尾部填充了0x10個字節(jié)的0x00(一個AES分組的字節(jié)數(shù))。
向文件覆寫加密后的數(shù)據(jù),首先只寫入原文件大小的密文數(shù)據(jù),變多的0x10字節(jié)的數(shù)據(jù)接下來再寫;
繼續(xù)向文件中寫數(shù)據(jù),寫入0x4D0字節(jié)的數(shù)據(jù)。這0x4D0字節(jié)的數(shù)據(jù)包括五部分:第一部分0x10字節(jié),這部分就是變多的數(shù)據(jù);第二部分0x20字節(jié),包含源文件文件大小的字符串和0xCD的填充數(shù)據(jù);第三部分0x80字節(jié),是被加密的AES密鑰數(shù)據(jù);第四部分0x400字節(jié),是被加密的RSA2私鑰數(shù)據(jù);第五部分0x20字節(jié),是文件加密標志數(shù)據(jù)。
在文件名后添加“.rapid”擴展名:
顯示勒索信息
至此,我們已經分析完了rapid勒索軟件的文件加密流程,接下來我們來分析被加密后的文件。
假設一個大小為0x9000字節(jié)的文件被rapid程序加密,加密后的文件結構如下:
rapid勒索病毒使用數(shù)字簽名(RSA_AES-256)對文件進行加密,文件解密需要獲取數(shù)字簽名的私鑰。但是,數(shù)組簽名的私鑰使用RSA加密,在沒有RSA私鑰的情況下,很難獲取數(shù)字簽名的私鑰,文件恢復的難度極大。
2017年是勒索病毒高發(fā)的一年,可以預見2018年這種狀態(tài)仍將持續(xù),我們每一個人都應該提高警惕,切勿打開來自可疑郵箱的附件,避免使用第三方軟件資源,安裝防病毒軟件,降低安全隱患。
關于如何進行Rapid勒索病毒分析與檢測問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。