行業動态

了(le/liǎo)解最新公司動态及行業資訊

當前位置:首頁>新聞中心>行業動态
全部 23 公司動态 1 行業動态 22

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

時(shí)間:2024-09-13   訪問量:1257

圖片

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

圖片

火絨6.0查殺圖

  

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

圖片

FormBook售賣帖子(zǐ)


一(yī / yì /yí)年後,FormBook的(de)作者發布了(le/liǎo)一(yī / yì /yí)款C#加密器,雖然其代碼相對簡單,但如今出(chū)現的(de)各種C#加載器中都能看到(dào)這(zhè)段加密器代碼的(de)影子(zǐ)。

圖片

FormBook C#加密器帖子(zǐ)


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

圖片

FormBook流程圖



一(yī / yì /yí)

樣本分析

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

AutoIt加載器

最近的(de)FormBook木馬最外層使用的(de)是(shì)AutoIt腳本編譯出(chū)的(de)可執行程序,通常包含一(yī / yì /yí)個(gè)解密器和(hé / huò)一(yī / yì /yí)個(gè)被加密的(de)FormBook木馬文件。以(yǐ)下是(shì)反編譯得出(chū)來(lái)的(de)原始腳本内容,因略微混淆過,所以(yǐ)比較複雜。
圖片
AutoIt腳本

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

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

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

C#加載器
大(dà)部分C#加載器的(de)代碼結構都如圖所示,核心邏輯通常都嵌入在(zài)窗體初始化的(de)代碼中。
圖片
入口點

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

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

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

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

在(zài)注入之(zhī)前,會獲取注入所需函數的(de)地(dì / de)址。
圖片
獲取函數地(dì / de)址

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

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

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

NSIS加載器

NSIS加載器也(yě)有不(bù)少,從下方NSIS腳本中可以(yǐ)看出(chū),其會釋放三個(gè)文件,并執行其中一(yī / yì /yí)個(gè)名爲(wéi / wèi)rvoplhkaevivic的(de)文件中的(de)代碼。

圖片
讀取執行

讀取文件df4h5cv6nhh38o8mk08,解密後執行。
圖片
解密執行

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

還有一(yī / yì /yí)些方法是(shì)釋放三個(gè)文件,執行mbvbvnxc.exe程序,并傳入uelcqq參數。該程序會對uelcqq文件進行解密後執行。
圖片
釋放執行
圖片

讀取文件解密執行 


其中有些NSIS腳本中的(de)部分字符串經過了(le/liǎo)混淆處理,圖示的(de)腳本是(shì)對部分字符串做了(le/liǎo)替換處理。
圖片
NSIS腳本

C加載器

C加載器是(shì)在(zài)很早之(zhī)前就(jiù)出(chū)現過的(de),一(yī / yì /yí)般會在(zài)第二層加載器中出(chū)現。
圖示方法是(shì)在(zài)WndProc函數中解密某塊數據,然後分配執行權限并執行。最終執行的(de)就(jiù)是(shì)FormBook木馬。這(zhè)種方法是(shì)最簡單的(de)加密手段。
圖片
簡單加密

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

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

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

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

檢測網絡正常後正式開始執行竊密操作,其中竊取的(de)信息主要(yào / yāo)是(shì)浏覽器、郵箱、憑據等。
圖片
竊密操作

後門模塊
盡管FormBook的(de)主要(yào / yāo)功能是(shì)竊取敏感數據,但它還具有後門功能,包括:下載并執行文件、清除殘留痕迹、以(yǐ)及控制計算機的(de)重啓和(hé / huò)關機等操作。
圖片
後門操作

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

FormBook自曆史版本以(yǐ)來(lái)就(jiù)使用多種技術手段進行對抗,包括“地(dì / de)獄之(zhī)門”、“天空之(zhī)門”、動态獲取函數地(dì / de)址、反調試、反虛拟機、反沙盒等。後來(lái),它又引入了(le/liǎo)SMC(自修改代碼)技術,進一(yī / yì /yí)步增強了(le/liǎo)其對抗能力。

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

圖片
地(dì / de)獄之(zhī)門

由于(yú)需要(yào / yāo)手動調用系統調用,因此需要(yào / yāo)将調用号記錄下來(lái)。
圖片
獲取調用号

利用天空之(zhī)門(x32位進程執行x64代碼)調用系統号。
圖片
調用系統号

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

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

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

還會檢查進程路徑,大(dà)部分是(shì)沙箱相關路徑,還有安全軟件等。
圖片
進程路徑名列表


最後檢查用戶名,能看出(chū)會檢測sandbox這(zhè)種沙箱名。

圖片

用戶名列表


以(yǐ)上(shàng)都是(shì)黑名單,如果匹配,就(jiù)不(bù)會執行惡意行爲(wéi / wèi)。


自修改代碼

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

執行前會進行異或解密,以(yǐ)下是(shì)解密後的(de)代碼:
圖片
解密後

在(zài)執行後,樣本會進行加密操作,使大(dà)部分惡意代碼始終保持加密狀态,以(yǐ)下是(shì)完整函數代碼,步驟爲(wéi / wèi)解密、執行、加密。
圖片
完整函數


附錄
C&C:
圖片

HASH:

圖片




病毒分析報告 · 目錄

#病毒分析報告

上(shàng)一(yī / yì /yí)篇“李鬼”軟件暗設後門,對抗殺軟侵蝕系統


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

下一(yī / yì /yí)篇:規範用戶對計算機正确使用 | 實現高效終端管理

發表評論:

評論記錄:

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

QQ咨訊

點擊這(zhè)裏給我發消息 産品方案了(le/liǎo)解

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

QQ咨訊

尋找幫助

接收到(dào)信息第一(yī / yì /yí)時(shí)間與您聯系

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

尋找幫助

微信掃一(yī / yì /yí)掃

微信聯系
返回頂部