这种技术很有趣,它有点类似于 Microsoft Word 中的“远程模板”技术。
该技术基本上是通过插入一个名为“customUI.xml”的 XML 文件将自定义 UI 功能添加到 Excel 文档中。自定义 UI 是 Microsoft 设计的一项功能,用于允许对 Microsoft Office 文档进行 UI 自定义,并且它已被攻击者滥用来创建特制的 XLSX 文件,以最少的用户交互实现代码执行。
为了将“customUI.xml”文件添加到合法的 XLSX 文件中,将使用名为“ Microsoft Office 的自定义 UI 编辑器”的工具。此工具由 Microsoft 创建,但目前不再受他们支持。
下载并启动“Microsoft Office 自定义 UI 编辑器”后,您将看到如下 UI:
然后,您可以单击“打开”并选择要修改的 XLSX Excel 文件
接下来,您可以右键单击打开的文件并选择“Office 2007 自定义 UI 部件”:
然后,您可以在 UI 的右侧插入一个特制的 XML。XML 由链接到 XLS 文件的远程 URL 及其 VBA 函数组成。
现在您可以单击“保存”按钮来保存文件并通过单击“验证”按钮来验证语法。
准备一个包含vba得xls的文件
完成上述所有步骤后,您现在就可以执行“demo.xlsx”文件了。执行后,您将看到两条警告消息:
单击“启用”和“启用宏”后,将执行 VBA 脚本
新下载的XLS文件会临时存放在“C:\Users\<当前用户>\AppData\Local\Microsoft\Windows\INetCache\Content.MSO”中
最初这种技术没有警告信息。但是,微软在 2021 年 11 月修补了这个漏洞(CVE-2021-42292),现在它会弹出如上所示的警告消息。
<commands>
<command idMso=”FileSave” onAction=”ThisWorkbook.test” />
</commands>
</customUI>
对于 VBA 部分,您可以添加以下 VBA 回调过程以满足“onAction”函数的参数要求:
Sub test(control As IRibbonControl, ByRef CancelDefault)
Call MsgBox(“netero1010”)
End Sub
通过上述设置,VBA 脚本将在单击“保存”按钮时执行。
参考
https://www.netero1010-securitylab.com/evasion/execution-of-remote-vba-script-in-excel