Borland Delphi樣本與病毒概念思考

一、前言:
 回家辦事,家中老式電腦顯着老舊,平日不在家,父母就用電腦鬥鬥地主,看看電影,每次回來都會給他們拆開主機清清灰,打開系統清清垃圾、打打補丁。
 發現竟然變成了XP系統?轉念一想,應該是電腦壞了去了電腦店重裝了系統....而且給裝的XP。順手下個電腦清理,還掃除了病毒?來吧,拿起U盤拷貝下來,仍到虛擬機,然後寫一篇態度不嚴謹的文章吧。ps:雖然這篇文章不是來分析這個樣本的

Borland Delphi樣本與病毒概念思考

二、靜態分析:
①PEiD來探探,發現麼殼麼加密......,如下所示:
Borland Delphi樣本與病毒概念思考
                      圖片一:查殼
②拉入火絨裏面讓他跑一跑,看一看樣本行爲,如下所示:
Borland Delphi樣本與病毒概念思考
Borland Delphi樣本與病毒概念思考
                      圖片二:行爲分析
 ③觀察後,既沒有鏡像劫持(自啓動行爲),有沒有與服務器鏈接cc行爲,只是刪除了本身文件,沒有對註冊表或者系統進行修改讀寫,誤判了?
 逆向的時候看過一些BorlandDelphi的程序,病毒是沒有交互的(隱蔽性)是沒有所謂的窗口,一定會隱藏關鍵字符串與數據,所以不可以用算法分析的方式去解析。那麼意味分析Borland Delphi入口點,說真的以前真沒從入口點分析過(MFC的病毒經常入口點分析- -),拉入IDA如下所示:

Borland Delphi樣本與病毒概念思考
Borland Delphi樣本與病毒概念思考
                      圖片三:流程圖
④如上圖所示,整個程序存活週期,他們對於整個程序起着什麼樣的作用呢?如下所示:

FunctionName Use
InitExe .rsrc中讀取資源drm,調用StartExe來InitRoutineTable讀取所有函數(FunctionTable),執行Routine。
CreateForm 創建Form,初始化Delphi的主要函數,第二個參數edx指向TCustomForm虛函數表指針,構造程序的_cls_Forms_TCustomForm主form
Run 一般都是AddExitProc把form析構添加到退出函數執行流程,下面就是HandleMessage消息循環。
Halt0 當dwReasin爲0時候調用ExitProcess結束

⑤對上述函數有了認知,我們就知道這些庫函數作用及是否我們需要,我們就可以很快找到消息循環,並且找到了一些有意思的函數,如下所示:
Borland Delphi樣本與病毒概念思考
Borland Delphi樣本與病毒概念思考
                      圖片四:消息回調
⑥根據樣本行爲好像沒有那麼複雜的操作,我們需要藉助神奇Dark工具來輔助分析,如下所示:
Borland Delphi樣本與病毒概念思考
                      圖片五:Dark分析
⑦有價值的東西還真是不少,在FormCreate中發現了一些有價值的代碼,如下所示:
Borland Delphi樣本與病毒概念思考
                      圖片六:FormCreate
 ⑧代碼說的明明白白,當前樣本運行系統是windows7,所以說會進入到函數sub_466C24(),先來看看函數中的代碼,如下所示:
Borland Delphi樣本與病毒概念思考
Borland Delphi樣本與病毒概念思考
Borland Delphi樣本與病毒概念思考
                      圖片七:版本匹配
⑨看到這裏,你應該明白行爲分析中的行爲,在代碼層面的邏輯及實現目的。這是一款支持低版本系統如xp,windows2000等的病毒......,至於定時器下斷,沒有被執行,我們拉入微步雲,線上分析看一看,如下所示:
Borland Delphi樣本與病毒概念思考
Borland Delphi樣本與病毒概念思考
                      圖片八:線上分析
