蔓靈花(BITTER)APT組織近期針對孟加拉國攻擊活動的分析
蔓靈花(BITTER),國外著名APT組織,因該組織常用的特種木馬數據包頭部為“BITTER”而得名,近一兩年持續針對我國重點行業單位進行釣魚攻擊,其中攻擊方式較多樣,橫跨PC端到移動端。
BITTERAPT組織是一個長期針對中國、巴基斯坦等國家進行攻擊活動的APT組織,該APT組織為目前活躍的針對境內目標進行攻擊的境外APT組織之一。該組織主要針對政府、軍工業、電力、核等單位進行攻擊,竊取敏感資料,具有強烈的政治背景。該組織最早在2016由美國安全公司Forcepoint進行了披露,并且命名為“BITTER”。
SECUINFRAFalcon團隊分析了最近由南亞高級持續性威脅組織“Bitter”發起的攻擊。該運動專門針對孟加拉國的(軍事)組織。通過惡意文檔文件和中間惡意軟件階段,攻擊者通過部署遠程訪問木馬進行間諜活動。
SECUINFRAFalcon團隊發現了最近的一次攻擊,該攻擊是由高級持續威脅組織“Bitter”(也稱為T-APT-17)發起的針對孟加拉國的活動。
Bitter使用惡意文檔文件作為誘餌,其中包含所謂的“方程式編輯器漏洞”的不同實現,以下載后續的惡意軟件階段。
第二階段包括一個加載程序,它收集有關受感染系統的信息并從遠程服務器檢索第三階段。
Bitter攻擊的第三階段可以包含不同類型的惡意軟件,例如鍵盤記錄程序、竊取程序或遠程訪問木馬(RAT)。研究人員分析了一種較新使用的RAT,研究人員將其稱為“AlmondRAT”。
據說,BitterAPT組織至少從2013年就開始活躍,2016年Forcepoint實驗室首次報道了該組織,當時它主要針對巴基斯坦。該威脅組織被懷疑位于亞洲南部。甚至在那個時候,該組織就在使用魚叉式釣魚電子郵件來利用MicrosoftOffice(例如CVE-2012-0158)并下載其他惡意軟件,因此與他們今天的攻擊相比,他們的作案手法根本沒有改變。正如BitDefender在2020年報道的那樣,它們有時還會針對帶有遠程訪問木馬的Android設備。
2019年2月,PaloAltoNetworks使用名為“ArtraDownloader”的第二階段下載器記錄了Bitter攻擊,該下載器自2017年以來一直在使用。中國和沙特阿拉伯組織也被添加到目標列表中。
正如Cyble和卡巴斯基在2021年發現的那樣,Bitter組織不僅能夠利用舊的Office漏洞利用,例如濫用零日漏洞,如Windows內核漏洞(CVE-2021-1732)和Windows桌面窗口管理器中的漏洞(CVE-2021-28310)用于權限提升。
2022年5月,CiscoTalos分享了對從2021年10月到2022年2月期間針對孟加拉國用戶的新Bitter活動的分析,其中包含一個名為“ZxxZ”的新的第二階段下載器。
本報告以Forcepoint實驗室發布的調查結果為基礎,涵蓋了可能在2022年5月中旬進行的一次攻擊。
在本報告發布前不久,奇安信威脅情報中心發布了一份關于近期針對孟加拉國軍事部門活動的報告。他們還提到了這篇博文中分析的RAT樣本。
7月4日,@c3rb3ru5d3d53c發布了一份關于針對巴基斯坦活動的報告。除了與研究人員的方法相匹配的許多分析步驟之外,還演示了如何將ZxxZ下載器與自定義C2服務器一起使用。
ExcelMaldoc
惡意Excel文檔(1bf615946ad9ea7b5a282a8529641bf6)樣本是通過公共Any.Run沙盒服務獲取的。與之前由Bitter進行的活動一樣,該文件很可能是通過魚叉式網絡釣魚電子郵件傳播的,而該電子郵件無法用于分析。SimonKenin(k3yp0d)在Twitter上之前提及過這個樣本。
該文件的文件名為“Repairofdifferentcsoccstc,chinasupplysystem–BNSBIJOY.xls”。縮寫csoc和cstc可能分別代表“ChinaShipbuilding&OffshoreInternationalCo.Ltd”和“ChinaShipbuildingTradingCo.Ltd”,BNSBijoy是一艘“城堡級導彈護衛艦”(小型軍艦)的名稱。
該文檔不包含文件名所暗示主題的可讀內容,僅包含白色矩形圖像和unicode字符,這應該提醒受害者它不是合法文檔。打開文件后,識別為CVE-2018-0798的公式編輯器漏洞就會執行。

Excel文檔的可見內容
在不以任何方式提醒用戶的情況下,方程式編輯器在后臺啟動并用于下載下一個惡意軟件階段并執行它。通過使用ProcMon跟蹤進程樹,研究人員可以看到下載的二進制文件已寫入C:\$Drw\fsutil.exe并由Windows資源管理器執行。

