社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 848阅读
  • 2回复

[分享]一例加密保护Excel的VBA宏病毒下载器分析

楼层直达
z3960 
级别: 茶馆馆主
发帖
770593
飞翔币
207694
威望
215657
飞扬币
2511651
信誉值
8



概述


分析时间:2020-11-07

在早前笔者写的一篇恶意样本分析的笔记中有同学评论说是自己的电脑中了病毒,如下
经过沟通后获取样本,趁着周末就分析了一下,该样本的宏经过了密码保护,启用宏功能后程序会在后台下载  synpatic.exe和一个临时文件cache1 文件 并且会隐藏文件和执行,截止笔者分析时宏内的下载链接已经不能下载了。下面详细分析该文档的功能,包括的内容如下
  • 分析加密码保护的 vba 宏程序
  • 使用 vipermonkey 模拟分析宏


样本分析



基础静态分析


样本文件是一个 excel 样本,由于是论坛的@无量那由他劫提供,打开文件后,接着查看一下宏内容,如下

这里先不要打开宏,使用alt+F11的快捷键打开接口


这个宏受密码保护,要想直接打开并不可能在这里要说一下在早前的样本分析笔记中 Word文档宏病毒样本分析中有人给我说笔者写的调试方式

不能应对一些宏病毒,这里感谢提醒。除了oledump.py之外,这里提供另一个功能强大的宏病毒分析模拟程序ViperMonkey 除了提供宏代码提取,还能模拟执行宏程序。

使用vipermonkey


这个库是一个 python 的库,安装命令为pip install -U https://github.com/decalage2/ViperMonkey/archive/master.zip
不过在 windows 上安装运行可能会有点问题,解决方案具体参考windwos找不到/tmp就能正常运行了。安装完成后使用如下命令提取宏
  • 提取宏

运行如下命令分析内嵌的宏,如下vmonkey p.xls


得到如下


整理后保存为 a.vbs 如下
  • 模拟运行

除了上面提到的方式提取脚本,有时候希望得到运行的结果,可以使用如下方式来进行模拟运行vmonkey -s a.xls
运行如下,



提取完成基本的信息后,下面分析程序。

宏代码分析



入口分析


打开程序后来到入口位置 Workbook_Open 得到如下内容


开始程序会先统计excel的表单数量,接着调用 RegKeySave 函数关闭掉 excel和word 的宏警告

参考: https://getadmx.com/?Category=Office2016&Policy=word16.Office.Microsoft.Policies.Windows::L_VBAWarningsPolicy

接着将打开的 excel 文档的警告提示关闭,保存表单的数量。程序调用 MPS 函数后,设置表单的默认选项是第一个。这里基本的入口分析完成了,接着分析一下 MPS 函数分析

MPS 函数分析


进入到 MPS 函数内后得到如下结果


首先创建一个 FSO 对象和一个数组 FP 以及一个 URL 数组

我也不是很懂VBA语法,不过从赋值上来看是数组

这个函数的功能主要是判断是 ~cache1或者~Synaption.exe 是否存在,如果存在则复制到  tmpcache1.exe 并使用隐藏的窗口的方式启动。

参考: https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/shell-function

其中 FP 数组用来保存两个文件名分别是 ~cache1 ~Synptics.exe 程序,然后 URL 数组用来保存要下载的文件 url 地址,接着调用 FSO 对象判断 cache1和Synaption.exe 是否存在,如果存在则将对应的文件复制到 %TMP% 目录下的 cache1.exe ,复制完成后还会将 tmpcache1.exe 以隐藏 shell 窗口启动进程的方式运行。 如果文件不存在则分别到如下地址下载,只要有一个文件下载成功则启动进程  URL(1) = "https://docs.google.com/uc?id=0BxsMXGfPIZfSVzUyaHFYVkQxeFk&export=download"  URL(2) = "https://www.dropbox.com/s/zhp1b06imehwylq/Synaptics.rar?dl=1"  URL(3) = "https://www.dropbox.com/s/zhp1b06imehwylq/Synaptics.rar?dl=1"
目前改地址已经不能访问了,调用的 FDW 函数如下

