病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

通過上節

小c已確定樣本相關信息如下

文件名 Client-built.exe
Md5 d059a264af31c72def4f1ae47898e422
樣本家族 QuasarRAT
釋放文件 C:\Windows\System32\dllcheck\dllcheck.exe
創建進程 Dllcheck.exe, schtasks.exe
持久化 創建計劃任務在有用戶登陸的情況下執行dllcheck.exe
網絡行為 ip-api.com         collinserver.ddns.net

查殼


在開始進行惡意代碼之前,一般先使用查殼工具先對樣本進行查殼,進行此操作可判斷樣本是否加殼,是什么語言編譯而成,從而選擇合適的分析工具以及分析方法。

此類工具有peid,Exeinfo, DetectItEasy等,在吾愛破解工具包的pe工具目錄下可找到這類工具。

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

使用DetectItEasy查殼,信息如下

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

根據上圖,樣本由VB.NET編譯而成,.NET有一個特點,那就是無論程序是用C#,還是C++,或是VB編寫,最終都被編譯為.NET的中間語言IL。而靜態分析.NET程序,就是用反編譯工具將程序的指令字節反編譯成IL指令或高級語言,通過閱讀反編譯代碼掌握程序的流程與功能。由于.NET下的可執行文件同時保存有元數據與IL代碼,其靜態反編譯出的代碼具有極強的可讀性,幾乎等同于源代碼。

分析工具


.NET平臺的反編譯工具最為常用的是dnspy,ildasm與Reflector,小c一般喜歡用dnspy,工具包也有該工具,最新版本可在https://github.com/0xd4d/dnSpy/releases獲取

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

開始分析


將樣本拖入dnspy,可見該工具已將入口點識別出

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

點擊進入入口main函數

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01
病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

這是什么思密達語言??說好的幾乎等同于源代碼呢??

出現這種稀奇古怪的語言有可能是混淆器導致的,所以需要對樣本去混淆。

這時候就需要去.net去混淆的神器de4dot,在命令行下執行

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

再把去混淆后的文件拖入dnspy

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

哇,俄妹子ing,果真和源代碼差別不大了,接下來就是一個個函數開始分析了.通過搜索發現前兩個函數是設置樣式等相關,應該與樣本的惡意行為不相關,略過。之后點擊進入GClass0.smethod()。

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

可看到首先判斷了GClass.string_0是否為空,點擊跳轉先看下這個string_0是啥

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

再GClass類中定義了多個奇怪的字符串,當遇到這種字符串時,要想到這些字符串是經過加密處理的,在惡意代碼的某個地方或許會有解密使用的地方。接下來進入GClass30.smethod_0

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

通過對Rfc2898DeriveBytes搜索發現是.net相關的加密算法

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

GClass30.smethod_0 設置了兩個變量的值,猜測其是初始化解密算法相關的key,所以可將該函數改名為initdeckey,右鍵-》編輯方法進行改名

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

接下來可看到多次調用了GClass30.smethod_6函數,且傳入的參數是之前看到的奇怪字符串,猜測是對字符串進行解密操作。

進去看一下

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

可見其首先對傳入的參數進行base64解碼后,再將解碼后的字符作為參數傳入GClass30.smethod_7,該函數中出現多個AES相關字符串,所以應該也是解密相關,來動態調試驗證下字符串是否解密成功。點擊旁邊出現紅點后,表示在該段下斷點成功,之后點擊菜單欄的啟動開始調試,dnspy 中f5運行,f10步過(遇到函數直接運行過去),f11步進(遇到函數進入其中)

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

之后可通過下方的局部變量窗口查看相關變量的值,但運行之后卻發現我們想看到string_0等值卻并沒有出現,這是由于這些值是GClass0的成員變量,所以在局部變量窗口沒有顯示,這時,可通過菜單欄調試—》窗口-》監視,添加一個監視窗口

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

將想查看的變量輸入到該監視窗口,效果如下

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

可見該函數確實是解密功能,且之前我們通過動態行為抓到的網絡行為,釋放的文件名等信息都已解密出。分析時,可將解密好的字符串注釋到相關函數后面,但又遇到個問題,dnspy對注釋支持不好。寫注釋很不方便,這時可通過將樣本導出成工程文件,再用visual studio打開工程進行注釋,文件-》導出到工程

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

效果如下

病毒分析快速入門(三)-實戰QuasarRAT之詳細分析01

之后的GClass.smethod_1獲取了一個路徑,自此函數GClass0.smethod()分析完畢,該函數解密了網絡行為,釋放文件名等相關字符串,所以可將該函數該命為initconfig, 之后再次進入Class0.smethod_3函數

總結


本來想一次把分析寫完了,結果可能是因為太啰嗦了,導致篇幅已經有些長了,所以分成兩次寫完。

來源:威脅情報小屋,本文觀點不代表自營銷立場,網址:http://www.wfapiao.com/p/17495

發表評論

登錄后才能評論
侵權聯系
返回頂部
AV天堂日本AV天堂欧美AV天堂