几十年来,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/