⑩與我們的分析是結果基本是一樣的,那麼到底是不是病毒還是被誤殺呢?我們再來分析一下如果是xp系統會如何運行(如果你想動態調試,其實不用部署xp環境,可以通過修改關鍵跳,實現定向函數執行),靜態分析如下:
Borland Delphi樣本與病毒概念思考
                      圖片九:第三方部署
 ⑪這樣看來判定危害級別的話是構建不成病毒,那麼回調函數中爲什麼有HOOK等模塊呢?很簡單這個應該是第三方工具安裝XP系過程中一些預熱或環境部署,當然拉入XP中運行後發現了生成了快捷鏈接與註冊表操作,我們來看一下:
Borland Delphi樣本與病毒概念思考
Borland Delphi樣本與病毒概念思考
                      圖片十:XP環境下測試
⑫上述都是什麼?A0000002.ini這個文件就是GHOST部署,網吧、學校教室每次重啓都會被還原系統,那時候好像就是用這種文件配置的,而那些快捷方式指向文件mplayer2.exe是Windows Media Player相關程序,用於打開、播放和管理媒體文件,且線上掃描全部安全通過。
⑬綜合各因素,他不是一個病毒,只是有一些敏感操作被誤殺成了病毒,我們來看一下線上掃描結果,也就是最開始有刪除自身A0000001.exe程序,如下所示:
Borland Delphi樣本與病毒概念思考
                      圖片十一:各大廠商啓發式查殺

關於病毒概念個人一些思考:
啓發式只是一個概念性的話題,包括智能機器引擎,算法深度掃描啓發等等,用來預防未知或者新變種病毒種類,有效的識別那麼還未被發現的威脅。
更簡單來說如何識別下載文件或者運行是有惡意行爲,這個文件被執行起來如何判定他所作所爲是安全的。各大廠商八仙過海各顯神通,通過PE結構,文件大小,MD5、SHA1/256,掃描彙編、識別惡意字符串、識別敏感API等等,把一些已知的病毒家族、變種特徵保存在數據庫,這就是所謂的特徵碼,幾個特徵碼可以辨別一個病毒家族,同樣也可以歸納一類病毒家族特徵。
 那麼也許是後來發現越來越多的家族病毒、勒索、挖礦出現防不甚防,即使有了啓發式,通過多項檢查,符合其中的一項或者多項把你判定成病毒,強殼直接帶殼查殺.....,所以加密混淆是現代病毒基本功,如何隱蔽不被殺毒發現更是一門藝術。
 系統相對是靈活的,所以病毒也相對是靈活的,這是因爲殺毒軟件防禦能力越強,單憑一門語言或者手段是沒辦法將病毒通過漏洞或者掛馬等植入到系統併成功執行,所以最近幾年APT概念越來越活躍、Xbash這種惡意軟件也是越來越成熟,病毒(惡意行爲)從原始pc一路過關斬將,殺到了移動網絡、嵌入式、物聯網、人工智能等,這也許就是的本質,人性。
 也曾自己寫過一些雲查殺,其實就是上述說的啓發式,讀取文件掃描一些特徵碼來判定是否有惡意行爲,那麼稍作混淆或加密,如果你沒有完善的邏輯或更多的特徵去識別,意味着他將過掉你的防線。病毒可以拿殺毒軟件進行測試,過掉殺毒軟件,而殺毒軟件不能拿未知的病毒進行特徵碼測試查殺,其實安全公司一直都處於被動,也就是防禦狀態,兵來將擋,而沒辦法主動出擊,因爲你跟不知道你出擊的對象,下一次將會是一個全新的變種出現在你面前。
 時間久了,當然要改進,所以要追蹤病毒的來源、目的等,通過cc交互或者通訊,去琢磨目的及那麼背後的東西,通過ip、網站、郵箱、電話等去溯源分析,找到源頭,不至於太被動,也要慢慢的嘗試主動出擊,有點像反調試與反反調試,有可能更爲複雜。大多數安全公司有在做這塊的工作,掌握一線情報才能主動權。

身爲一個安全研究人員,當然現在職位劃分的越來越清晰。樣本分析,漏洞挖掘,競品分析等等,其實本質都是人與人對抗,智慧與智慧對抗,保持一顆謙虛學習的心,踏實務實才能在這條路上走的更長遠。
Borland Delphi樣本與病毒概念思考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章