Macro 4.0总结

本文最后更新于:2022-03-15 上午

前言

上周碰到了一个Excel 宏4.0的xlsb样本,也算是分析的第一个宏病毒,起初对于宏的提取完全没有用,用了很长时间才成功提取并且看到宏代码,所以来稍微的总结一下关于宏4.0的东西。

宏4.0最早在1992年在Excel 4.0版本中引入,是Visual Basic for Applications (VBA) 的前身,和现在的VBA宏不一样,宏4.0可以直接写在表格里。而现在这种老技术又重新流行了起来,主要是这种宏比VBA宏有更好的免杀性。它不依赖于错误,也不是漏洞利用,只是滥用合法的excel功能。一些样本受密码保护,代码混淆,工作表隐藏,以及一些检测机制,使得对于它的分析难度会提高。还有将其保存为xlsb文件,而不是xlsm文件时,一些检测的手段会直接失效,现在来尝试总结分析一下Excel 4.0的手段。

宏4.0 利用

现在来演示一下如何利用宏4.0

宏的利用

在某个工作表上右键,选择插入

在弹框中选择MS Excel4.0

在新创建的工作表中,在框中输入宏指令,然后右键选择执行。

自动加载方式

现在主流的自动加载的方式分别是Auto_OpenAuto_Close

  • Auto_Open会在用户打开文档的时候自动运行
  • Auto_Close会在用户关闭文档的时候自动运行

上述两种方式自动运行都需要用户允许执行宏代码。

将单元格名称改为Auto_Open,就实现了宏的自动加载。

保存之后,再打开,会看到宏的警告

点击允许,就会弹窗

查看宏代码

当我们按下alt+F11查看宏代码的时候,发现这样是不能够查看到宏代码

默认情况下,XLM宏代码存储在xl\Macrosheets\下的Sheet1.xml中,解压此xlsm文件,然后打开位于目录中的Sheet1.xml,可以看到刚才写入的宏代码。

但是这种查看方式,只适用于xlsm格式的文件,如果是xlsb的文件,就没办法看了。可以看到里面都是bin文件,查看不了里面的具体内容。

对于xlsm来说,里面的内容都是基于XML的,可以直接打开进行阅读,而xlsb的文件内容则是二进制文件,是没办法直接阅读的。

oletools使用

使用工具可以快速的帮助我们进行宏代码的查看

oletools用于帮助分析ole文件,使用它可以帮助我们分析ole文件中是否存在宏代码。

安装好工具后可以开始测试,将刚才的文件保存为test.xlsm来进行测试。

oleid可以查看文件是否存在宏代码,查看test.xlsm文件,看到提示存在XLM Macros

使用olevba可以从MS Office 文档(OLE 和 OpenXML)中提取和分析 VBA 宏源代码,查看test.xlsm,看到成功提取出宏代码

一切保持不变,现在只是将文件保存为xlsb类型的文件,测试看看。

可以看到没有做任何其他的处理,仅仅只是保存为xlsb文件,其中包含的宏 4.0代码就可以没有办法被检测出来。

针对存在宏 4.0的xlsb文件,如何提取其中的宏,我们从一个真实的样本入手

如何提取出来xlsb文件的宏 4.0,我们从一个真实的样本入手。

真实样本分析

样本MD5:cf508cefa3b3f03c1d8300f5f57b9af6

样本下载地址

此文件是一个XLSB文件

打开会提示其中还有宏

按下alt+F11看不到任何VBA宏的存在,使用oletools工具同样也无法检测到宏。

看到其存在两个隐藏的工作表

显示隐藏的工作表,看到上面的单元格直接从C到了H,中间被隐藏起来了,另一个工作表也是如此,那么宏代码应该就是在其中了,但是因为工作表被保护起来了,我们没有密码,所以我们无法移动单元格。

现在来尝试获取xlsb中的宏 4.0代码

方法一

https://malware.news/t/xlsb-analyzing-a-microsoft-excel-binary-spreadsheet/46442

按照上述这篇帖子的方法,可以成功绕过密码保护,我们修改单元格长度之后,再修改一下字体颜色(原始字体颜色为白色,隐藏了起来)就可以看到宏代码。

方法二

使用工具Cerbero Suite

Cerbero Suite

使用此工具,不像刚才那样那么麻烦,可以直接看到工作表中的宏代码

方法三

使用XLMMacroDeobfuscator

XLMMacroDeobfuscator

这个工具可以非常快速查看宏代码,使用也非常简单,它会自动帮助我们分析其中的宏,并且可以去混淆

1
xlmdeobfuscator -f [指定要检测的文件]

由上图可以清晰的看到其中存在的去混淆后的宏代码

看到它主要是下载了6个文件存在指定的位置,并且调用regsvr32来启动下载的文件。

对于下载的文件,只分析出了一小部分的行为,很多关键的地方都没有看懂,所以暂时不放出来,等以后分析明白再放出来。

参考链接

https://www.yuque.com/p1ut0/qtmgyx/rqank4

https://zvelo.com/excel-4-0-macros-another-old-school-attack-method/

https://madlabs.dsu.edu/madrid/blog/2021/05/17/analyzing-document-with-malicious-excel-4-0-macros/

https://malware.news/t/xlsb-analyzing-a-microsoft-excel-binary-spreadsheet/46442


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!