行(xíng)業(yè)動态

了解最新公司動态及行(xíng)業(yè)資訊

當前位置:首頁>新聞中心>行(xíng)業(yè)動态
全部 22 公司動态 0 行(xíng)業(yè)動态 22

探究竊密木馬FormBook免殺手段——多變的(de)加載器(qì)

時間:2024-09-13   訪問量:1160

圖片

    近期,火(huǒ)絨工(gōng)程師(shī)在日常關注安全動态時發現FormBook木馬家族存在利用(yòng)多種加載器(qì)混淆處理(lǐ)進行(xíng)免殺的(de)行(xíng)爲,因此火(huǒ)絨工(gōng)程師(shī)對其木馬家族多種樣本進行(xíng)橫向分(fēn)析,分(fēn)析發現該木馬家族多個(gè)樣本的(de)主要功能(néng)幾乎沒有(yǒu)變化,隻有(yǒu)加載器(qì)不斷變化,且加載器(qì)核心機制(zhì)仍然由讀(dú)取、解密和(hé)注入三個(gè)步驟組成。其中注入的(de)FormBook代碼通過自修改代碼(SMC)和(hé)多次注入以及通過天堂之門實現免殺。火(huǒ)絨安全産品可(kě)對上(shàng)述竊密木馬進行(xíng)攔截查殺。

圖片

火(huǒ)絨6.0查殺圖

  

FormBook是一種商業(yè)竊密木馬,主要用(yòng)于竊取浏覽器(qì)的(de)Cookies等敏感信息。同時,它還包含一個(gè)後門模塊,能(néng)夠下載并執行(xíng)代碼,因此也(yě)被認爲是一種多功能(néng)木馬。該木馬最早于2016年在Hack Forums平台上(shàng)公開(kāi)售賣。當時,它并不是以竊密木馬的(de)名義售賣,而是宣稱其用(yòng)途是監控員工(gōng)或兒童的(de)浏覽行(xíng)爲。

圖片

FormBook售賣帖子


一年後,FormBook的(de)作者發布了一款C#加密器(qì),雖然其代碼相(xiàng)對簡單,但(dàn)如(rú)今出現的(de)各種C#加載器(qì)中都(dōu)能(néng)看到(dào)這段加密器(qì)代碼的(de)影子。

圖片

FormBook C#加密器(qì)帖子


FormBook攻擊流程基本相(xiàng)同,下圖是最新FormBook木馬攻擊流程圖:

圖片

FormBook流程圖




樣本分(fēn)析

加載器(qì)
加載器(qì)是用(yòng)于加載FormBook代碼的(de)程序。通常情況下,受害者打開(kāi)的(de)文(wén)件(jiàn)就是加載器(qì),加載器(qì)随後會(huì)解密出代碼執行(xíng)惡意操作。
FormBook的(de)加載器(qì)有(yǒu)多種形式,包括AutoIt、C#、NSIS和(hé)C等。它們的(de)目的(de)都(dōu)是一樣的(de):解密出FormBook木馬并将其注入到(dào)某個(gè)程序中執行(xíng)。不同之處在于每種加載器(qì)的(de)解密、注入次數、方法,以及所使用(yòng)的(de)混淆技術(shù)存在差異。

AutoIt加載器(qì)

最近的(de)FormBook木馬最外層使用(yòng)的(de)是AutoIt腳本編譯出的(de)可(kě)執行(xíng)程序,通常包含一個(gè)解密器(qì)和(hé)一個(gè)被加密的(de)FormBook木馬文(wén)件(jiàn)。以下是反編譯得出來的(de)原始腳本内容,因略微混淆過,所以比較複雜。
圖片
AutoIt腳本

對代碼進行(xíng)部分(fēn)還原後,可(kě)以看到(dào)此代碼先讀(dú)取meshummad文(wén)件(jiàn),然後對其文(wén)件(jiàn)數據進行(xíng)解密,并使用(yòng)VirtualAlloc分(fēn)配一個(gè)可(kě)讀(dú)、可(kě)寫且可(kě)執行(xíng)的(de)内存塊,将解密後的(de)内容複制(zhì)到(dào)該内存塊中,最後調用(yòng)内存地(dì)址0x23b0處的(de)代碼。
圖片
AutoIt還原後代碼

0x23b0處的(de)代碼會(huì)先讀(dú)取spiketop文(wén)件(jiàn),然後對其文(wén)件(jiàn)數據進行(xíng)解密并将解密後的(de)數據注入到(dào)目标進程中。
圖片
spiketop解密注入

創建目标進程svchost.exe時,使用(yòng)CREATE_SUSPENDED屬性,使進程在啓動時立即挂起。随後,通過創建共享内存塊,将進程的(de)入口點修改爲FormBook木馬的(de)代碼入口點。
圖片
 注入代碼

