您好,登錄后才能下訂單哦!
?前言:
?WannaCry利用永恒之藍漏洞爆發以后,病毒安全的前沿對抗最頻繁種類則是勒索病毒了,17年初或者更早就有人捕獲了GandCrab家族的勒索病毒,直到18年已經更新迭代到了5.0版本,18年進入尾聲的時候,安全研究人員發現了GandCrab勒索病毒的V5.1最新版變種。
?對于勒索個人看法:當第一次聽說勒索病毒的時候,就感覺一定是無法抗拒的利益驅動,才會讓某一群人去迭代、維護、研發勒索病毒。這道理就像開了一家公司一樣,能把病毒走向全世界,已經是很成功了,看似簡單,其實背后的關聯復雜。除了加密算法的復雜程度之外,勒索的潛伏與隱蔽(字符串混淆加密)也是比較到位。
?其實不管怎樣,那些API還是那些API,即使自己實現相仿得函數,時間足夠也能從函數功能與匯編,加以邏輯去推理過程,從而實現、還原。
?
1、預熱(收集系統信息、提權、注冊表操作、兼容匹配、加密解密關鍵字符串等)
2、枚舉掃描(網絡共享、資源枚舉,遍歷掃描文件)
3、加密文件(過濾、匹配的文件以不同方式進行加密)
4、收尾工作(發送勒索信息、刪除病毒、銷毀進程等)
?基本所分析的病毒大多數都會這樣干,因為他既要保證你系統的穩定性,也要保證自己的安全與功能的實現,這樣才能勒索到錢......
???????????????????????????????ps:文章最后附思維導圖
?
?預熱分析:
1、線上分析:
????????????????????圖片一:線上分析
????????????????????圖片二:樣本信息
?
2、工具分析:
????????????????????圖片三:exeinfo pe
?
?詳細分析:
①拉入IDA也許你會看到花指令混淆,如下所示:
????????????????????圖片四:花指令混淆
?②如上圖所示,GandCrab.00426F7A函數會標志勒索病毒要開始了,當你發現桌面彈窗"我們很快就會回來",恭喜已經中了GandCrab勒索病毒,如下所示:
????????????????????圖片五:MessageBox
?③GandCrab.00405FF7函數先是創建快照,遍歷進程,怕加密文件的時候影響加密效果,如文件被占用等問題,如下所示:
????????????????????圖片六:初始化字符串
????????????????????圖片七:遍歷對比進程
????????????????????圖片八:匹配進程結束
?④如圖三中GandCrab.00405944是最為核心的函數,先來看看獲取windows版本信息,獲取SID也就是說當前的權限等級,如下所示:
????????????????????圖片九:Windows版本信息
????????????????????圖片十:當前權限級別
?⑤GandCrab.004054BA函數對注冊表中鍵盤布局鍵值獲取,獲取當前用戶和系統的默認安裝語言,比對如果匹配到419(俄羅斯),422(烏克蘭) ,423(比利時)等等,那么將執行刪除文本且結束進程,這意味著不進行勒索......,如下所示:
????????????????????圖片十一:鍵值循環
????????????????????圖片十二:匹配成功
?⑥繼續線性跟蹤,GandCrab.00405016函數負責獲取系統信息,檢索了磁盤目錄關聯的文件系統和卷的信息,然后用磁盤的數據hash獲取隨機字符串,創建.lock互斥體:
????????????????????圖片十三:創建互斥體
⑦GandCrab.0040586C函數,加密與異或字符串獲取公鑰1,如下所示:
????????????????????圖片十四:獲取RSA1
⑧參數入棧,安全進程掃描,關鍵系統數據異或解密,如下所示:
????????????????????圖片十五:入棧參數
????????????????????圖片十六:示意圖
????????????????????圖片十七:系統數據拼接
????????????????????圖片十八:安全服務遍歷
????????????????????圖片十九:拼接后數據
????????????????????圖片二十:解密
⑨系統不顯示critical-error-handler消息框,異常不顯示,初始化臨界區,如下所示:
????????????????????圖片二十一:SetErrorMode
?⑩如上圖所示,GandCrab.00404DC5函數是GandCrab勒索的核心函數,先是利用微軟提供的CSP系列函數獲取隨機數,如下所示:
????????????????????圖片二十二:GetModuleHandleA
?解密字符串,解密后發現是文件名的后綴,如下所示:
????????????????????圖片二十三:文件后綴名
?隨機生成密鑰,且導出公鑰,私鑰,如下所示:
????????????????????圖片二十四:導出Key
?接著創建了注冊表ex_data\data,并且設置了隨機字符,如下所示:
????????????????????圖片二十五:設置注冊表
?導入公鑰,加密了數據:
????????????????????圖片二十六:硬編碼公鑰導入
?創建了key_datas\datas,設置了public=公鑰,private=硬編碼加密后私鑰(還加了隨機數等數據)
????????????????????圖片二十七:注冊表設置
?有意思的賦值方式,push入棧,pop彈出給寄存器,賦值給內存變量,如下所示:
????????????????????圖片二十八:賦值方式
?使用了Base64加密了之前的密鑰,然后拼接勒索警告字符串與獲取的pc數據,如下所示:
????????????????????圖片二十九:勒索警告
?下面壓入了文件后綴格式,應該準備枚舉網絡資源,遍歷文件,加密文件了,如下所示:
????????????????????圖片三十:GandCrab.00403D8E
?內部創建了兩個線程,線程分析一,如下所示:
????????????????????圖片三十一:回調函數
????????????????????圖片三十二:局域網枚舉
????????????????????圖片三十四:遍歷局域網下文件目錄與磁盤
????????????????????圖片三十五:遞歸掃描
????????????????????圖片三十六:加密過濾
????????????????????圖片三十七:加密過程
????????????????????圖片三十八:硬編碼公鑰加密文件
?線程分析二,如下所示:
?
????????????????????圖片三十九:本地文件加密且退出進程
最后調用了函數GandCrab.00405252執行了 ShellExecute,執行了如下指令:
?
??樣本中關于利用CVE漏洞提權代碼沒有分析,因為在測試環境下沒有匹配0x1000,跳過了提權函數,上述有很多分析點不夠精準,但是還原了樣本的整體邏輯。
?關于硬編碼公鑰加密研究,使用的是CSP又稱"加密服務提供者(Cryptographic Service Provider)",微軟提供的一套API,后續有機會一起實現與深入研究一番。
?
思維導圖:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。