針對惡意軟件Blister的探索與研究

晶顏123
在解碼存根的末尾,它要么跳轉(zhuǎn),要么回調(diào),然后調(diào)用解密函數(shù)。該解密函數(shù)使用RC4,但S-Box已經(jīng)初始化,因此沒有實現(xiàn)密鑰調(diào)度算法。最后,它會跳轉(zhuǎn)到最后一個Payload。

本文來自微信公眾號“FreeBuf”,作者/晶顏123。

寫在前面的話

Blister是一款功能強大的惡意軟件,支持加載嵌入在其中的Payload。我們對過去一年半中捕捉到的137個惡意軟件樣本進(jìn)行了拆包,并對Blister投放的Payload和其近期活動進(jìn)行了深入分析和研究。由于Blister支持環(huán)境屬性,而且大多數(shù)樣本都啟用了該功能,這表明攻擊者大多是有針對性地在使用Blister。除此之外,Payload類型也由Cobalt Strike轉(zhuǎn)變?yōu)镸ythic代理。在這篇文章中,我們將對Blister惡意軟件的技術(shù)細(xì)節(jié)進(jìn)行深入分析,并提供輔助檢測的YARA規(guī)則和腳本。

640.jpg

關(guān)于Blister

Blister本質(zhì)上是一個加載工具,它可以加載嵌入在其中的Payload。大多數(shù)Blister樣本都會投放Cobalt Strike信標(biāo),但近期捕捉到的Blister樣本已開始轉(zhuǎn)向投放Mythic代理了,而Mythic則是另一款功能強大的紅隊安全框架。

Blister最早于2021年12月份的一次攻擊活動中被Elastic Security的研究人員發(fā)現(xiàn),當(dāng)時的Blister使用了Blist公司(名字跟Blister很相似)的有效代碼簽名來偽裝成合法的可執(zhí)行文件,且投放的是Cobalt Strike和BitRat。

2022年,Blister開始使用純x86-64指令集,且SocGholish惡意軟件也開始使用Blister了。同年8月,我們還觀察到了新的Blister版本,此次更新引入了更多可配置選項,以及針對域名屬性的可選域名哈希,這將允許攻擊者以更有針對性的形式部署B(yǎng)lister。

時間來到2023年8月,我們又觀察到了新的Blister活動。這一次,Blister在其感染的第一階段引入了經(jīng)過代碼混淆處理。

Blister Payload分析

在下面的圖片中,我們提供了Blister樣本所使用的Payload家族時間軸,Blister樣本所使用的Payload主要由Cobalt Strike、Mythic、Putty和一個測試應(yīng)用組成。在早期階段,Blister主要使用的是Cobalt Strike,后面開始逐步轉(zhuǎn)向Mythic代理(BlisterMythic)。近期,我們還發(fā)現(xiàn)了一個專門用于解包BlisterMythic的封裝器,我們將其稱之為MythicPacker。但有趣的是,我們并沒有觀察到任何投放了BitRat的Blister樣本。值得一提的是,我們從觀察到的137個樣本中提取除了74個不同的Payload:

640.jpg

Cobalt Strike

在Blister樣本中,Cobalt Strike主要通過三種不同類型的Payload進(jìn)行投放,即普通的Shellcode、DLL Stager和經(jīng)過混淆的Shellcode。總的來說,我們獲取到了61個信標(biāo),在下表中我們列出了觀察到的Cobalt Strike水?。ㄋ∈且粋€唯一值,跟許可證密鑰掛鉤)。由于Cobalt Strike水印是可以更改的,因此水印并不是識別活動集群的可靠方法。

640.jpg

206546002這個水印雖然在這里只使用了兩次,但這個水印之前也曾在Royal、Quantum和Play勒索軟件活動中出現(xiàn)過。1580103824水印不僅曾在Gootloader和Cl0p相關(guān)的活動分析報告中出現(xiàn)過,而且也成了我們Cobalt Strike信標(biāo)數(shù)據(jù)集中最常見信標(biāo)水印的第9名。有趣的是,1101991775水印在Blister活動中出現(xiàn)的最為頻繁,但卻又沒有出現(xiàn)在其他公開的安全報告中。

