Borland Delphi樣本與病毒概念思考

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

Borland Delphi樣本與病毒概念思考

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

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

相關文章
相關標籤/搜索