Crysis勒索病毒家族從2016年出現至今已達近4年的傳播歷史,無論是在傳播手段上還是在核心功能的程式碼實現上都鮮有改動,算得上是最“不思進取”的勒索病毒家族之一了。但近日,360安全大腦監測到,“佛系”的Crysis勒索病毒家族有了新的動作,出現了新的病毒變種。透過對捕獲的變種病毒樣本分析發現,該版變種最大的改動是整合了多個工具便於投毒者瞭解當前系統中存在的防毒軟體、加密時的CPU佔用率等資訊,同時還可以將未掛載的裝置掛載到本地以求儘可能多的加密檔案。
不過,廣大使用者不必太過擔心,360安全衛士已可對這一Crysis勒索病毒變種進行強力攔截查殺,保護廣大使用者網路安全。
程式碼分析
相較於之前版本的病毒透過EXE檔案本身攜帶加密主體載荷的方式,當前版本的Crysis是一個自解壓檔案,解壓路徑為程式所在的執行目錄。該自解壓檔案會釋放出兩個powershell指令碼和兩個可執行檔案。
這四個檔案的主要功能如下
l takeaway.ps1:獲取當前系統中的反病毒軟體資訊
l purgeMemory.ps1:刪除備份資料、日誌、停止服務及程式等
l NS2.exe:掃描本地和網路資源中所有卷並對尚未掛載的進行掛載
l winhost.exe:主要功能程式,負責加密檔案
takeaway.ps1
所有檔案釋放完畢後,takeaway.ps1指令碼會被首先執行。該指令碼會獲取反病毒軟體資訊並在終端進行展示。
在遠端投毒過程中,該勒索病毒有很大可能會被查殺,獲取反病毒資訊能更快讓投毒者知道該使用者機器上存在哪些反病毒軟體,方便投毒者進行應對(大多數投毒者登入到使用者系統後會先選擇解除安裝掉防毒軟體)。
之後,會呼叫另一個powershell執行指令碼purgeMemory.ps1,並啟動掃描掛載模組NS2.exe。
接著刪除兩個指令碼Takeaway.ps1和purgeMemory.ps1,再執行加密模組winhost.exe。
根據pid修改之前執行的winhost.exe程式執行優先順序為最高,並監控winhost執行過程中的CPU佔用率。
purgeMemory.ps1
該指令碼主要用於刪除備份資料、日誌、停止服務以及程式等操作。
l 刪除卷影的目的主要是為防止透過卷影來恢復被加密的資料。
l 關閉指定的服務和程式。這些服務和程式主要包括伺服器、資料庫、office辦公工具等多種相關程式,關閉他們是為了防止它們正在佔用資料檔案或文件,導致加密失敗
l 清空系統日誌,以圖最大程度隱藏自己的蹤跡
NS2.exe
NS2.exe模組用於掃描本地和網路資源中所有卷,並對未掛載捲進行掛載,以求儘可能多地增加可被加密的資料。
但是從執行情況來看,需要外部向程式控制臺輸入指令才能進行下一步操作,還並未將其加入自動化中。
將本地未掛載捲進行掛載。同時列舉網路資源,將可訪問的網路資源對映到本地。
winhost.exe
winhost.exe主要是加密模組,該模組透過對大量資料RC4加密、替換IAT表等方式躲避反病毒軟體的檢查,並一定程度地反分析。
Winhost.exe和之前分析過的老版本Crysis功能十分相似,除了勒索檔案部分內容、加密檔案字尾等不同點,其他部分幾乎一致。
關閉目標服務和程式
首先是關閉目標服務和程式,主要包括資料庫、郵箱等,目的是為了防止資料庫檔案被佔用導致加密失敗。
FirebirdGuardianDefaultInstance
FirebirdServerDefaultInstance
sqlwriter
mssqlserver
sqlserveradhelper
1c8.exe
1cv77.exe
outlook.exe
postgres.exe
mysqld-nt.exe
mysqld.exe
sqlservr.exe
自啟動&卷影刪除&提升許可權
病毒將會嘗試將自身複製系統目錄、自啟動目錄下。
%windir%\\System32
%appdata%
%sh(Startup)%
%sh(Common Startup)%
如果複製成功,將%windir%\\System32目錄下的winhost.exe加入登錄檔自啟動項Software\\Microsoft\\Windows\\CurrentVersion\\Run,實現開機自啟動。
之後透過命令刪除卷影備份,避免受害者透過卷影恢復被加密的資料
如果當前執行許可權非管理員,winhost.exe則以管理員許可權重新執行自身,以求獲得更大的許可權、加密更多的檔案。
搜尋檔案進行加密
和之前版本Crysis病毒一樣,雖然執行過程中會透過RC4對稱演算法解密處大量的檔案字尾名,並且也會進行比較,但實際上並未對指定型別的字尾進行過濾。
搜尋時跳過目錄%WINDIR%以及字尾為.HCK的加密檔案,並避過以下檔名:
boot.ini
bootfont.bin
ntldr
ntdetect.com
io.sys
FILES ENCRYPTED.txt(勒索信)
Info.hta(勒索資訊檔案)
檔案加密方式
檔案加密時採用AES對稱加密演算法,生成32位元組隨機值作為全域性金鑰,用於加密所有檔案。加密每個檔案時,為每個檔案生成不同的IV,採用CBC加密模式。
同時,病毒對不同大小的檔案會採用不同的加密方式。
如果檔案小於等於1.5MB,winhost將建立一個新檔案,將原檔案內容加密後寫入其中,然後刪除原檔案。
如果檔案大於1.5MB,病毒則為原檔案新增副檔名,從檔案首部、中部、尾部分別讀取256KB內容進行加密,加密結果寫於檔案尾部,讀取的資料原本位置將被全部置0。
所有被加密後的檔案尾部將包含以下資訊:
加密標誌常量
原檔名
“2K63V7”
SHA-1(RSA_PubKey)
初始向量IV
Padding位元組數
RSA_ENC(AES_KEY)
尾部長度
(大於1.5M的檔案還會寫入片段間隔)
為加密後的檔案新增副檔名,id為系統盤的序列號:
.id-<hex_str(SystemDriveSerialNummber)>.[cavefat@tuta.io].HCK
以大於1.5MB檔案為例,檔案加密後結構以及加密流程如下圖:
總體而言,該病毒的加密功能從核心演算法上較之前的版本並沒有實質性的變化。使用這種已被廣泛應用的成熟加密方案,最大的作用在於以目前的計算機算力幾乎無法實現對被加密檔案的技術破解。也就大大提升了病毒透過加密勒索錢財的成功率。
勒索資訊提示檔案
winhost.exe將在每個被加密目錄下建立一個勒索資訊檔案FILES ENCRYPTED.txt。另外還將在啟動目錄下建立檔案info.hta,系統啟動時將執行該檔案以提醒使用者,使用者ID即為系統盤的序列號。
攔截與防護
Crysis算是比較“老牌”的勒索病毒了。360始終保持這對該病毒的強力攔截。
也正因如此,此次Crysis新變種才會把入侵手段作為主要的更新方向。不過相應的,360對入侵的防護也毫不懈怠,任何試圖透過弱口令入侵後手動投毒的行為,360都會第一時間進行攔截。
在此也要提醒廣大使用者:
多臺機器,不要使用相同的賬號和口令
登入口令要有足夠的長度和複雜性,並定期更換登入口令
重要資料的共享資料夾應設定訪問許可權控制,並進行定期備份
定期檢測系統和軟體中的安全漏洞,及時打上補丁。
定期到伺服器檢查是否存在異常。檢視範圍包括:
是否有新增賬戶
Guest是否被啟用
windows系統日誌是否存在異常
防毒軟體是否存在異常攔截情況
不建議支付贖金,支付贖金不僅變相鼓勵了勒索攻擊行為,而且解密的過程還可能會帶來新的安全風險。常見的勒索病毒,很多隻加密檔案頭部資料,對於某些型別的檔案(如資料庫檔案),可以嘗試透過資料修復手段來挽回部分損失。如果不得不支付贖金的話,可以嘗試和駭客協商來降低贖金價格,同時在協商過程中要避免暴露自己真實身份資訊和緊急程度,以免駭客漫天要價。