C#加載器(qì)
大(dà)部分(fēn)C#加載器(qì)的(de)代碼結構都(dōu)如(rú)圖所示,核心邏輯通常都(dōu)嵌入在窗體初始化的(de)代碼中。
圖片
入口點

通過獲取資源數據并對其進行(xíng)異或運算解密。
圖片
獲取資源并解密

加載解密後的(de)代碼,并調用(yòng)其中的(de)某個(gè)方法。
圖片
加載後調用(yòng)方法

其方法中包含Sleep函數,先睡(shuì)眠十秒,之後會(huì)從Cinema.Properties.Resources中獲取whRP資源并對該資源數據進行(xíng)解密。解密是通過調用(yòng)該資源中的(de)另一個(gè)方法實現。
圖片
獲取資源并解密

解密後加載代碼并調用(yòng)其中的(de)方法,即注入相(xiàng)關代碼。
圖片
加載後調用(yòng)方法

在注入之前,會(huì)獲取注入所需函數的(de)地(dì)址。
圖片
獲取函數地(dì)址

獲取資源,該資源就是被加密的(de)FormBook木馬數據。
圖片
獲取資源

通過異或算法解密資源。
圖片
異或解密 

最後再次創建該進程,将FormBook注入該進程中,執行(xíng)FormBook代碼。
圖片
創建進程并注入

NSIS加載器(qì)

NSIS加載器(qì)也(yě)有(yǒu)不少(shǎo),從下方NSIS腳本中可(kě)以看出,其會(huì)釋放(fàng)三個(gè)文(wén)件(jiàn),并執行(xíng)其中一個(gè)名爲rvoplhkaevivic的(de)文(wén)件(jiàn)中的(de)代碼。

圖片
讀(dú)取執行(xíng)

讀(dú)取文(wén)件(jiàn)df4h5cv6nhh38o8mk08,解密後執行(xíng)。
圖片
解密執行(xíng)

執行(xíng)的(de)代碼與前述的(de)AutoIt加載器(qì)中的(de)解密後注入手段一樣,最終注入的(de)就是FormBook木馬。
圖片
注入

還有(yǒu)一些方法是釋放(fàng)三個(gè)文(wén)件(jiàn),執行(xíng)mbvbvnxc.exe程序,并傳入uelcqq參數。該程序會(huì)對uelcqq文(wén)件(jiàn)進行(xíng)解密後執行(xíng)。
圖片
釋放(fàng)執行(xíng)
圖片

讀(dú)取文(wén)件(jiàn)解密執行(xíng) 


其中有(yǒu)些NSIS腳本中的(de)部分(fēn)字符串經過了混淆處理(lǐ),圖示的(de)腳本是對部分(fēn)字符串做了替換處理(lǐ)。
圖片
NSIS腳本

C加載器(qì)

C加載器(qì)是在很早之前就出現過的(de),一般會(huì)在第二層加載器(qì)中出現。
圖示方法是在WndProc函數中解密某塊數據,然後分(fēn)配執行(xíng)權限并執行(xíng)。最終執行(xíng)的(de)就是FormBook木馬。這種方法是最簡單的(de)加密手段。
圖片
簡單加密

除了上(shàng)述簡單的(de)加密手段,還有(yǒu)一些比較複雜的(de)變體。該方法通常涉及多輪解密和(hé)大(dà)量無意義的(de)計(jì)算,最終都(dōu)會(huì)調用(yòng)FormBook代碼。這種類型的(de)木馬最近較爲常見,通常具有(yǒu)自我修改代碼的(de)特性。
圖片
複雜加密

竊密模塊
通過加載器(qì)加載出FormBook代碼後,就會(huì)開(kāi)始執行(xíng)惡意操作,如(rú)竊密和(hé)後門操作。
在進入竊密和(hé)後門模塊之前,會(huì)經過一段網絡檢測階段。該階段的(de)代碼通過随機選擇并注入到(dào)該進程的(de)兄弟進程中來實現網絡檢測。過程中會(huì)判斷目标進程是否在Wow64環境下運行(xíng)。如(rú)果是,則直接進行(xíng)注入;如(rú)果不是,則通過執行(xíng)x64位代碼的(de)方式來注入網絡檢測代碼。
圖片
選擇進程後注入網絡檢測代碼

被注入的(de)進程會(huì)直接執行(xíng)以下操作:發送窗口标題和(hé)剪切闆等信息到(dào)遠程服務器(qì)。如(rú)果網絡連接正常,則會(huì)繼續進行(xíng)下一步的(de)竊密操作。
圖片
網絡檢測代碼

其中獲取剪貼闆記錄:
圖片
剪貼闆記錄

檢測網絡正常後正式開(kāi)始執行(xíng)竊密操作,其中竊取的(de)信息主要是浏覽器(qì)、郵箱、憑據等。
圖片
竊密操作

