Macro 4.0 样本分析
前言
最近闲来无事逛博客准备学一下Yara后续的一些食用方法,偶然间翻到了一个宏恶意样本,在此之前还没有接触过对应的宏样本,只是知道一般这类样本是通过嵌入宏来进行执行代码,和之前的WPS、Office的漏洞相似并且不执行宏问题是不大的。
而本文将对宏样本有关内容内容进行简单的学习分析。
本次样本Hash:615a6f806f2f8db67536c5d8636787ceda9d0de0bae38fabdddc5d4b62b10dc9
Excel 4.0 Marco
宏最初适用于对重复性任务进行自动化以及用户自定义函数进行编程,在Excel的早期版本中,这些程序是用宏语言编写的,其语句具有公式语法,并驻留在专用宏工作表的单元格中(在 Windows 中以文件扩展名.xml
存储)。XLM是Excel到Excel 4.0的默认宏语言。
我们可以在Excel的信任中心中打开对应的Excel 4.0 宏(其默认受到限制,以保护用户)。
比如我们插入一个宏,在下面的Sheet
栏右键->插入
,可以看到有我们的Macro 4.0
,插入后我们可以看到多了一个Sheet
命名为宏,我们可以对其进行修改来掩饰对宏的特点,或是直接隐藏Sheet
,做到“无痕”
我们可以在单元格输入以下内容,可能会提示公式错误,但是不管就是
1 |
|
自动加载代码
现在主流的自动加载的方式分别是Auto_Open
和Auto_Close
Auto_Open
会在用户打开文档的时候自动运行Auto_Close
会在用户关闭文档的时候自动运行
上述两种方式自动运行都需要用户允许执行宏代码。
将单元格名称改为Auto_Open
,就实现了宏的自动加载。
对于宏通常分为两种格式:xlsm
(启动宏的工作簿)、xlsb
(二进制工作簿)
我们可以将对应的表另存为xlsm
格式,之后打开便会自动执行上面代码,如果我们设置了安全性,可以看到会出现安全警告信息,提示宏被禁用,如果我们启用宏便会执行对应代码。
对于这种宏代码我们无法通过Alt+F11
来进行查看对应的源代码
但是我们可以将源文件的后缀修改为.zip
打开,在对应的macrosheets
中的xml
文件里可以看到对应的宏代码
但是这种查看方式,只适用于xlsm
格式的文件,如果是xlsb
的文件,就没办法看了。可以看到里面都是bin
文件,查看不了里面的具体内容。
对于xlsm
来说,里面的内容都是基于XML的,可以直接打开进行阅读,而xlsb
的文件内容则是二进制文件,是没办法直接阅读的。
分析工具 —— oletools
oletools
可以帮助我们快速的对ole文件进行分析,并对宏代码进行查看
Office 文档(如:.doc、.ppt、.xls等)很多是复合文档(OLE文件),所有文件数据都是存储在一个或多个流中。
每个流都有一个相似的数据结构,用于存储元数据数据结构。这些元数据有用户和系统的信息、文件属性、格式信息、文本内容、媒体内容。宏代码信息也是以这种方式存储在复合文档中的。
下载方式
1 |
|
食用方式
分析恶意样本文件:
1 |
|
分析ole文件结构的工具:
1 |
|
一些问题
我们使用oleid
来对之前所测试的宏文件进行查看时,其无法被识别
1 |
|
不知道什么原因,尝试写了一个
ALERT()
好像也没识别出来,此处使用的为Office 365
,在对应项目下也看到许多差不多的issue
,可能是项目不完善?
样本
此样本为Excel Macro4.0的xlsb
版本,这意味着其是有一个加密的bin
文件我们无法直接获取源宏代码来对其进行分析处理,其默认的表一为一个提示信息,要我们打开宏
显然是个明眼人都知道不要打开宏,不然就完蛋了,当我们尝试使用Alt+F11
来查看对应的宏代码的时候发现其没有宏代码
当我们查看隐藏的Sheet表单时可以其内部藏有两个,我们将其取消,可以发现里面少了几列
当我们想要移动对应列将其展开时,会提示有数据保护,我们无法查看对应的内容信息,接下来我们重点便是获取对应的宏代码文件
宏获取
方法一
我们参考以下文章,可以大概了解到ole分析工具不起作用了,因为找不到任何ole对象
我们将其另存为xlsm
格式,从而绕过受保护的工作表,这也会让 xml 文件从.bin
转转换为.xml
,我们找到里面的 xml 文件后,找到sheetProtection
将其删除后替换源文件中的 xml,之后重新修改后缀为xlsm
即可绕过
之后调整列,看到的是空白内容,但是当我们修改对应字体颜色为黑色时便可以看到对应插入的宏代码
查看单元格名称时也可以看到对应的Auto_Open
特征
方法二
使用工具Cerbero Suite
这里没下破解版本,就不展示了,这个可以直接看到对应插入的宏代码,而不需要我们进行绕过处理
方法三
使用XLMMacroDeobfuscator
1 |
|
之后我们使用以下命令即可提取对应的宏代码
1 |
|
宏分析
大致上我们可以看到其通过网络连接进行下载了多个文件,但是通过抓取对应流量包发现请求相应信息的相应状态码均为404
,与此同时其下载的文件和时间戳有点关系,不知道是不是因为时间有点久了所以对应服务器找不到相应的文件下载。
在此之后也没有了什么值得分析了东西了…
参考资料
[What is Excel 4.0 Macro? - Stack Overflow](https://stackoverflow.com/questions/41402120/what-is-excel-4-0-macro#:~:text=The purpose of MS Excel 4.0 Macro sheets,is most extensively used by malicious parties (hackers).)
office 复合文档数据结构解析“初探”_ole dll 分析 52pojie-CSDN博客
[Macro 4.0总结 - b1ackie’blog (b1ack1e.github.io)](https://b1ack1e.github.io/2021/12/13/Macro 4.0总结/)