對勒索病毒的逆向分析
基礎知識:
1.需要具備一定的開發能力
2.熟悉匯編語言
3.PE文件結構的掌握
工具使用:
熟練掌握以下常用工具的功能,基于以下工具展開詳細分析,可以對病毒樣本進行一個詳細流程和功能分析,從而分析還原出關鍵的病毒功能,及研究對應的對抗方案。

樣本分析流程

對一個病毒樣本或者軟件詳細分析,一般可以通過五個步驟進行分析樣本功能:樣本基本屬性、樣本結構、樣本靜態分析、樣本功能行為監控、樣本動態分析。基于以上的五個步驟基本上可以分析出詳細的樣本功能實現。
樣本基本信息
通過PEID、ExeInfoPE工具分析出樣本的幾個基本屬性。
通過Hasher工具可以分析出樣本的MD5、sha1、CRC32的屬性值。
PEID、ExeInfoPE兩個工具原理:
通過解析PE文件結構解析出樣本的區段信息、通過匹配征碼方式匹配出樣本是否加殼、加什么殼,樣本開發語言和開發工具。


樣本功能分析
病毒樣本功能可以從幾個維度分析:自啟動(服務器,注冊表)、釋放文件、網絡通信、加密解密。
主要通過靜態IDA分析和動態ollydbg分析相結合,通過IDA分析出樣本中的流程結構(也重點關注下導入表信息,字符串信息),然后再針對每個函數進行分析,函數中的參數傳遞和返回值信息通過ollydbg工具附加下斷點進行動態調試分析。
以下流程圖是整個病毒樣本的功能流程,主要就是進行系統服務操作,利用微軟的SMB漏洞進行445端口漏洞的嘗試、釋放真正的勒索病毒樣本。

樣本在IDA工具中的main函數的流程結構

樣本入口函數的關鍵功能函數實現的解析

惡意代碼功能解析

開始對445端口漏洞嘗試功能解析

進行內網445端口漏洞嘗試功能實現解析

進行外網445端口漏洞嘗試功能實現解析

漏洞嘗試的效果展示

釋放真正的勒索病毒文件
通過從應用程序的資源部分進行釋放出病毒樣本exe和dll模塊,并將樣本的exe和dll模塊釋放到C盤的windows目錄下,以偽裝成為系統程序。

釋放樣本文件效果展示
通過procmon工具,并進行針對病毒樣本進程進行監控,可以實際監控到樣本釋放文件的操作。

釋放勒索病毒功能梳理

釋放出來的樣本在IDA中展示main函數的流程結構(直接用拖入方式即可)

樣本main函數流程中的關鍵函數進行解析

樣本中將比特幣賬號采用硬編碼方式直接寫在代碼中

采用微軟的加解密算法,通過調用系統CryptDecrypt和CryptDecrypt函數用于進行加解密ZIP文件。

動態釋放模塊進行判斷釋放出來的文件是否是標準PE文件(判斷PE文件的DOS頭部分“MZ”,在進行判斷NT頭的PE簽名信息“PE”)

勒索病毒對以下所有后綴文件進行加密,這些后綴文件基本覆蓋所有類型的文件。

(僅分享樣本大概功能流程,還有如核心的加解密算法相關的功能沒有進行分析)
對勒索病毒的一點思考
1.預防中病毒通用方案
- 在系統上安裝病毒查殺軟件并及時更新病毒特征庫并定時查殺(建議安裝火絨)。
- 從互聯網上下載的文件、程序進行查看數字簽名有效性,并手動掃描查詢文件。
- 使用移動存儲介質時,進行查殺病毒后再進行打開。
- 不隨意打開、安裝陌生或來路不明的軟件。
2.分析勒索病毒
- 斷網的虛擬機環境
- PE文件解析工具進行靜態PE文件分析。
- IDA靜態流程和ollydbg動態流程分析。
3.勒索病毒預防解決方案
- 主動關閉系統中135、137、139、445端口。
- 創建一個互斥體名稱為Global\\MsWinZonesCacheCounterMutexA,讓勒索病毒程序 啟動不起來(僅功能的對抗思路)。
- 及時更新系統補丁程序。
- 定期備份重要的數據在不同位置(網盤、移動硬盤)。