模仿Locky的中文勒索軟件分析
時間 : 2021年06月11日 來源: 安天CERT
1、概述
近日,安天CERT發現了一個勒索語言為中文的勒索軟件。該勒索軟件采用.net語言編寫,模仿Locky勒索軟件,對加密的文件追加“.locky”后綴名。其最早出現于2020年9月,試圖采用非對稱加密RSA、對稱加密AES和XOR加密三種加密方式任意一種方式進行加密。由于其非對稱加密RSA和對稱加密AES部分功能未完善,安天CERT推測該樣本可能為測試版本。本次分析的樣本采用的加密策略是XOR加密,通過該方式加密的文件可以解密。
安天CERT在分析的過程中發現該勒索軟件包含解密程序,在勒索窗口中存在一個按鍵“查詢當前付款狀態及解密”。當用戶點擊該按鍵時,該勒索軟件獲取比特幣錢包地址,連接比特幣官網查詢當前該賬戶錢包余額是否大于等于0.045BTC,若大于則進行相應的解密操作,同時發現目前有一個比特幣錢包地址收到了0.05BTC。
經驗證,安天智甲終端防御系統(簡稱IEP)的勒索軟件防護模塊可有效阻止該勒索軟件的加密行為。
2、勒索軟件對應ATT&CK映射圖譜
該勒索軟件技術特點分布圖:
圖2-1 勒索軟件技術特點對應ATT&CK的映射
具體ATT&CK技術行為描述表:
表2-1 具體技術行為描述表
ATT&CK階段/類別 |
具體行為 |
注釋 |
執行 |
誘導用戶執行 |
誘導用戶執行郵件中的附件 |
持久化 |
利用自啟動執行或登錄 |
添加注冊表實現自動啟 |
發現 |
發現文件和目錄 |
枚舉系統內文件和目錄 |
發現進程 |
獲取進程名稱判斷惡意代碼是否執行 |
|
影響 |
損毀數據 |
XOR指定后綴名文件的前100byte |
篡改可見內容 |
XOR指定后綴名文件的前100byte |
3、防護建議
針對該勒索軟件安天建議個人及企業采取如下防護措施:
3.1 個人防護
(1) 安裝終端防護:安裝反病毒軟件。建議使用安天智甲的用戶開啟勒索病毒防御工具模塊(默認開啟);
(2) 加強口令強度:避免使用弱口令,建議使用16位或更長的口令,包括大小寫字母、數字和符號在內的組合,同時避免多個服務器使用相同口令;
(3) 及時更新補丁:建議開啟自動更新功能安裝系統補丁,服務器應及時更新系統補丁;
(4) 定期數據備份:定期對重要文件進行數據備份,備份數據應與主機隔離;
(5) 確認郵件來源:接收郵件時要確認發送來源是否可靠,避免打開可疑郵件中的網址和附件。
3.2 企業防護
(1) 開啟日志:開啟關鍵日志收集功能(安全日志、系統日志、PowerShell日志、IIS日志、錯誤日志、訪問日志、傳輸日志和Cookie日志),為安全事件的追蹤溯源奠定基礎;
(2) 設置IP白名單規則:配置高級安全Windows防火墻,設置遠程桌面連接的入站規則,將使用的IP地址或IP地址范圍加入規則中,阻止規則外IP進行暴力破解;
(3) 主機加固:對系統進行滲透測試及安全加固;
(4) 災備預案:建立安全災備預案,確保備份業務系統可以快速啟用;
(5)安全服務:若遭受勒索軟件攻擊,建議及時斷網,并保護現場等待安全工程師對計算機進行排查。安天提供7*24小時安全服務熱線:400-840-9234。
目前,安天智甲終端防御系統可實現對該勒索軟件的查殺與有效防護。
圖3-1 安天智甲有效防護
圖3-2 安天智甲阻止修改文件行為
4、勒索軟件概覽
表4-1 勒索軟件概覽
加密文件命名方式 |
<原文件名>+.locky |
聯系方式 |
無 |
加密文件類型 |
試圖采用非對稱加密RSA、對稱加密AES和XOR加密三種加密方式任意一種方式進行加密。本次分析的樣本采用的加密策略是XOR加密,采用指定長度的字符XOR指定文件前100byte字符。 |
勒索幣種與金額 |
0.05個比特幣 |
是否有針對性 |
未發現 |
能否解密 |
能 |
是否內網傳播 |
否 |
勒索窗口 |
|
5、樣本分析
5.1 樣本標簽
表5-1 樣本標簽
病毒名稱 |
Trojan/MSIL.locky |
原始文件名 |
Leen.exe |
MD5 |
B0E68A3352D31A9DD403A5ACAE6387A0 |
處理器架構 |
Intel 386 or later,
and compatibles |
文件大小 |
127.50 KB (130,560
字節) |
文件格式 |
Win32 EXE |
時間戳 |
2069-12-23 16:26:41(偽造) |
數字簽名 |
無 |
加殼類型 |
無 |
編譯語言 |
.NET |
VT首次上傳時間 |
2020-09-19 17:36:41 |
VT檢測結果 |
51/70 |
5.2 樣本行為
5.2.1 勒索初始化
該中文勒索軟件使用.net語言編寫。其運行后,首先通過獲取進程名稱判斷惡意代碼是否執行,若已執行則彈出“應用執行中,請勿重復執行,首次執行需耗時20分鐘初始化”窗口,并退出程序。
圖5-1 彈出窗口
判斷“%USERNAME%\Documents\Driver”目錄下是否存在b.print文件且文件內容為“6688123”,若存在則表示用戶文件已交納贖金后解密,無需再加密,則退出程序,否則重復加密。所以該文件可作為該勒索軟件的免疫文件。
圖5-2 判斷文件中的標志
使用IE瀏覽器打開hxxps://lihi1.cc/4kdW2(失陷主機、釣魚網站),判斷是否可以連接網絡。
圖5-3 IE瀏覽器打開網址測試網絡
若連接網絡成功則將自身復制到“%USERNAME%\Documents\WindowsShell”目錄下,并將文件屬性設置為隱藏。
圖5-4 復制自身到相關目錄下
打開CMD命令行,將其窗口隱藏,運行“%USERNAME%\Documents\WindowsShell”下的復制過來的樣本并將自身程序退出。
圖5-5 以隱藏模式打開命令行窗口
將“%USERNAME%\Documents\WindowsShell”目錄下的自身添加到注冊表實現開機自啟動。
圖5-6 將自身添加到注冊表
5.2.2 加密方式
安天CERT通過對該勒索軟件分析發現其試圖采用非對稱加密RSA、對稱加密AES和XOR加密三種加密方式任意一種方式進行加密。通過對傳入的參數不同進行相應的不同加密方式,如下所示:
圖5-7 三種加密方式
在本次所分析的樣本中采用的加密策略為XOR加密,所以通過該方式加密的文件可以進行解密。XOR加密密鑰如下表所示:
表5-2 XOR加密字符
XOR加密密鑰 |
類型 |
1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5 |
Byte |
XOR加密具體加密方式為采用指定長度的字符XOR指定文件前100byte字符。
圖5-8 指定長度的字符XOR指定文件前100byte字符
獲取用戶主機上磁盤信息,如下圖所示:
圖5-9 獲取用戶主機上磁盤信息
進入加密函數中LockTXTFiles加密函數進行加密。如下圖所示:
圖5-10 采用XOR方式進行加密
試圖模仿Locky勒索軟件,對加密的文件追加“.locky”后綴名。具體格式為:<原文件名>+.locky。如下圖所示:
圖5-11 添加“.locky”后綴名
在分析的過程中發現該勒索軟件的非對稱加密RSA和對稱加密AES尚未完成,推測其為測試樣本。如下所示非對稱加密RSA函數內容為空。
圖5-12 非對稱加密RSA函數內容為空
5.2.3 指定后綴名的文件
針對指定后綴名的文件進行加密,指定的后綴名如下表所示:
表5-3 勒索軟件指定的后綴名
.gif |
.jpg |
.txt |
.png |
.xlsx |
.ppt |
.html |
.pdf |
.xls |
.doc |
.docx |
.pptx |
.aam |
.abf |
.adb |
.adi |
.afm |
.ai |
.all |
.anc |
.aps |
.ari |
.art |
.asc |
.ase |
.asm |
.asp |
.avi |
.bak |
.bat |
.c |
.cad |
.cap |
.ccb |
.cda |
.cdf |
.class |
.clss |
.com |
.cpp |
.crt |
.mov |
.csv |
.db |
.go |
.ini |
.jpeg |
.java |
.jar |
.js |
.mpeg |
.mp4 |
.wav |
.mp3 |
.py |
.pot |
.pon |
.ra |
.rtf |
.vbs |
.vbp |
.vba |
.wps |
5.2.4 樣本衍生文件
在運行的過程中會衍生多個文件并將文件進行隱藏,具體衍生文件路徑與文件名及其功能如下表所示:
表5-4 衍生文件路徑與文件及其功能
衍生文件路徑與文件名 |
功能 |
%USERNAME%\Documents\Driver\a.print |
加密后的比特幣地址 |
%USERNAME%\Documents\Driver\aaa.print |
記錄比特幣金額倍數 |
%USERNAME%\Documents\Driver\KKK.print |
勒索軟件運行日志 |
%USERNAME%\Documents\Driver\t.print |
記錄軟件窗口倒計時的時間 |
%USERNAME%\Documents\Driver\b.print |
記錄加密過的標志 |
%USERNAME%\Documents\Driver\K.log |
(推測)記錄加密RSA密鑰 |
%USERNAME%\Documents\Driver\K.
print |
(推測)記錄AES密鑰 |
%USERNAME%\Documents\WindowsShell\
HttpAgilityPack.dll |
未知 |
判斷“HttpAgilityPack.dll”是否在“%USERNAME%\Documents\WindowsShell”目錄下存在,若不存在則創建HttpAgilityPack.dll。讀取HttpAgilityPack.dll中是否存在“ot”,“main”字符串,不存在則寫入“ot 0 main”字符串。由于HttpAgilityPack.dll在該勒索軟件中并未被調用,其功能未知。
圖5-13 HttpAgilityPack.dll文件寫入字符串
5.2.5 比特幣錢包地址
勒索軟件包含的比特幣錢包地址如下所示:
表5-5 比特幣錢包地址
1Ly1hXiXG5fa4k79of6xPm4xLYFyj5iH8N |
1L9REpvzBkWUhVKzsoLJEVLBh19Ng5jiqb |
1JXXsYGiNmVzEyuj29murEpFqc9sXr5dhn |
1FuPAucXqBXvhzzXguCyQAH7AbGHg6xfrM |
1FgbsSWNHzDnHjbxokLqe1rbjy4juSpsas |
從五個比特幣錢包地址中隨機獲取一個錢包地址與“\u0005”進行異或加密,將其保存在“%USERNAME%\Documents\Driver\a.print”文件中,待解密時讀取該文件。
圖5-14 隨機獲取一個錢包地址加密后寫入文件
安天CERT在跟蹤比特幣錢包地址時發現其中一個錢包已經收到了一個價值為0.05BTC,以本報告發布前的比特幣匯率為準,0.05BTC約為11582人民幣。
圖5-15 比特幣交易信息
5.2.6 勒索窗口
勒索軟件加密完成后在桌面彈出一個勒索窗口,提示受害者文件已被加密,繳納贖金。勒索窗口如下圖所示:
圖5-16 勒索窗口
當勒索窗口上的倒計時結束時,其會讀取衍生文件“%USERNAME%\Documents\Driver\aaa.print”獲取當前加密倍數將其提高兩倍并彈出窗口提示受害者“由于您長時間未付款,價格提升為兩倍,Sorry”。如下圖所示:
圖5-17 彈出窗口提示受害者
5.2.7 勒索軟件自帶解密方式
安天CERT在分析的過程中發現該勒索軟件包含解密程序,在勒索窗口中存在一個按鍵“查詢當前付款狀態及解密”。當用戶點擊該按鍵時,該勒索軟件針對“%USERNAME%\Documents\Driver\a.print”中內容進行解密獲取比特幣錢包地址,連接比特幣官網查詢當前該賬戶錢包余額是否大于等于0.045BTC,若大于則進行相應的解密操作。
圖5-18 勒索窗口解密按鈕
圖5-19 比較比特幣
該勒索軟件解密方式與加密方式類似,具有三種解密方式。根據所加密方式的不同所采用的解密方式不同。解密方式如下表所示:
XOR解密 |
AES解密 |
RSA解密 |
在本次所分析的樣本中采用的解密策略是XOR解密方式,所以解密所采用的解密密鑰與加密密鑰一樣。解密密鑰如下表所示:
表5-6 解密策略是XOR解密方式
XOR解密密鑰 |
類型 |
1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5,1,8,3,5,7,0,8,8,1,9,6,6,7,4,3,2,1,3,1,5 |
Byte |
具體解密方式為采用指定長度的字符XOR指定文件前100byte字符。
圖 5-20 采用指定長度的字符XOR指定文件前100byte字符
在分析的過程中發現RSA解密和AES解密功能未完善,如下所示RSA解密方式函數,讀取K.log文件獲取密鑰并未后續解密操作。
圖5-21 未完成的RSA解密方式
6、附錄:IoCs
IoCs |
b0E68A3352D31A9DD403A5ACAE6387A0 |
hxxps://lihi1.cc/4kdW2 |