方程式編輯器的過程樹
為了從Maldoc中提取信息,研究人員首先選擇了動態方法。通過gflags.exe(WindowsSDK的一部分)為EquationEditor可執行文件注冊調試器,研究人員可以在打開Excel文檔后將x32dbg附加到進程。

為EquationEditor注冊一個調試器
由于Excel正在等待公式編輯器退出,研究人員的調試會話將在固定時間后結束,并顯示以下錯誤消息,因此研究人員必須以不同的方式處理它。

調試公式編輯器時出現錯誤對話框
使用DidierStevens開發的著名oledump工具,研究人員可以查看Excel文件中的數據流。在本例中,研究人員對名為EquationNative的流A4特別感興趣。

使用oledump查看Excel文件的內容
通過指定流和-d參數,研究人員可以轉儲它以進一步分析它。

轉儲方程流
在十六進制編輯器中打開轉儲文件,研究人員可以直觀地識別兩個不同的數據段。以綠色突出顯示的數據可能是EquationEditor漏洞利用所需的shellcode。由于那里幾乎沒有可讀的ASCII字符串(仔細觀察,研究人員可以發現看起來像“URL”或“http”的片段),這些數據可能以某種方式被編碼或加密。在此之下,研究人員可以看到重復模式的數據,這些數據用作內存損壞漏洞利用CVE-2018-0798的填充。

在Hex編輯器中分析shellcode
為了嘗試解碼數據的shellcode部分,研究人員對其進行了頻率分析(Okteta十六進制編輯器的一個非常有用的功能)以確定哪些值出現最多,因為在SophosLabs2019年的一份報告中,分析了CVE-2018-0798的一個maldoc構建器,該構建器實現了基于xor的shellcode編碼。對于這個惡意文檔,最常見的字節是FF,所以研究人員假設這可以編碼為空字節,因此FF可能是單字節XOR編碼中的鍵。

在shellcode上運行頻率分析
使用假定的shellcode部分和XOR鍵的Cyberchef確實會產生可讀的字符串。從這里研究人員可以提取有關執行的shellcode和指標的重要信息,例如下一個惡意軟件階段的URL。

解碼XOR的shellcode
下面的可視化顯示了在shellcode中進行的最重要的API調用:

顯示maldocshellcode功能的圖表
通過再次調試EquationEditor漏洞并手動設置斷點,例如URLDownloadToFileA研究人員可以確認這些發現。

手動加載urlmon.dll以在URLDownloadToFileA上放置斷點
對emshedulersvc[.]com/vc/vc的下載查詢返回Bitter第二階段下載器的樣本,研究人員將在接下來對其進行研究。

中斷URLDownloadToFile
ZxxZ/MuuyDownloader
大約從2021年下半年開始,Bitter從他們的第二階段ArtraDownloader切換到一個新的但類似的實現,由Talos命名為“ZxxZ”,由奇安信威脅情報中心命名為“MuuyDownloader”。它是在VisualC++中實現的,并且在第一次檢查時似乎沒有打包。編譯時間戳表明該二進制文件構建于2022年5月11日,與惡意文檔的時間范圍相匹配。

輕松解析PE文件
將這個指紋識別函數與CiscoTalos文檔中的指紋識別函數進行比較,研究人員可以看到Bitter釋放了ZxxZ值分隔符(它為Downloader命名)以換取一個簡單的下劃線。這樣做可能是為了避免通過基于這種非常特殊的分隔符的IDS/IPS系統進行檢測。回顧以前對Bitter的研究,研究人員可以看到威脅組織喜歡不時更改這些模式以避免被發現。

ZxxZ收集系統信息
使用攻擊者控制的 臨時服務器簽入包含系統的用戶帳戶和主機名。下面的函數手動組裝HTTPGET請求并通過套接字連接將其發送到C2服務器。

ZxxZ向C2發送帶有主機指紋的GET請求
研究人員使用數據包捕獲驗證了這種網絡通信。Bitter基礎設施中的另一個常見指標是LiteSpeed網絡服務器的使用,這在以前的報告中也有記錄。??
上面GET請求的抓包?
在從 臨時服務器獲取下一個惡意軟件階段后,ZxxZ將二進制寫入磁盤并嘗試執行它。在下面的截圖中,研究人員可以看到Bitter組將Talos之前記錄的DN-S(下載成功)和RN_E(運行錯誤)的C2操作碼字符串更改為S和F,這可能是成功和失敗的簡寫。這很可能是逃避原有偵查規則的另一種手段。有效負載執行也被更改為使用CreateProcessA,而不是像老版本ZxxZ中的ShellExecuteA。

