宏病毒分析报告
0x00 概述
基本信息
样本名称 | 3EFFEBA64D9A1A4DD1BDDAEB1858E4D0.xls |
---|---|
样本类型 | 宏病毒、下载器 |
样本大小 | 346112 bytes |
MD5 | 3EFFEBA64D9A1A4DD1BDDAEB1858E4D0 |
简介
该样本通过宏代码,将存储在Excel表中的PE数据,写入DLL文件中,然后加载该DLL文件,执行其函数,最终实现将主机信息发送至远端服务器,并从远端服务器下载文件执行。
流程图
0x01 样本行为分析
该样本是一个Excel文件并且含有宏。其中Excel界面同其他宏病毒一样,显示迷惑信息,诱导使用者启用宏。如图:
文件写入行为分析
运行宏后,样本释放了多个文件,如图1所示:
运行宏后,该Excel文件向远程服务器进行了TCP请求,访问IP:==195.126.214.226==
查看宏代码
查看自动运行函数workbook_open
,如下图所示:
分析workbook_open
,发现函数只执行了UserForm1.show
,这点就很可疑,因为userForm本身是一个图片,如图:
这里右键查看模块UserForm1
的代码,发现里面暗藏玄机,执行了函数CreateGifFile
,如图:
查看函数CreateGifFile
,发现其中释放出了一个==DLL文件==,并执行了该DLL文件中的一个函数。下面将详细分析该函数究竟执行了那些行为,函数如下图:
拼接路径
根据操作系统的位数,拼接不同的文件路径,拼接出来的路径就是该样本释放文件的路径,如图:
释放文件oleObject1.bin
先将当前工作表复制到一个新的工作簿中,并保存为==13.xlsx==,然后又修改该文件的后缀,将其修改为==13.xlsx.zip==,然后解压该zip文件夹 ==xl\embeddings\==目录下的oleObject1.bin
文件。
首先释放的3个文件,如下图:
执行函数ReadAndWriteExtractedBinFile
,读取文件==oleObject1.bin==中的PE数据,并将PE数据写入exchange1.dll
中,如图:
加载exchange1.dll
并执行函数Amway
先切换路径至==%AppData%路径下==,然后加载exchange1.dll
,并执行其函数Amway
,如图:
其中k32LL
为从==kernel32.dll==中获取的loadlibrary
,并将其别名为:k32LL
,如图:
分析释放出来的DLL文件
查看DLL文件exchange1.dll
的导出表,发现其导出函数只有一个导出函数initTest
。与该样本要调用的函数Amway
不同。如图:
初步推断该DLL文件,是一个==带壳的DLL文件==,首先需要进行脱壳,这里用X64dbg进行脱壳。
首先在DLL文件的入口点,用一次==ESP定律==,在push后,给ESP
下硬件断点,如图:
然后F9运行到硬件断点出,然后单步没有几步,就会看到一个pushad
,这里再次用ESP定律,给ESP
下硬件断点。如图:
然后就到了该DLL真正的入口点,如图:
然后将其dum下来,这里需要注意要修改插件==Scylla==的属性,去掉选项Use PE header from disk
,这个选项用的是原来DLL的PE头,也就是执行原来壳的PE头中的导出表,这里需要将其勾掉。如图:
再查dump出来的DLL文件,发现导出表正常了,找到了调用执行的函数Amway
,如图:
分析主要行为函数
该样本是通过加载exchange1.dll
,然后执行其函数Amway
,实现其相应的攻击。该样本的重点就是分析主要行文函数Amway
。
构造网络请求包头
构造网络请求包头,后面进行数据传输时会用到,如图:
获取操作系统信息
获取了本地主机的==标准DNS名称==、获取了当前==用户信息==,以及==操作系统版本号==,并将数据进行了加工和拼接,如图:
枚举进程
枚举当前的所有进程,并将进程与之前获取的信息进行了拼接,如图:
最终将获取到的信息与枚举的进程,进行拼接的结果,如图:
与远程服务器通信
获取远程服务器的域名,如图:
将获取到的主机信息,发送至远程服务器,如图:
下载可执行文件
先判断与远程服务器通信的状态码,如图:
当状态码为200,也就是连接正常时,下载==可执行文件==,到临时目录下,并命名为boost1.exe
。如图:
创建进程执行下载文件
通过函数CreateProcessW
,创建进程,执行下载的==可执行文件==,如图:
这里由于远程服务器已经宕掉了,这里也无法获取到从远程服务器上下载的文件,进而无法进一步分析下载后的程序boost1.exe
。
0x03 查杀方案
由于远程服务器宕掉了,并未下载到最终要执行的可执行文件,无法对下载后的可执行文件的行为进行分析,因此无法对该可执行文件进行查杀。
删除病毒文件
但目前分析的这个样本本质就是一个下载器,查杀方案只需将该样本本身以及释放出来的所有文件删除即可,要==删除的文件==,如下表:
病毒本身: |
---|
3EFFEBA64D9A1A4DD1BDDAEB1858E4D0.xls |
释放出来的文件: |
C:\Users\<User>\AppData\Local\Temp\13.xlsx |
C:\Users\<User>\AppData\Local\Temp\13.xlsx.zip |
C:\Users\<User>\AppData\Local\Temp\oleObject1.bin |
C:\Users\<User>\AppData\Roamingexchange1.dll |
C:\Users\<User>\AppData\Local\Temp\boost1.exe |
0x04 样本溯源
FileName | FileSize | MD5 |
---|---|---|
3EFFEBA64D9A1A4DD1BDDAEB1858E4D0.xls | 346112 bytes | 3108C6B3B4ACC06E8B26AF7AE0142A45 |
13.xlsx | 235896 bytes | 90F4CBB72628ABC27FEDBE872A0FFFE6 |
13.xlsx.zip | 235896 bytes | 90F4CBB72628ABC27FEDBE872A0FFFE6 |
oleObject1.bin | 164864 bytes | 27C9912C99DBC5052A97E9D9EB4C23FA |
exchange1.dll | 81920 bytes | 3707203BDA6A72601CD4461DF3A14240 |
C&C服务器 |
---|
https[:]//office-teml-en.com/tw |
0x05 总结
该样本通过Excel进行传播,并借助宏来执行下载和执行文件等恶意行为。因此在查看带有宏的文件时,应多加小心,确认其来源之后,在进行查看。