後門模塊
盡管FormBook的(de)主要功能(néng)是竊取敏感數據,但(dàn)它還具有(yǒu)後門功能(néng),包括:下載并執行(xíng)文(wén)件(jiàn)、清除殘留痕迹、以及控制(zhì)計(jì)算機的(de)重啓和(hé)關機等操作。
圖片
後門操作

其他(tā)各種對抗技巧

FormBook自曆史版本以來就使用(yòng)多種技術(shù)手段進行(xíng)對抗,包括“地(dì)獄之門”、“天空之門”、動态獲取函數地(dì)址、反調試、反虛拟機、反沙盒等。後來,它又(yòu)引入了SMC(自修改代碼)技術(shù),進一步增強了其對抗能(néng)力。

地(dì)獄之門:讀(dú)取ntdll.dll文(wén)件(jiàn),将數據複制(zhì)到(dào)分(fēn)配的(de)内存中,然後通過遍曆函數名并計(jì)算Hash值的(de)方式來獲取函數地(dì)址。

圖片
地(dì)獄之門

由于需要手動調用(yòng)系統調用(yòng),因此需要将調用(yòng)号記錄下來。
圖片
獲取調用(yòng)号

利用(yòng)天空之門(x32位進程執行(xíng)x64代碼)調用(yòng)系統号。
圖片
調用(yòng)系統号

動态獲取函數地(dì)址:通過遍曆DLL中的(de)導出函數名,計(jì)算每個(gè)函數名的(de)Hash值,并與目标函數的(de)Hash值進行(xíng)比對,從而動态地(dì)獲取函數的(de)地(dì)址。
圖片
動态獲取函數

反調試:利用(yòng)NtQueryInformationProcess和(hé)NtQuerySystemInformation函數獲取與調試相(xiàng)關的(de)信息,以檢測程序是否處于調試狀态。
圖片
反調試

檢查進程和(hé)用(yòng)戶名
FormBook的(de)所有(yǒu)版本都(dōu)會(huì)通過計(jì)算Hash值檢測進程、用(yòng)戶名和(hé)進程路(lù)徑。其中大(dà)部分(fēn)Hash值已經被公布,相(xiàng)關信息可(kě)以在以下網址找到(dào):https://github.com/ThisIsSecurity/malware/blob/master/formbook/func_index_hashes.txt。
檢查進程名的(de)主要目的(de)是爲了識别虛拟機和(hé)沙箱環境,并用(yòng)于檢測是否存在其他(tā)監控軟件(jiàn)。
圖片
進程名列表

還會(huì)檢查進程路(lù)徑,大(dà)部分(fēn)是沙箱相(xiàng)關路(lù)徑,還有(yǒu)安全軟件(jiàn)等。
圖片
進程路(lù)徑名列表


最後檢查用(yòng)戶名,能(néng)看出會(huì)檢測sandbox這種沙箱名。

圖片

用(yòng)戶名列表


以上(shàng)都(dōu)是黑(hēi)名單,如(rú)果匹配,就不會(huì)執行(xíng)惡意行(xíng)爲。


自修改代碼

多年前的(de)FormBook樣本通常不具備自我修改的(de)特性,但(dàn)在過去一兩年中,出現了新樣本,這些樣本引入了自我修改的(de)機制(zhì)。
在這些新樣本中,函數在執行(xíng)時會(huì)動态解密,執行(xíng)完畢後則會(huì)将其加密回去。在執行(xíng)前,僅能(néng)看到(dào)前幾條指令是正常的(de),其餘部分(fēn)則被加密,無法直接查看其具體内容。
圖片
解密前

執行(xíng)前會(huì)進行(xíng)異或解密,以下是解密後的(de)代碼:
圖片
解密後

在執行(xíng)後,樣本會(huì)進行(xíng)加密操作,使大(dà)部分(fēn)惡意代碼始終保持加密狀态,以下是完整函數代碼,步驟爲解密、執行(xíng)、加密。
圖片
完整函數


附錄
C&C:
圖片

HASH:

圖片




病毒分(fēn)析報告 · 目錄

#病毒分(fēn)析報告

上(shàng)一篇“李鬼”軟件(jiàn)暗(àn)設後門,對抗殺軟侵蝕系統


上(shàng)一篇:針對 Ivanti vTM 關鍵漏洞的(de) PoC 攻擊代碼已發布

下一篇:規範用(yòng)戶對計(jì)算機正确使用(yòng) | 實現高(gāo)效終端管理(lǐ)

發表評論:

評論記錄:

未查詢到(dào)任何數據!

QQ咨訊

點擊這裏給我發消息 産品方案了解

點擊這裏給我發消息 項目技術(shù)支持

QQ咨訊

尋找幫助

接收到(dào)信息第一時間與您聯系

請輸入您的(de)聯系電話(huà),座機請加區号

尋找幫助

微信掃一掃

微信聯系
返回頂部