ZxxZ檢索并執行下一階段
不幸的是,無法從 臨時服務器檢索實際的有效負載,因為它只返回了一個名為CAPT.msi的空文件。
Almond RAT
Bitter部署的遠程訪問木馬(RAT)(通常稱為BitterRAT)的信息有限,有時甚至相互矛盾。研究人員發現Bitter根據場景和目標部署了不同的RAT實現/變體。
在本例中,研究人員分析了一個基于. net的RAT病毒樣本,研究人員無法通過以前的報告或開源存儲庫識別它。由于缺乏現有的檢測方法和更好的名稱,研究人員將在此分析中稱其為“AlmondRAT”。這個樣本是由推特用戶@binlmmhc首先提到的。上面提到的奇安信最近的報道稱,這款RAT只是“輕量級遠程攻擊”。

解析AlmondRATPE文件
基本功能
RAT的主要函數在調用StartClient函數之前檢查互斥字符串saebamini.comSingletonApp。事實證明,即使是熟練的攻擊者有時也需要查找非常簡單的事情:在本例中,一個簡短的教程是關于只允許C#應用程序的一個實例運行,它使用相同的互斥字符串。與往常一樣,他們只復制了一半的答案,并忘記在最后包括對ReleaseMutex的調用......

設置Mutex
AlmondRAT采用字符串加密來阻礙檢測和逆向工程。因此,下面的命令和控制(C2)IP地址等重要/揭示字符串包含在ciphertext.Decrypt函數中。

StartClient函數,顯示AES字符串加密
解密函數實現了一個默認的AES-256-CBC加密方案,其中IV和密鑰是通過PDKDF2從給定的明文密碼派生的。因為在Python中重新實現這個很簡單,所以研究人員解密了二進制文件中所有加密的字符串,并修改了.NET程序集以增加此報告的代碼可讀性。

使用AESCBC的字符串解密函數
StartClient函數為Almond RAT實現了基于套接字的C2通信接口。在研究人員觀察到的樣本中,沒有域或動態DNS服務,只有用于連接回攻擊者的IPv4地址。RAT的一個特性是使用tcp端口33638。當第一次聯系C2服務器時,AlmondRAT會傳輸收集到的系統信息,如主機名、操作系統版本、內部IP地址和MAC地址以及存儲標識符(不傳輸磁盤信息)以識別受感染的系統。一個1024字節的緩沖區用于C2通信。

StartClient函數
功能和C2通信的分析
接下來研究人員將進一步研究AlmondRAT的功能。在StartCommWithServer函數開始時,RAT為套接字設置20到30秒之間的隨機接收超時。分析的樣本總共接受七個不同的命令。REFRESH命令用作心跳信號,讓C2服務器知道RAT仍處于活動狀態,并以簡單的OK進行回復。
DRIVE命令返回已連接存儲設備的列表。
使用DELETE*命令,攻擊者可以通過提供路徑來刪除可訪問的文件。在權限不足的情況下,它將返回異常。命令字符串中的“*”用于分隔命令和文件路徑。

基本C2函數
Almond RAT允許通過包裝好的cmd.exe實例執行任意命令。它有自己的實現,通過cd修改目錄,通過OK列出目錄。CMD命令使用波浪號而不是星號來分隔命令的各個部分。

命令執行
除了通過命令提示符列出目錄和文件的功能之外,RAT病毒還支持一個相當復雜的DIR*命令。它能夠驗證文件可訪問性并顯示元數據,比如上次文件寫入時間。

目錄和文件列表
由于Bitter的主要目標是間諜活動,他們需要一種方法將數據從系統泄露到C2服務器,這是通過DOWNLOAD*命令完成的。
為了將更多的惡意軟件或其他文件放到系統中,它還支持UPLOAD*命令,該命令使用以下文件命名方案:yyyyMMdd-hhmmss_filename。

DOWNLOAD*和UPLOAD*函數
如果RAT收到來自操作員的未知命令,它將返回消息XXX以指示錯誤。

出現未知命令時的異常處理
Almond RAT的主要目的似乎是發現文件系統、數據導出以及加載更多工具/建立持久性。這些工具的設計方式似乎可以快速修改并適應當前的攻擊場景。
托管基礎設施/網絡指標
下載器的臨時服務器和RAT的臨時服務器由HostSailor托管。下載器的命令與控制服務器由Namecheap托管,而用于AlmondRAT的命令與控制服務器由Nexeon Technologies托管。除了本報告中分析的樣本外,在這四個域中沒有檢測到其他重要的惡意軟件活動。

在調查這些DNS條目時,研究人員還注意到在30.05.2022上創建了194.36.191[.]196上的spurshipbroker[.]com的新記錄。該域名似乎是印度海運和運輸公司spurshipbrokers[.]com的所謂“typosquat”(冒名頂替)。在Bitter使用的這個Webhost/IP上,該記錄在看似合法的虛擬主機和銀行網站的域名仿冒之間脫穎而出。雖然研究人員目前沒有進一步的證據表明這與Bitter的活動有關,但它確實符合該組織和海軍主題誘餌的做法。