攻擊者使用 VSTO 接替宏進行武器化攻擊
幾十年來,VBG 宏代碼都是攻擊者的核心工具。但自從微軟開始默認阻止來自互聯網的 Office 文件的所有 VBA 宏,這一攻擊途徑受到了極大的壓制。由于攻擊面的減少,攻擊者必須探索替代的攻擊媒介。近期的許多研究表明,LNK 文件已經受到了攻擊者的青睞。此外,VSTO(Visual Studio Tools for Office) 文件也成為了重要的攻擊媒介。
什么是 VSTO?
微軟的 Visual Studio IDE 中提供了一個軟件開發工具集 VSTO,通過 VSTO 可以支持在 .NET 中開發 Office 加載項,還允許創建能夠執行這些加載項的 Office 文檔文件。
VSTO 加載項可以與為其開發的特定 Office 應用程序(Word、Excel 等)相關聯,并將在每次啟動該應用程序時執行,從而順帶實現了持久化的能力。
VSTO 加載項可以與 Office 文檔關聯在一起,也可以在打開 Office 文檔時從遠程獲取,當然這可能觸發與信任相關的安全機制。
武器化的 VSTO
由于 VSTO 仍然不是一個重要的攻擊向量,也沒有被安全廠商加以重視,這可能會導致 VSTO 會越來越受歡迎。

custom.xml 文件示例
帶有 VSTO 的 Office 文件與不帶有 VSTO 的 Office 文件的主要區別是含有 custom.xml,其中包含表明位置的 _AssemblyLocation和 _AssemblyName屬性。
本地 VSTO
本地的 VSTO 會將 .NET 編譯的 .DLL 加載項及其依賴項與為執行它而創建的 Office 文檔存放在一起,例如 ISO 文件中。

惡意 ISO 文件
例如針對葡萄牙語用戶的惡意 ISO 文件,其中包含一個惡意的 Word 文檔文件與隱藏的 VSTO 加載項及其依賴項。

全部文件
一旦受害者打開惡意文檔,就會提示用戶安裝加載項,與之前使用 VBA 宏時引誘用戶啟用內容十分相似。

提示用戶安裝

加載隱藏的加載項
一旦用戶允許安裝,加載項將被執行:

VSTO 安裝提示
分析加載項,其中有經過編碼和壓縮的 PowerShell 代碼:

核心代碼
經過解碼和解壓縮后,可以看到該段代碼為了從 C&C 服務器拉取另一段 PowerShell 代碼:

實際 PowerShell 代碼
遠程 VSTO
遠程的 VSTO 更加難以檢測和預防,但攻擊者需要考慮各種與信任有關的安全機制也導致了攻擊更加復雜。
例如,惡意 Word 文檔從遠程獲取 VSTO 加載項:

遠程 VSTO
下載的 DLL 加載項中,嵌入了下載加密的 ZIP 文件的代碼。解壓后釋放文件到 %\AppData\ Local\ 文件夾,并執行包含的 conhost.exe 文件。

惡意代碼
攻擊的 POC
為了促進社區的研究,研究人員公開了 POC 代碼。
結論
盡管 VSTO 在實際中并不常見,但由于其攻擊能力的完整,研究人員認為未來會有更多的攻擊者開始采用這種攻擊向量,尤其是國家級攻擊組織。
IOC
5530F5D20016E3F0E6BBC7FAD83EEC56F118179D4C5D89FC26863C37482F8930
E74DD27FF0BA050BBC006FD579B8022E07B570804588F0E861CC4B1321A3EC48
0526F63486DE882CCF33374DCA4B093219A8FD93014BABE794715F04FF49B151
B3282DC58AD961911D94B712CEA11F649B0BA785D7FF74D7ED9946E1260DD521
40C9D3D58CE5DB0C6D18184E5813C980CD7B72EFC7505C53CD13E60860EF8157
78D6A2C0B52E9E5AF8007BC824EFD5846585A3056B3A0E6EFDFA7E60EED48C8C
hxxps://34.241.171.114/
hxxp://classicfonts.live/