01-樣本概況
1.1-樣本資訊
-
基本資訊
檔案: C:\Users\15pb-win7\Desktop\xiongmao.exe
大小: 30001 bytes
修改時間: 2018年7月14日, 8:40:21
MD5: 512301C535C88255C9A252FDF70B7A03
SHA1: CA3A1070CFF311C0BA40AB60A8FE3266CFEFE870
CRC32: E334747C
-
病毒行為:
1.在系統目錄下生成病毒程式并執行
2.修改注冊表
3.添加啟動項
4.目錄下產生Desktop_ini檔案
5.關閉網路共享
6.存在網路連接
7.有加密的流程傳輸
8.感染檔案
1.2-測驗環境
系統環境:
- Windows10-64位
- Windows7-32位
工具:
- 010Editor:查看感染標記
- OllyDebug:動態除錯
- IDA:靜態除錯
- PCHunter:行程查看及結束
- 火絨劍:觀察病毒行為
- Hash工具:計算病毒檔案哈希值
- WSExplorer:查看病毒程式網路連接
- VS 2017:撰寫專殺工具
1.3-分析目標
-
提取病毒樣本
-
分析病毒行為
-
分析病毒代碼細節,獲取其執行流程
-
提取病毒特征、手動查殺及撰寫專殺工具
02-具體行為分析
2.1-檔案操作
病毒創建了大量檔案,并且會修改/感染正常的程式

2.2-注冊表操作
創建了新的注冊表項,并且通過修改注冊表,實作病毒的自啟動


2.3-行程操作
列舉行程來查看是否有殺毒軟體,創建行程來運行自己產生的惡意程式spo、打開設備以便感染U盤等硬體設備

2.4-網路操作
存在大量http請求可以實施DDos攻擊,也可以發送資料包,以便上傳私密資訊到服務器,存在網路連接,以便用戶從服務器下載木馬等惡意程式

2.5-行為監控
可以修改注冊表來實作自啟動項,會感染PE檔案,進行自我洗掉和復制


2.6-執行監控
其通過cmd命令洗掉了網路共享

03-惡意代碼分析
3.1-脫殼
是否有殼:PEiD查看xiongmao.exe存在FSG 2.0的殼

x32Debug中打開xiongmao,單步跟蹤直到jmp dword ptr [ebx + 0xc],其跳往真實OEP處,利用Scylla插件進行脫殼,最后保存為xiongmao_dump_SCY.exe

PEiD深度掃描xiongmao_dump_SCY.exe顯示沒殼,再查看其輸入表也正常,說明脫殼成功
3.2-整體流程
IDA:Shift+F5 簽名視窗中,添加delphi特征庫,應用后可識別大量庫函式,根據偽代碼推測功能

動態除錯,看sub_405250功能,call之前,eax中傳參是一堆雜亂的中文字符,call之后,將區域變數ebp-0x14中的值賦值給edx,此時是正常的中文,隨后進行字串的比較,因此可判定其為字串解密函式,暫記做DecodeString,并在IDA中修改(快捷鍵n)

經過IDA和OD的結合分析,最終可得到整體流程圖,如下:

3.3-代碼塊sub-40819c
IDA:進入819c函式內部,某處出現了樣本檔案名,應該是敏感部分,要重點關注;此處有兩個sub-xxx函式不知用途

IDA:進入sub-4053ac內部,有一個獲取系統目錄的庫函式,因此可初步判定其功能

OD:驗證上述推測是否成立,ctrl+g到4053a4處,內部下斷運行至此,從堆疊中找到呼叫位置,取消內部斷點呼叫位置下斷重新運行,單步測驗;運行后,將區域變數壓堆疊,可見其就是系統目錄,再與后面的子目錄和檔案名拼接,得到最終地址;推測正確,因此IDA中將其命名為GetSysDir以作標示

綜上,本函式功能:復制自身xiongmao.exe到系統目錄下并重命名為spo0lsv.exe,然后執行

3.4-代碼塊sub-40d18c
-
雙擊進入,內部有三個函式:40a5b0、40c374、40bacc
-
進入40a5b0:創建執行緒,其執行緒回呼函式為40a48c

再進入40a48c:while回圈執行409448

再進入409448,發現'desktop_.ini'字串,也有獲取本地時間的行為,聯想病毒在每個目錄下創建ini且內容為日期的行為,推測此處便是代碼執行處

進入40c374,設定一個定時器

進入timerfunc定時器回呼函式,應該就是創建setup.exe檔案

進入40bacc,創建一個執行緒執行40ba8c
進入40ba8c,后再進入40b864,發現是網路連接相關

綜上,根據病毒行為以及代碼中出現的敏感字串、關鍵函式等,大致可了解sub-40d18c內部有三個函式,功能分別是:新建執行緒來創建desktop_.ini組態檔、設定計時器來創建setup.exe檔案、創建執行緒進行網路連接
3.5-代碼塊sub-40d088
進入函式,有6個計時器,分別執行6個函式,依次查看

40cee4,添加啟動項、修改注冊表

40d040,訪問網站并獲取系統目錄,推測是從服務器下載惡意程式