Cobalt Strike配置生成

在文末的信標(biāo)提取表中,我們還提供了提交路徑。大多數(shù)提交路徑中包含了“/safebrowsing/”和“/rest/2/meetings”,這兩個參數(shù)于SourcePoint(一個Cobalt Strike命令與控制C2配置生成器)中的路徑相匹配。這種機制專門針對的是常規(guī)的Shellcode信標(biāo),當(dāng)我們對經(jīng)過混淆的Shellcode和DLL Stager信標(biāo)進(jìn)行分析后,我們發(fā)現(xiàn)它們似乎使用的是不同的C2配置。

域前置(Domain Fronting)

域前置(Domain Fronting)是一種用于隱藏真實C2服務(wù)器IP且同時能偽裝為與高信譽域名通信的技術(shù),多用于木馬受控端和控制端之間的隱蔽通信。Blister樣本中的一些信標(biāo)被配置為使用域前置技術(shù),其中涉及到通過內(nèi)容交付網(wǎng)絡(luò)(CDN)或其他中間服務(wù)器路由惡意流量,使流量看起來像是流向合法或良性的域,而實際上,它是在與惡意C2服務(wù)器通信。

某些信標(biāo)會將fastly[.]net的子域名作為其C2服務(wù)器,例如backend.int.global.prod.fastly[.]net或python.docs.global.prod.fastly[.]net。但是,它們實際連接的是admin.reddit[.]com或admin.wikihow[.]com,這兩個域名則是托管在CDN上的合法域名。

經(jīng)過混淆的Shellcode

在我們觀察到的5個樣本中,Blister會通過加載經(jīng)過混淆的Shellcode來投放Cobalt Strike。通過回溯VirusTotal并深入分析,我們得到了下列Shellcode執(zhí)行流:

640.jpg

Shellcode相對比較簡單,其入口點位于緩沖區(qū)的開頭部分,緩沖區(qū)則負(fù)責(zé)調(diào)用解碼存根,這個調(diào)用指令會自動將下一條指令的地址推送到堆棧上,解碼存根將其用作開始改變內(nèi)存的起點:

640.jpg

在解碼存根的末尾,它要么跳轉(zhuǎn),要么回調(diào),然后調(diào)用解密函數(shù)。該解密函數(shù)使用RC4,但S-Box已經(jīng)初始化,因此沒有實現(xiàn)密鑰調(diào)度算法。最后,它會跳轉(zhuǎn)到最后一個Payload。

環(huán)境屬性

從2022年更新以來,Blister引入了一個可選的域名哈希屬性,它可以計算目標(biāo)設(shè)備的DNS搜索域名(ComputerNameDnsDomain)。只有當(dāng)計算出來的哈希與配置的域名哈希屬性相匹配的時候,惡意軟件才會繼續(xù)執(zhí)行。

第一階段的混淆處理

引入了混淆處理后,攻擊者注入了大量的垃圾指令和垃圾數(shù)據(jù),Blister的檢測將會更加困難。下圖顯示的是我們近期捕捉到的Blister樣本的兩個加載器組件代碼,一個經(jīng)過了混淆(右),另一個則是沒混淆后的版本(左):

640.jpg

Mythic代理投放

Blister投放的Mythic代理幾乎都是類似的,但我們目前還無法將其與其他公共代理進(jìn)行關(guān)聯(lián)。這可能意味著,Blister的開發(fā)人員創(chuàng)建了他們自己的Mythic代理。

所有的Mythic代理都使用了相同的結(jié)構(gòu),并在可執(zhí)行程序的.bss字段中使用了加密配置。代理有自己的加密配置,并會通過XORing進(jìn)行解密,下圖顯示的是BlisterMythic配置解密代碼:

640.jpg

解密后的BlisterMythic配置如下:

640.jpg

總結(jié)

在這篇文章中,我們對近期捕捉到的Blister樣本進(jìn)行了深入的技術(shù)分析,并提供了相關(guān)的Yara規(guī)則和IoC來輔助廣大研究人員對Blister進(jìn)行檢測。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論