天天看點

GandCrabV2.0病毒分析記錄

分析環境

吾愛破解虛拟機(XP系統) IDA 6.8 火絨劍

樣本來源

https://www.52pojie.cn/thread-712552-1-1.html

病毒檔案資訊

檔案: C:\Documents and Settings\Administrator\桌面\GandCrabV2.0 樣本 IDB\GandCrabV2.0 樣本+IDB\hmieuy.exe

大小: 315912 bytes

修改時間: 2018年3月11日 星期日, 13:28:31

MD5: F42774332FB637650FF0E524CE1B1685

SHA1: 0012363A8A6EFDD93FBD4624EE5E8DDF1F7BE8D5

CRC32: 9732F21C

行為概覽

GandCrabV2.0病毒分析記錄

查殼資訊

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

樣本無殼,通過連結器版本以及提示判斷開發環境為VS2010 C++編寫。

火絨劍動态運作分析記錄

1.執行監控

GandCrabV2.0病毒分析記錄

病毒載入運作運作所需的dll 不斷打開nslookup.exe程序(此程序用于查詢 Internet域名資訊或診斷DNS 伺服器問題,擷取被感染主機的公網IP資訊),

檔案與行為監控

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

 病毒在C:\Documents and Settings\Administrator\Application Data\Microsoft\路徑下建立iqvwlz.exePE檔案,從檔案的MD5與sha1值對比,可以推斷初始的樣本是一層包裝。

GandCrabV2.0病毒分析記錄

調用系統RSA加密庫 加密算法大機率是RSA。

系統資料庫監控
GandCrabV2.0病毒分析記錄

GandCrabV2.0病毒分析記錄

系統資料庫除大量擷取鍵值外,在HKEY_CURRENT_USER\Software\Microsoft\Windows

\CurrentVersion\RunOnce路徑下設定鍵值 用于所建立的iqvwlz.exe檔案實作自啟動。

網絡監控
GandCrabV2.0病毒分析記錄

網絡行為主要是連接配接66.171.248.178:80,擷取本機IP資訊,nslookup.exe不斷重連0.0.0.0:53初步判斷可能是沒有連接配接到C&C位址 不斷進行重連嘗試。

動态行為監控小結:病毒程式運作後在C:\Documents and Settings\Administrator\Application Data\Microsoft\目錄下建立exe檔案,通過不斷設定系統資料庫項實作exe檔案開機自啟動和長久駐留。期間有調用RSA庫可能是用RSA算法進行加密。不斷打開nslookup.exe程序查詢主機ip資訊。可能是由于無法與伺服器C&C位址進行連接配接 導緻一直無法運作勒索加密。

代碼分析

使用IDA定位main函數入口004010B4,斷點與F4結合跳過大量前面混淆進入到解密資源代碼處:

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

首先通過VirtualProtect修改區域記憶體為可讀可寫可執行,然後執行解密函數将加密資料解密為惡意代碼

解密前

GandCrabV2.0病毒分析記錄

解密後:

GandCrabV2.0病毒分析記錄

shellcode的dump大小為0x181B8 此值取edx中的參數指派與資源大小值參考 解密後進入shellcode代碼部分執行

GandCrabV2.0病毒分析記錄

解密的shellcode代碼通過擷取通路fs寄存器進入PEB結構的方式擷取kernel32.dll的基址 進而對dll的導出表進行周遊獲得相關函數的位址

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

擷取kernel32.dll位址

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

在01370000處申請大小為23400h大小的記憶體空間 寫入新的PE檔案 可dump此處記憶體另存分析

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

解密PE檔案後,程式将依次PE檔案内容拷貝到0x400000處實作加載到記憶體,後續操作中修複PE檔案IAT

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

  分析dump所得的PE檔案發現病毒通過ReflectiveLoader函數裝載解密出的惡意代碼,将含有惡意功能的dll資料到自身程序,實作dll不落地即可執行其功能躲避殺軟清除。技術手法:反射式注入

設定bp VirtualProtect斷點查找可能要執行的下一段解密資料(建立在已經知道有要改變記憶體屬性的才能執行代碼或者測試是否有類似代碼存在)