40d048,內部有兩個函式,第一個同40d040,第二個執行cmd命令關閉網路共享

407430,關閉殺毒軟體服務、洗掉殺毒軟體啟動項(從字串可見為常見的殺軟)



40cc4c,打開URL,訪問網站獲取內容

-
40c728,類似40d040,都是下載惡意代碼
-
綜上,sub-40d088內部這幾個函式分別實作了:添加啟動項、修改注冊表、下載惡意代碼、訪問網站獲取內容、關閉殺軟服務、洗掉殺軟啟動項、關閉網路共享
3.6-啟動程序分析
ini組態檔的操作:獲取當前路徑,并將“Desktop_.ini”拼接到當前路徑中,同時檢查此檔案是否存在,若檔案存在,則洗掉

ini組態檔操作完成后,進入新的流程:為了復制病毒資訊以感染其他檔案,故將病毒檔案資訊讀取到記憶體中;同時也設定了標記資訊

隨后跳往4082DB處:進行了標記檢查作業,來判斷病毒程式是否被多次運行

隨后代碼中出現“spo0lcv.exe”字串:找到運行的行程“spo0lsv.exe”并終止;病毒第一次執行時,需要將自身復制一份到系統目錄下,并偽裝成“spo0lsv.exe”啟動;

字串比較后,若當前病毒檔案已經復制到了系統目錄下且被偽造成了“spo0lsv.exe”,則會跳轉到40845E處:釋放之前申請存放病毒檔案資訊的記憶體(OD除錯時,可手動修改JZ條件,使之完成跳轉)

隨之跳往 408741:獲取標記并進行檢查,當標記==1時,會進入 408477來進行進一步檢查(此代碼塊只有被感染的程式才會執行,OD打開被感染檔案進行除錯

3.7-感染程序分析
內部三個子模塊:前二本地感染,第三通過網路

創建感染執行緒:找到執行緒回呼函式

感染執行緒的執行緒回呼函式:遍歷驅動器盤符的數目,進入到驅動器中,遍歷所有可感染檔案以進行病毒復制

_FindAndInfectFile:遍歷驅動器下的檔案資訊,將檔案與檔案夾進行了分類,排除了特殊檔案夾;在判斷是否為特殊檔案夾的程序中,都是以大寫形式進行對比的,以防止因大小寫不同而造成錯誤;在這可跳到處理檔案的地方

_FindAndInfectFile:感染前的檢查作業,ini中保存的時間與剛付訓取的時間進行比較,來判斷是否已經被感染

如4中,若當前獲取到的是檔案時,開始處理檔案:對檔案進行檢查,只要后綴為“GHO”,就判定為ghost備份檔案,直接洗掉,防止用戶還原系統(真tm的壞)

一旦洗掉了系統的備份檔案,病毒就開始肆意感染:大致分為兩種,一種是本地可執行檔案(如exe為后綴的),另一種是Web網頁檔案(如html為后綴的)


感染exe等本地執行檔案,_InfectFile:首先將目標檔案讀取到記憶體中并獲取檔案名及其大小、然后將自身檔案復制到目標檔案前并追加目標程式的原始檔案、最后添加感染標記,結束感染程序


被感染檔案 : 病毒檔案 + 原檔案 + 感染標識,標識如下

3.8-自我保護行為
-
若找到標記字符,則會跳轉到408477,此代碼塊只有被感染的程式才會執行,現IDA中打開原病毒靜態分析(也可OD中打開被感染程式動態分析
-
代碼段408477:從被感染檔案中分離提取出原始檔案(由于感染檔案時寫入了標記資訊,根據標記可得到原始檔案),執行后,在被感染檔案所在目錄下釋放出其原始檔案

代碼段 408584:被感染檔案的主要作業是維護行程中偽造的病毒程式spo0lsv. exe,若spo被洗掉,則會由被感染的程式再次生成(春風吹又生,除非洗掉所有被感染程式)

04-解決方案
4.1-病毒特征
病毒檔案的哈希值如下:
MD5: 512301C535C88255C9A252FDF70B7A03
SHA1: CA3A1070CFF311C0BA40AB60A8FE3266CFEFE870
CRC32: E334747C
被感染檔案中,檔案最后有感染表示標識:WhBoy + 原檔案名 + exe + + ascii碼為1的字符 + 亂數+ ascii碼為2的字符

4.2-手工查殺
-
cmd命令列下taskkill殺掉行程,或者直接利用PCHunter等工具結束行程
-
在系統目錄下洗掉病毒檔案:C:\WINDOWS\system32\drivers\spo0lsv.exe
-
洗掉啟動項:Windows+R,鍵入msconfig打開服務配置視窗,切換啟動視窗,取消啟動項,并且記錄下注冊表位置


4.修改注冊表:Windows+R,鍵入regedit打開注冊表視窗,找到相應位置,并洗掉記錄

4.3-專殺工具
效果圖


GitHub地址:https://github.com/Ry1ynn/AntiPanda

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299615.html
標籤:其他
上一篇:開學第一周學習week01
