您好,登錄后才能下訂單哦!
如何進行Rapid勒索病毒分析與檢測,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
勒索病毒一直是安全行業的一個熱點,近期安全人員發現了一款名為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”,如果是其中三個文件則跳過,剩下的全加密。
程序首先創建了一個PROV_RSA_FULL類型的CSP容器,然后將通過Base64的硬編碼在程序中的RSA的公鑰(命名為RSA1)導入。
接著程序會查看是否存在注冊表項“local_public_key”。如果沒有則會創建注冊表項“local_public_key”
程序創建了一個PROV_RSA_FULL類型的CSP容器,并且調用CryptGenKey()生成了隨機RSA密鑰對(命名為RSA2)。
之后調用CryptExportKey()導出剛剛生成的RSA2私鑰數據,并調用RSA1公鑰對RSA2私鑰加密。加密完成后,將RSA私鑰數據寫入注冊表項HKEY_CURRENT_USER\Software\EncryptKeys\local_enc_private_key,將數據長度寫入注冊表項HKEY_CURRENT_USER\Software\EncryptKeys\local_enc_private_key_len
再次調用CryptExportKey()導出剛剛生成的隨機RSA2公鑰數據,這次不需要加密,直接寫入注冊表HKEY_CURRENT_USER\Software\EncryptKeys\local_public_key和HKEY_CURRENT_USER\Software\EncryptKeys\local_public_key_len。
之后開始對文件進行加密,獲取選取文件的大小,如果文件大小小于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密鑰。
并調用CryptExportKey()導出AES密鑰數據,BLOBTYPE=PLAINTEXTKEYBLOB:
如圖所示返回數據長度0x2C,0x3A42A8-0x3A42AF是BLOBHEADER ,0x3A42B0-0x3A42B3是keysize,0x3A42B4-0x3A42D3是AES的密鑰,0x3A42D4-0x3A4327則是使用0xCD填充的數據:
使用RSA2公鑰加密AES密鑰,加密的是上文中提到的“BLOB格式數據+AES密鑰+填充數據”這整個0x80字節的數據:
讀取文件數據,使用AES密鑰對讀取的文件數據進行加密 :
AES加密是按照128bit進行分組,當原文件字節數不是128bit的整數倍時,加密后的密文數據將會大于明文數據,所以程序在加密前在明文尾部填充了0x10個字節的0x00(一個AES分組的字節數)。
向文件覆寫加密后的數據,首先只寫入原文件大小的密文數據,變多的0x10字節的數據接下來再寫;
繼續向文件中寫數據,寫入0x4D0字節的數據。這0x4D0字節的數據包括五部分:第一部分0x10字節,這部分就是變多的數據;第二部分0x20字節,包含源文件文件大小的字符串和0xCD的填充數據;第三部分0x80字節,是被加密的AES密鑰數據;第四部分0x400字節,是被加密的RSA2私鑰數據;第五部分0x20字節,是文件加密標志數據。
在文件名后添加“.rapid”擴展名:
顯示勒索信息
至此,我們已經分析完了rapid勒索軟件的文件加密流程,接下來我們來分析被加密后的文件。
假設一個大小為0x9000字節的文件被rapid程序加密,加密后的文件結構如下:
rapid勒索病毒使用數字簽名(RSA_AES-256)對文件進行加密,文件解密需要獲取數字簽名的私鑰。但是,數組簽名的私鑰使用RSA加密,在沒有RSA私鑰的情況下,很難獲取數字簽名的私鑰,文件恢復的難度極大。
2017年是勒索病毒高發的一年,可以預見2018年這種狀態仍將持續,我們每一個人都應該提高警惕,切勿打開來自可疑郵箱的附件,避免使用第三方軟件資源,安裝防病毒軟件,降低安全隱患。
關于如何進行Rapid勒索病毒分析與檢測問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。