摘要在2021 年7 月27 日至12 月1 日期間,Unit 42 研究人員觀察到Agent Tesla 和Dridex 惡意軟件樣本激增,這些樣本是被Excel 插件(XLL) 和Office 4.0 宏釋放的。我們發現Excel 4.0 的宏釋放程序主要用於釋放Dridex,而XLL 下載程序用於釋放Agent Tesla 和Dridex。雖然惡意XLL 文件已經為人所知很長一段時間,但它們在威脅環境中的再次出現則代表了一種新趨勢。
我們觀察到的XLL 文件主要通過電子郵件傳播,其中包含從abcovid[.]tech 電子郵件地址發送的報價誘導內容,電子郵件主題為“INQUIRY”。這些電子郵件的目標包括以下行業的組織:製造業、零售業,聯邦、州和地方政府,金融,藥品,運輸,教育以及美國、歐洲和東南亞的其他幾個國家。此外,我們看到的一些惡意XLL 文件濫用了名為Excel-DNA 的合法開源Excel 插件框架。
本文,我們先來看看XLL 文件屬性、被濫用的合法開源框架和最終的Agent Tesla 有效載荷。下一部分我們將介紹其他感染流程,即提供Dridex 樣本的XLL 和Excel 4 (XLM) 釋放程序。
Palo Alto Networks 客戶可通過Cortex XDR 或WildFire 雲傳播的下一代防火牆安全訂閱,獲得針對此處討論的攻擊的保護。
感染鏈下圖中的流程圖顯示了我們在調查期間觀察到的兩個可能的事件鏈:
受害者收到一封帶有惡意附件的電子郵件;
附件是一個惡意的XLL或XLM文件;
在XLL的情況下,當運行它時,它會:
釋放一個中間投放程序,該投放程序又會釋放一個Agent Tesla 有效載荷;
從Discord 下載Agent Tesla 有效載荷;
從Discord 下載Dridex 有效載荷;
在XLM 的情況下,運行時它會釋放一個VBS 下載程序,該下載程序從Discord 下載並執行Dridex 示例。
雖然Agent Tesla 和Dridex 感染鏈不一定由同一個攻擊者傳播,但它們似乎是感染載體新趨勢的一部分。
感染鏈
什麼是XLL ?XLL 是Excel 插件的擴展,實際上,XLL 只是一個普通的PE-DLL 文件。 XLL 文件擴展名與一個圖標相關聯,該圖標與其他Excel 支持的擴展名非常相似。反過來,普通用戶不會注意到XLL 和其他Excel 文件格式之間的任何區別,並且可以被誘導打開它。這可能令人驚訝,但是Excel很樂意在雙擊時加載和執行XLL文件。
XLL 圖標
Excel 加載XLL 後,會根據定義的XLL 接口調用XLL 文件的導出函數。其中兩個接口函數很突出:xlAutoOpen 和xlAutoClose。這些函數在加載程序激活或停用後分別被調用。這些函數可以用來加載惡意代碼,類似於經典VBA宏中的Auto_Open和Auto_Close方法。
XLL 文件的一個缺點是它們只能由Excel 以正確的位加載,例如,64 位XLL 只能由64 位版本的Excel 加載。 32 位版本也是如此。因此,惡意軟件開發者必須依賴安裝在受害者設備上的Excel 版本。
與VBA 宏一樣,Excel 將警告用戶執行插件引起的安全問題。
嘗試執行XLL 文件時Excel 發出警告
由於上述原因,XLL 文件對於尋求在受害設備上獲得初步立足點的攻擊者來說可能是一個不錯的選擇。攻擊者可以將代碼打包到Excel 加載的DLL 中,這反過來可能會誤導不准備處理這種情況的安全產品。
下圖顯示了PE 編輯程序中的XLL 文件示例。在其他導出函數中,我們可以找到xlAutoOpen 和xlAutoClose 函數。
PE 標頭編輯程序CFF Explorer 顯示的Excel 插件導出
惡意Excel 插件(XLL) 下載程序我們觀察到帶有以下XLL 樣本的惡意電子郵件:
SHA256:7a6f8590d4be989faccb34cd393e713fd80fa17e92d7613f33061d647d0e6d12
SHA256:fbc94ba5952a58e9dfa6b74fc59c21d830ed4e021d47559040926b8b96a937d0
Excel-DNA我們遇到的XLL 示例使用了一個用於Excel 插件開發的合法開源框架,稱為Excel-DNA。該框架有幾個功能也適合惡意軟件開發者。一種是無需“接觸”磁盤即可將打包在PE 資源中的壓縮.NET 程序集直接加載到內存中的功能。因此,儘管Excel-DNA 是一個合法的框架,但它具有類似於惡意加載程序的功能,並且可以作為加載程序被濫用。
Excel-DNA 還有另一個屬性可能會阻礙Yara 的覆蓋,甚至惡意軟件開發者也可能不知道。出於某種原因,許多Excel-DNA樣本有10000多個導出函數,其中大多數是沒有任何有意義的函數。 Yara PE模塊導出函數解析限制只有8192個。因此,針對位於索引高於8192 的某個導出名稱的Yara 規則將不會與樣本匹配。
當我們查看Excel-DNA XLL 的資源時,我們可以看到一個名為__MAIN__ 的XML 資源。此資源包含有關Excel-DNA 加載哪個模塊的信息。在我們的示例中,指定的模塊將從名為JACK 的資源中被解壓縮。
資源將使用LZMA 算法解壓縮,然後加載到內存中。
Excel-DNA 資源
我們已經創建了用於從Excel-DNA插件中提取這類程序集的Python代碼。你可以在Unit 42 GitHub 存儲庫中找到此腳本。
Jack 資源加載的模塊是一個簡單的釋放程序,加載模塊後,將調用AutoOpen 方法。此方法中的惡意代碼將最終的有效載荷可執行文件放入%AppData%\service.exe 並執行它。值得注意的是,Jack 中包含的模塊是可配置的,這意味著在其他版本中它可以下載有效載荷而不是釋放它,以及釋放一個真正的Excel 模板並執行它。
配置如下圖所示,其中包含以下選項:
bDown:下載有效載荷。
templateEnabled :釋放並打開一個Excel 模板。
有效載荷:包含要釋放的有效載荷。
使用AutoOpen方法反編譯JACK 下載程序模塊的代碼,如dnSpy所示。
下載程序配置變量和字節數組中包含的最終有效載荷
最終有效載荷——Agent TeslaSHA256:AB5444F001B8F9E06EBF12BC8FDC200EE5F4185EE52666D69F7D996317EA38F3最終的有效載荷是一個經過混淆的Agent Tesla 樣本。在功能方面,Agent Tesla 被廣泛記錄。我們的示例使用SMTP 協議將被盜數據洩露到電子郵件phantom1248@yandex[.]com。下圖顯示了我們的Agent Tesla 樣本的反編譯入口點。它的結構與其他Agent Tesla 樣本類似。
Agent Tesla 的反編譯主函數
字符串解密Agent Tesla 示例將其所有字符串以加密形式存儲在大量字符中。
初始化時,示例將“大字節數組”的每個字節與硬編碼字節170 和“大字節數組”中字符的索引(修剪為字節大小)進行異或。接下來,樣本通過將解密後的數組拼接成已知的偏移量和相應的長度來填充一個存儲所有字符串的數組。例如,讓我們檢查偏移量665 中的8個字節:
下面的代碼將解密後的字節數組偏移量665處的8個字節分配給字符串數組的第53個成員。
字符串分配代碼
通過解密的字符串數組,我們可以看到Agent Tesla想要竊取的各種目標:
敏感的瀏覽程序信息和cookie;
郵件、FTP 和VPN 客戶端信息;
來自Windows Vault 的憑據;
記錄的擊鍵和屏幕截圖;
剪貼板信息;
Windows Vault為了從Windows Vault 竊取信息,Agent Tesla 開發者似乎將PowerSploit 腳本轉換為C# 以構建.NET 程序集。
它使用P/Invoke 從vaultcli.dll 庫中調用API 函數。首先,將調用VaultEnumerateItems 以獲取所有可用的庫。接下來,將使用VaultOpenVault 打開每個庫。庫打開後,將使用VaultEnumerateItems 枚舉包含的項目。最後,使用VaultGetItem 讀取項目的屬性。 Agent Tesla 將查詢記錄為自己的列表中的項目(手動反混淆代碼如下圖所示)。
用於記錄提取的Windows Vault 項目的反混淆Agent Tesla 代碼
下面是Agent Tesla 用來竊取信息的Windows Vault GUID和相應的描述列表:
總結近期惡意軟件激增,我們分析了使用Excel 插件(XLL) 的感染鏈,還描述了惡意軟件開發者如何濫用合法的Excel-DNA 框架來創建這些惡意XLL。最後,我們簡要描述了最終的Agent Tesla 有效載荷以及它試圖從受害者係統中竊取的信息,重點是Windows Vault 數據。在最近的攻擊中使用Excel 插件可能表明攻擊發展的新趨勢。
在下一篇文章中,我們將描述另一個感染鏈,其中涉及使用Excel 4.0 宏來傳播Dridex。
Recommended Comments