GandCrabV2.0病毒分析記錄

  在MZ位置即4120C0處設定硬體寫入斷點,重新運作,回溯可見解密dll資料過程,之後查找ReflectiveLoader函數,修改記憶體保護屬性為可讀可寫可執行。之後即進行dll檔案的IAT修複 重定位等反射式注入操作。

GandCrabV2.0病毒分析記錄

對DUMP所得的dll進行分析 dll被反射注入加載後建立新線程執行病毒功能

GandCrabV2.0病毒分析記錄

此處線程切換可以通過設定中斷于新線程定位代碼調試

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

進入新線程函數通過系統資料庫資訊查詢獲主機相關資訊 并建立互斥體

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

互斥體使用收集到的系統資訊進行CRC32加密後的ID進行拼接

GandCrabV2.0病毒分析記錄

建立新線程 完成對殺軟驅動的資訊收集 釋放自身到系統目錄 設定系統資料庫實作開機自啟的操作

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

周遊并結束部分會占用勒索加密檔案的程序

GandCrabV2.0病毒分析記錄

再次收集主機相關資訊完善勒索文本 發送到伺服器

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

調用CSP 生成RSA加密的公鑰和私鑰

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

回傳伺服器收集到的主機資訊過程

1·主機資訊收集同上

GandCrabV2.0病毒分析記錄

2·公鑰和私鑰進行base64加密

GandCrabV2.0病毒分析記錄

将收集的資訊整合進行CRC32加密後再進行base64加密 加上協定標頭部等資訊發送到伺服器

GandCrabV2.0病毒分析記錄

僞裝為火狐浏覽器進行網絡連接配接

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

建立nslookup程序使用管道方式實作通信 進行伺服器查找 循環解析politiaromana.bit,malwarehunterteam.bit,gdcb.bit

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

加密檔案部分

進入檔案加密部分後首先指定不加密檔案字尾

GandCrabV2.0病毒分析記錄

使用臨界區防多開 進入加密函數後先判斷磁盤類型 對每一個要加密的磁盤裝置使用一個線程執行加密函數

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

進入檔案加密函數後首先指定不加密檔案目錄,然後判斷檔案字尾不是.sql後建立勒索文本

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

建立勒索文本

GandCrabV2.0病毒分析記錄

根據規則尋找到加密檔案後進入具體的檔案加密過程 首先檢測檔案名是否是不可以加密的

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

具體的檔案加密函數過程上半部分

GandCrabV2.0病毒分析記錄

随機化過程 Rand1與Rand2一樣

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

公鑰加密過程 先拷貝Rand2到新記憶體空間 使用公鑰進行加密 獲得PubKeyR2和PubKeyR1

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

下半部分加密檔案過程 先通過CreateFileW ReadFile組合将要加密的檔案内容映射到記憶體

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

進入資料加密函數後以0x10大小為機關與Rand1進行逐位異或

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

大于10位元組 進入加密函數

GandCrabV2.0病毒分析記錄

在加密函數中先使用Rand2資料異或加密前面Rand1加密後的0x10位元組

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

前0x10位元組處理之後,進入作者位元組構造的加密函數 使用Rand2中的數值 循環移位進行加密

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

超過0x10位元組 第一個被建構的加密函數 加密後的0x10位元組加密後的效果

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

寫入Rand2公鑰加密後的資料

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

循環周遊目錄下檔案執行加密

GandCrabV2.0病毒分析記錄

 加密結束後執行操作

GandCrabV2.0病毒分析記錄
GandCrabV2.0病毒分析記錄

分析總結

 複現是個相對輕松的工作,但是病毒分析複現,感覺很受限,前人已有的,找到就可以,但是細節方面哪些要繼續追進去深入,哪些可能是錯誤的幹擾都必須保持自己的思考。

 勤記錄,多小結,時間盡量可控(太長時間有沒有規劃會把控不了整個的運作流程)。這個樣本在算法方面糾纏了很長時間,但最後得承認對于新手來說,逆向一個勒索病毒算法不如dump代碼進行黑盒處理或者直接找解密工具。

解密網站分享

參考文章

https://www.52pojie.cn/thread-712552-1-1.html

https://www.52pojie.cn/thread-931175-1-1.html

繼續閱讀