年初,Bumblebee加載程序的活動激增,由於其與幾個著名的惡意軟件家族有關,因此引起了安全研究人員的注意。
Bumblebee一直在快速迭代,其加載系統在幾天內經歷了兩次徹底的更新,首先是從使用ISO格式文件到包含powershell腳本的VHD格式文件,然後再恢復原貌。
Bumblebee服務程序在6月前後發生的行為變化表明,攻擊者可能已經將他們的重點從大規模監測惡意軟件轉向了攻擊盡可能多的受害者。
儘管該攻擊包含一個名為group_name的字段,但它可能不是一個與集群相關的活動的良好示例:具有不同group_name值的示例顯示了類似的行為,這可能表明同一個攻擊者同時運營多個group_name。加密密鑰的情況並非如此:不同的加密密鑰通常意味著不同的行為。
Bumblebee的有效負載因受害者類型而異。受感染的獨立計算機可能會受到銀行木馬或信息竊取者的攻擊,而組織網絡可能會受到更先進的後期利用工具(如CobaltStrike)的攻擊。
技術分析Bumblebee加載程序通常以類似於DLL的二進製文件的形式出現,並使用自定義打包程序打包。此DLL的傳播方法似乎會隨著攻擊者而異。目前最流行的方法是將打包的DLL直接嵌入另一個文件(通常是ISO)中,在6月份的一段短暫時間內,惡意軟件的操作人員嘗試使用VHD文件,執行PowerShell下載並解密打包的DLL本身(用一個非常不同的打包程序打包)。這種趨勢似乎已經消失,現在可以再次在第一階段文件中直接找到DLL,無論是ISO還是VHD。
一旦解壓,Bumblebee將執行檢查,以避免在沙箱或分析環境中執行,負責這項工作的大部分代碼都是開源的,直接從Al-Khaser項目中提取出來。如果避開安全監測,Bumblebee將繼續將其配置加載到內存中。這是通過從它的.data部分加載四個指向連續加密配置結構中的四個不同緩衝區的指針來實現的。第一個指向一個80字節的部分,它存儲一個RC4 ascii密鑰(在我們所觀察到的所有示例中都要短得多)。其他三個指針指向兩個80字節的部分和一個1024字節的部分,所有這些部分都包含隨後使用上述RC4密鑰解密的數據。
解密後,大多數示例中的第一個80字節緩衝區僅包含數字“444”,惡意軟件沒有使用這個數字,所以它的意義不清楚。第二個緩衝區包含一個被惡意軟件標記為group_name的ASCII碼。最後,1024字節塊包含一個命令和控制服務程序列表(其中大多數通常是假的)。
Bumblebee加密配置
Bumblebee通過連接一些不可變機程序參數(在本例中為機程序名和GUUID)的常用方法計算特定於機程序的偽隨機受害者ID(內部命名為client_id),然後計算結果的哈希值(在本例中為MD5摘要)。
利用這些數據和從受害系統收集到的其他特點,Bumblebee以JSON格式構建了CC簽入,如下所示:
該字符串使用之前配置時使用的相同的RC4密鑰加密,並以25秒到3分鐘的隨機延遲重複發送到其C2服務程序,而不管服務程序是響應還是關閉。來自命令和控制服務程序的響應也是JSON格式,也使用相同的RC4密鑰加密。響應本身的內容自然是不同的,例如,可以是一個空響應:
或者一些要注入或執行的負載:
在接收有效負載的示例中,響應的結構將包含json任務部分中的特點列表,每個特點都有一個命令和一個有效負載。每個特點都將包含一個任務字段,其中包含要執行的命令的名稱,以及一個名為task_data的部分中一個base64編碼的有效負載。
殭屍網絡行為分析直到7月初,我們一直觀察到命令和控制服務程序的一個非常奇怪的行為。一旦為受感染的受害者生成client_id並將其發送到命令和控制服務程序,該命令和控制服務程序將停止接受來自同一受害者外部IP的其他不同的client_id代碼。這意味著,如果一個組織中使用同一公共IP訪問internet的多台計算機受到感染,C2服務程序將只接受第一台受感染的計算機。但是幾個星期前,這個功能突然被關閉,大大增加了與受感染受害者建立的連接的數量(可能表明該惡意軟件的測試階段已經結束)。
這種行為促使研究人員特別關注Bumblebee在不同執行環境中的行為。值得注意的是,儘管在每個示例中都硬編碼了一個名為group_name的字段,但在每個請求中都會將該值發送到命令和控制服務程序。此外,上述“每個IP地址一個client_id”策略似乎適用於不同的group_name,但不適用於不同的RC4加密密鑰,這似乎意味著同一殭屍網絡使用多個group_name可能標記不同的活動或不同的受害者集。因此,與按group_name分組相比,按加密密鑰分組活動似乎是一種更前後一致的方法。
研究人員觀察到幾個具有相同RC4密鑰和不同group_name的示例在非常接近的時間範圍內行為相同並實現了相同的攻擊,而使用不同RC4密鑰的示例表現出完全不同的行為,這一事實進一步支持了這一假設。
不同Bumblebee示例根據其RC4密鑰釋放了相同的有效負載
事實上,不同的示例使用相同的RC4密鑰接觸的不同IP地址的命令和控制服務程序會返回相同的有效負載,並為受害者阻止相同的client_id,這一事實也表明,這些IP地址實際上只是一個主命令和控制服務程序的前端,所有Bumblebee連接都中繼到該服務程序。
這些殭屍網絡行為的另一個有趣的特點是,Bumblebee釋放到受害者機程序中的工具集是如何根據目標的類型而有所不同。為了部署攻擊,在bumblebee支持的5個命令中,有3個命令導致從C2服務程序下載代碼並執行:
DEX:將可執行文件部署到磁盤並運行它。
DIJ:將庫注入進程並執行它。
SHI:向進程中註入並執行shellcode。
作為對各種Bumblebee殭屍網絡持續監控的一部分,研究人員一直在監控基於網絡類型或地理位置等因素的行為差異。雖然受害者的地理位置似乎對惡意軟件的行為沒有任何影響,但研究人員觀察到,Bumblebee在感染了屬於域(共享同一個Active Directory服務程序的邏輯網絡組)的機程序後,與連接到工作組(微軟術語,表示點對點局域網)的從公司網絡中隔離出來的機程序之間存在非常明顯的差異。
如果受害者連接到WORKGROUP,在大多數示例中,它會收到DEX命令(下載和執行),這將導致它從磁盤上釋放並運行一個文件。這些有效負載通常是常見的盜竊程序,如Vidar Stealer,或銀行木馬:
Bumblebee C2響應,其中包含一個Base64編碼的有效負載的DEX命令
另一方面,如果受害者連接到AD域,它通常會收到DIJ(下載和注入)或SHI(下載shellcode和注入)命令。
帶有DIJ命令的Bumblebee C2響應,其中包含Base64編碼的有效負載
在這些示例中,產生的攻擊來自更先進的後開發框架,如cobalt tstrike、silver或Meterpreter。
在這些示例中,還可以觀察到,無論命令和控制服務程序的IP和group_name字段如何,使用相同RC4密鑰的示例都會使用相同的團隊服務程序釋放相同的Cobalt Strike信標,這已被證明是將不同示例作為同一殭屍網絡的一部分相互關聯的非常有用的方法。
由Bumblebee釋放的有效負載的最後一個有趣特性是,在許多示例中,使用DEX命令下載的二進製文件和使用DIJ命令下載的那些二進製文件都是使用同一個Bumblebee打包程序打包的。
總結通過分析Bumblebee操作人員使用的命令和控制服務程序的行為,研究人員觀察到他們如何調整其感染鏈的行為方式,有時這種方式會大大增加活動受害者的數量和C2流量
目前,即使在不同的Bumblebee殭屍網絡中,在部署第二階段有效負載之前的行為也非常相似,但從選擇第二階段的有效負載開始的進一步行為會根據所使用的RC4密鑰而變得不同。除了使用RC4密鑰本身之外,此行為還可以將活動分組到不同的集群中。
與其他使用第三方打包程序和現成的繞過防病毒工具的攻擊不同,Bumblebee對攻擊本身和部署在受害者電腦上的一些示例使用自己的打包程序,就像其他高級惡意軟件家族(如Trickbot)一樣。雖然這讓Bumblebee操作員在改變行為和添加功能方面有了更大的靈活性,但使用獨特的自定義工具也可以作為一種快速識別Bumblebee野外活動的方法。
Recommended Comments