安天安全研究與應急處理中心(安天CERT)發現一款新的勒索軟件家族,名為“Locky”,它通過RSA-2048和AES-128算法對100多種文件類型進行加密,同時在每個存在加密文件的目錄下釋放一個名為_Locky_recover_instructions.txt的勒索提示文件。經過安天CERT研究人員分析發現,這是一類利用垃圾郵件進行傳播的勒索軟件,是首例具有中文提示的比特幣勒索軟件。
病毒名稱 | Trojan/Win32.Locky.a |
原始文件名 | ladybi.exe |
MD5 | FB6CA1CD232151D667F6CD2484FEE8C8 |
處理器架構 | X86-32 |
文件大小 | 180 KB (184,320 字節) |
文件格式 | BinExecute/Microsoft.EXE[:X86] |
時間戳 | 42B63E17->2005-06-20 11:55:03 |
數字簽名 | NO |
加殼類型 | 無 |
編譯語言 | Microsoft Visual C++ 6.0 |
VT首次上傳時間 | 2016-02-16 10:53:39 |
VT檢測結果 | 41/55 |
該勒索軟件“Locky”使用綁架用戶數據的方法對用戶進行敲詐勒索。它通過RSA-2048和AES-128算法對100多種文件類型進行加密,同時在每個存在加密文件的目錄下釋放一個名為_Locky_recover_instructions.txt的勒索提示文件。
“Locky”樣本的本地行為:復制自身到系統臨時目錄%Temp%下,并重新命名為svchost;對系統中的文件進行遍歷,判斷文件后綴名是否在樣本內置的列表中,若存在,則對樣本進行加密操作;在多個文件夾中創建提示文件_Locky_recover_instructions.txt;在桌面上創建文件_Locky_recover_instructions.bmp;并將該文件設置為桌面背景,提示用戶如何操作可以成功恢復被加密的文件;添加相關注冊表鍵值;刪除系統還原快照。
復制自身到%Temp%目錄下名為svchost.exe,并添加啟動項。
加密上百種文件類型如下:
.m4u .m3u .mid .wma .flv .3g2 .mkv .3gp .mp4 .mov .avi .asf .mpeg .vob .mpg .wmv .fla .swf .wav .mp3 .qcow2 .vdi .vmdk .vmx .gpg .aes .ARC .PAQ .tar.bz2 .tbk .bak .tar .tgz .gz .7z .rar .zip .djv .djvu .svg .bmp .png .gif .raw .cgm .jpeg .jpg .tif .tiff .NEF .psd .cmd .bat .sh .class .jar .java .rb .asp .cs .brd .sch .dch .dip .pl .vbs .vb .js .asm .pas .cpp .php .ldf .mdf .ibd .MYI .MYD .frm .odb .dbf .db .mdb .sql .SQLITEDB .SQLITE3 .asc .lay6 .lay .ms11 .sldm .sldx .ppsm .ppsx .ppam .docb .mml .sxm .otg .odg .uop .potx .potm .pptx .pptm .std .sxd .pot .pps .sti .sxi .otp .odp .wb2 .123 .wks .wk1 .xltx .xltm .xlsx .xlsm .xlsb .slk .xlw .xlt .xlm .xlc .dif .stc .sxc .ots .ods .hwp .602 .dotm .dotx .docm .docx .DOT .3dm .max .3ds .xml .txt .CSV .uot .RTF .pdf .XLS .PPT .stw .sxw .ott .odt .DOC .pem .p12 .csr .crt .key
對路徑和文件名中包含下列字符串的文件不進行加密:
tmp, Application Data, AppData, Program Files (x86), Program Files, temp, thumbs.db, $Recycle.Bin, System Volume Information, Boot, Windows
“Locky”添加的注冊表項:
#!bash
HKCU\Software\Locky
HKCU\Software\Locky\id
HKCU\Software\Locky\pubkey
HKCU\Software\Locky\paytext
HKCU\Software\Locky\completed
HKCU\Control Panel\Desktop\Wallpaper "%UserProfile%\Desktop\_Locky_recover_instructions.bmp"
刪除系統還原快照
通過調用vssadmin.exe Delete Shadows /All /Quiet
刪除全盤所有卷影副本,使受害系統不能夠通過卷影副本進行系統還原。
網絡行為:
1.3.1 域名生成算法
“Locky”樣本會首先使用函數rdtsc獲取處理器時間,將該值與某變量進行求余運算,通過對該值的判斷來決定樣本是訪問使用算法生成的域名,還是直接訪問樣本中的硬編碼IP地址。這樣可以使樣本具有一定的隨機性。
圖1 域名生成算法
域名在生成的時候,需要使用一個隨機數,該隨機數的計算是根據被感染機器的年月日進行的。
圖2 隨機值計算
1.3.2 C&C服務器
受害主機與服務器是使用HTTP Post請求進行交互。受害主機訪問C&C服務器上的main.php,參數有以下幾個:
參數 | 含義 |
---|---|
id | 隨機生成的編號 |
act | C&C控制命令 |
affid | 會員ID |
lang | 計算機所使用的語言 |
corp | 未知 |
serv | 未知 |
os | 操作系統 |
sp | 補丁包 |
x64 | 是否為64位系統 |
受害主機所有發出的請求都使用樣本中硬編碼的key進行加密操作,加密后發送到C&C服務器。從服務器中接收的數據包同樣使用特定的加密方法加密,接收到加密數據后,“Locky”會首先進行解密操作。
加密的數據包部分內容:
圖3 數據包內容
數據包發送時加密的算法:
圖4 加密算法
接收到數據時,樣本的解密算法:
圖5 解密算法
1.3.3 控制命令
目前所知道的控制命令有四種,分別為:stats、getkey、report、gettext。
命令 | 功能 |
---|---|
stats | 發送一些基本信息,如:已成功加密的文件個數、加密失敗的文件個數、長度。 |
getkey | 從服務器上下載加密時使用的RSA的公鑰。 |
report | 向服務器發送加密的文件列表。 |
gettext | 獲取提示用戶如何解密的信息,C&C服務器會根據回傳的計算機所使用的語言來返回對應的語言提示信息,如:回傳zh會返回漢語、回傳en會返回英語。 |
中文的提示信息如下:
圖6 提示內容
通過安天CERT目前的分析來看,勒索軟件“Locky”的功能與之前分析的勒索軟件【1】的功能基本一致。勒索軟件能給攻擊者帶來巨大的收益,因其使用比特幣進行交易,所以很難追蹤;一旦用戶感染了勒索軟件,只能付費進行解密或是丟棄這些文件。安天CERT提示廣大用戶,即使支付贖金也不一定能保證可以完全恢復被加密的文件。防止數據被加密,更應該注意勒索軟件的防御,養成良好的上網使用習慣,不要輕易執行來歷不明的文件。
“Locky”和其他勒索軟件的目的一致,都是加密用戶數據并向用戶勒索金錢。與其他勒索軟件不同的是,它是首例具有中文提示的比特幣勒索軟件,這預示著勒索軟件作者針對的目標范圍逐漸擴大,勒索軟件將發展出更多的本地化版本。
安天CERT預測,今后中國將受到更多類似的勒索軟件攻擊。所以,如何防御勒索便成為保衛網絡安全的重要任務之一。