頻道欄目
首頁 > 資訊 > 殺毒防毒 > 正文

BetaBot木馬分析

15-11-07        來源:[db:作者]  
收藏   我要投稿

0x00 背景介紹


在當下全球網絡威脅活動中,國外攻擊者主要使用Zeus、CryptoWall、Bedep、各類常見RAT工具等作為惡意負載,但在最近我們監控惡意威脅的過程中,發現個別高級樣本攻擊中使用了較為少見的BetaBot木馬,關于此木馬很少有相關的分析資料。在進一步了解、分析后發現,該木馬還是具有很強的危害和對抗手段。為了方便監控BetaBot木馬惡意攻擊活動,所以記錄相關分析結果,以供參考。

0x01 功能介紹

BetaBot,又被稱為Neurevt,大概從2013年3月出現在地下市場被出售,售價大約在$120到$500。使用HTTP協議進行通信,使用RC4算法進行加密,代碼使用C++語言編寫,功能強大。據作者聲稱,該木馬具備破壞殺軟、自保護、BotKiller、Userkit(Ring3 Rootkit)、自定義注入技術、防其他木馬感染、、DDoS、網絡監視/阻塞、USB設備感染、SOCKS4代理、自校驗保護、過UAC、反Sandbox等功能。

下圖為示例的BetaBot服務端界面

0x02 木馬功能
系統駐留

添加注冊表自啟動

添加Windows Tasks

收集信息

運行環境、系統信息、硬件信息、軟件信息等

例如軟件信息搜集

啟動參數

部分命令以程序啟動參數傳入解析并執行

DDoS

支持4種類型的DDoS攻擊方式

System Wide Userkit(Ring3 Rootkit)

功能名稱引用作者描述,用于隱藏保護木馬。

HOOK API列表

UAC欺騙繞過

根據用戶語言習慣構造錯誤信息,欺騙用戶

調用cmd.exe或者rundll32.exe觸發UAC,實際調用木馬自身

根據用戶語言習慣構造錯誤信息

在BetaBot木馬對抗殺軟介紹時作者也提到了使用”社會工程學”的手段

配置解密

BetaBot的配置數據包含運行時所需要的釋放目錄位置、C&C、通信密鑰等重要信息,并加密存放在木馬文件內。

配置數據解密流程可以分為:

解密整體Config依次解密C&C Entry

配置文件結構大小是0x0D56字節(隨木馬版本更新),下圖為解密整體config初始化代碼,構造參數,動態解密執行代碼,替換啟動線程。

解密線程從imagebase搜索加密config特征,通過RC4和4字節異或進行解密,RC4解密key在自身代碼中保存,解析出所需數據后,使用自更新的加密key重新加密。

解密結果如下

上圖中前半部分已經解密,偏移0x156起始的C&C Entry還需要使用圖中偏移0x6選中內容作為key解密,解密流程見下圖

可以看出該木馬最多可以支持16個C&C配置。

例如解密出的一條C&C配置,其中包含了域名(偏移0x26)、端口(偏移0x14)、path(偏移0x66)、C&C通信key1(偏移0xAA)、key2(偏移0XB7)。

C&C通信解密
請求過程

構造請求數據

RC4加密請求數據并進行bin2hex轉換,加密key是由C&C Entry配置的key1和隨機字節序列拼接處理得到。

第一次請求會附上額外信息。

額外信息異或特定值并進行bin2hex轉換。

最后將參與加密請求數據的隨機字節序列進行bin2hex轉換和上述bin2hex轉換信息一起發送到服務端。

發送數據如下

響應過程

服務器響應包含兩部分,header和body。

首先需要解密header,其中最重要的是8個DWORD組成的數組streams_array,位于偏移0x3C,表示body各個結構的長度。

解密過程如下,RC4加密key是由C&C Entry的key1和response數據的前四個字節組合異或得到。

最后根據streams_array計算body長度然后解密。

加密的body位于偏移0x5C,解密過程如下,RC4加密key是由C&C Entry的key2和response數據偏移0x4四個字節組合異或得到。

最終解密結果如下圖,此圖所示是服務端下發的監視域名列表配置。

其他

DNS阻斷、表格抓取等功能可見參考鏈接。

0x03 對抗手法
反調試

1.ZwQueryInformationProcess檢測DebugPort

2.DbgBreakPoint對抗

3.ZwSetInformationThread

4.多處代碼執行過程反調試對抗

例如解密config代碼中

反虛擬機

反JoeBox,GFI,Kasperksy,CWSandbox,Anubis等沙箱

反Sandboxie沙箱

反wine

導入API加密

通過遍歷系統dll導出表,拼接成moduleName+’.’+APIName計算hash進行搜索

Hash計算方式

對抗殺軟

檢測殺軟類型

禁用殺軟

代碼加密、動態替換

解密執行代碼過程,例如解密Config線程函數體內容

在一些函數調用時通過替換stub參數實現。例如stub原始代碼

替換參數

Snort檢測規則
alert http any any -> any any (msg: "Betabot Windows RAT Trojan Online Request"; flow: established, to_server; content: "POST"; http_method; content:"="; http_client_body; pcre: "/=\d{8}&/P"; content: "1="; distance:1; http_client_body; content: "2="; distance:1; content: "3="; distance:1; content: "4="; distance:1; content: "5="; distance:1; flowbits: set, betabot_online; classtype: trojan-detect; sid:010200291; rev:1; )
相關TAG標簽
上一篇:破解并修復VoLTE:利用隱藏的數據通道和錯誤的實現方式
下一篇:sqlserver樹狀結構表中,獲取指定節點的所有父節點路徑
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

美女MM131爽爽爽毛片