利用Excel 4.0宏执行任意命令

  今天看到威胁情报发来的通知,一篇名为《老树开新花:利用Excel 4.0宏躲避杀软检测的攻击技术分析》的文章,于是便复现了一下。

Excel 4.0宏

  1992年发布用于Windows 3.0和3.1的电子表格软件Excel 4.0。对于自动化,可以通过所谓的宏工作表在此版本的Excel中使用XLM宏。X由于Microsoft很早就使用VBA宏(Visual Basic for Applications)来代替Excel 4.0宏技术,这导致Excel 4.0宏并不为大众所熟知。并且Excel 4.0宏存放在Excel 97 - 2003格式(.xls)文件中。

POC制作

  过程来源于outflank。

插入宏工作表

  创建一个新的Excel工作簿。右键单击屏幕底部的“Sheet1”,然后单击“插入”。

  弹出一个窗口,允许您从要插入的各种对象中进行选择。选择“MS Excel 4.0 宏表”并单击“确定”。

编写宏

  已创建一个名为“Macro1”的新工作表。这是一种特殊的工作表类型,可以在其中输入XLM宏(所谓的宏表)。单击任何单元格并在此单元格和下面的后续单元格中输入公式= EXEC("calc.exe")= ALERT("Hello world")= HALT()

运行宏

  要测试宏,请右键单击包含宏代码的第一个单元格,然后选择“运行”。将弹出一个新窗口。这应该包含包含宏代码的第一个单元格的名称(在我的例子中,第1行的默认“A1”,第1列)。单击“运行”以执行宏,然后观察计算器和MessageBox弹出窗口。

  自动运行:如果希望在打开工作簿时自动运行宏(类似于VBA宏的Sub AutoOpen()),请将宏的第一个单元格重命名为Auto_open

隐藏宏

  您可以通过在工作表名称(“宏1”)上单击鼠标右键并选择“隐藏”来隐藏宏工作表。Auto_open XLM宏仍将从隐藏的工作表运行。

执行shellcode

参考

https://outflank.nl/blog/2018/10/06/old-school-evil-excel-4-0-macros-xlm/

https://mp.weixin.qq.com/s/KVpO02KJWE6OVZDb0ungOA