访问上述地址后都是不能存在了


该样本运行后会还会自动填充数据,笔者认为这个宏提供的功能是一些常用的 excel 的过滤,排序等手动操作的过程,使用脚本来做重复的工作,不过这也是猜测。

动态调试


根据上面的静态分析已经很清晰了,下面进入动态调试来执行查看一些运行的变量来确保分析结果,同时也提供一些针对密码保护的宏样本分析手段。因为有时候分析的样本经过了重度混淆此时静态分析将会无从下手,如下是查看宏提示要求输入密码


去除密码保护


由于这个样本已经使用了密码保护,要想动态调试需要量样本的密码保护去掉,这里推荐使用 VBA PASSWORD BYPASS 来完成密码的绕过,有需要的可以到提供的下载。使用 VBA Password Bypass 打开样本是提示如下
提示要求打开样本后不要关闭 bypass 软件,此时对应的 excel 文件将被打开,打开后我们将宏功能打开VBA password bypass
https://appnee.com/vba-password-bypasser/
为了调试需要打开宏 程序会运行失败,如下

由于文件是有点不适合公开,打码了

接着点击 End 后使用 Alt+F11 打开宏,如下

核心部分在 ThisWorkbook 内,打开后如下



设置断点后开始调试命中断点后如下

可能运行样本时不一定能设置断点,此时按下F5后再次尝试即可设置断点,之后点击运行按钮



查看运行变量后观察到表单的数量有 6 个
接着调用 RegKeySave 函数关闭宏警告提示

运行完成后将会设置 excel word 的宏警告关闭。

之后禁用excel警告提示 ,紧接着来到 MPS 函数,运行时参数如下

接着进行文件判断后调用网络下载


继续执行到 send 函数执行后网络失败


不能下载远端的 payload 程序,则后续就不能继续分析了。

信息收集分析


经过上述分析后知道该样本是一个下载,此时将文件的 hash 信息到 VT 上查询,
还是被很多 AV 检测出来了标记为 Downloader ,查看分析历史,该样本在最早在 2015-01-15 就已经被创建了,内容是在 2012-07-02 的时候曾经被修改过,猜测这个样本该不会是一个钓鱼样本吧,并且首次提交 VT 分析的时间是笔者分析的时间,换句话说这个样本此前并未被上传分析过,如下

再结合文件的名称和内容来看就比较可疑,如下不知道给我分析的人是不是自己的文档,希望各位不要随意点击未知邮件或者开启 office 的宏功能。


总结



建议


最近分析了好几种不同的 office 类型的病毒,很多宏的病毒都是诱骗用户开宏来执行,在收到未知邮件或者文档
时,不要着急开启宏功能,先确保文件的安全性在运行。

样本特征


sha1: e3f7fcd1ce2e4fd02c2470e52203512cdda2d944
URLS  URL(1) = "https://docs.google.com/uc?id=0BxsMXGfPIZfSVzUyaHFYVkQxeFk&export=download"  URL(2) = "https://www.dropbox.com/s/zhp1b06imehwylq/Synaptics.rar?dl=1"  URL(3) = "https://www.dropbox.com/s/zhp1b06imehwylq/Synaptics.rar?dl=1"
RegKey "HKCUSoftwareMicrosoftOffice" & Application.Version & "ExcelSecurityVBAWarnings", 1, "REG_DWORD""HKCUSoftwareMicrosoftOffice" & Application.Version & "WordSecurityVBAWarnings", 1, "REG_DWORD"
关键词: bot 下载 软件 提供 360
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。
级别: 超级版主
发帖
837629
飞翔币
228834
威望
224673
飞扬币
2467894
信誉值
0

只看该作者 1 发表于: 2020-11-09
来看一下
级别: 超级版主
发帖
837629
飞翔币
228834
威望
224673
飞扬币
2467894
信誉值
0

只看该作者 2 发表于: 2020-11-09
不错,了解了