不能掉的前言
当反汇编恶意软件样本时,其实我们就是在分析寻找攻击者所疏忽的地方。这些我们可以从那些相同字符串、较弱的模糊处理例子、重复使用的代码片段中去分析。有时我们在谈论攻击者时总会带着一些主观臆想,认为那些攻击者就是超级恶棍,做坏事就跟家常便饭般习以为常。但是请记住他们也是人!
确认宏中payload
今天我们要分析的样本也不例外,在我们复审分类控制台时遇到了一个有趣的钓鱼邮件,其中包含了以下附件,在Yara规则中就有一些失误了:
一会时间后,我们看到了大量包含宏的Word文档,这种结合XOR exe触发的确十分少见。这种类型的payload通常都是exploit和最新版本的安装包结合。通过使用 xorsearch 证实这里面确实存在一枚恶意payload。
注意:XOR 00 为数据本身。
打开这个文件,确认里面存在宏,这是一个好消息。
使用快捷键alt + f11尝试并提取出宏代码,竟然有密码保护。
看来是时候祭出我们的宏密码破解神器了:
最后获得宏代码:
分析
执行宏代码,word文档的一个副本会另存到%temp%/300.rtf和%temp$/301.rtf,我们的恶意payload会被保存到%temp%/q2.exe,接着执行。
观察q2.exe,文件的编译路径为T:/mandatory/Hence/one/Date/effort.pdb。变相的说明了恶意软件可以在T盘目录下进行编译,位于mandatory目录,项目名称为Hence。但是XORed payload在哪呢?
通过在关键的0×66(f)执行一个单字节XOR,我们知道这是能成功的,这时我们就可以看到可执行文件其他一些字符串和结构。
需要注意的是,攻击者确实做了些蠢事导致很难运行,由于其缺少标准“MZ”。这是在解码payload时添加的:
一直向下拉我们找到一些字符串,得知有些数据使用aPlib进行编码:
第2阶段,继续滚动编码过的数据,我们发现一个将会被调用的域名:
接下来再看看使用的user agent,不要把恶意软件使用HTTP/1.0给忘记了。
他有能力收集大量的凭证,主要是FTP:
尾声
结合一下分类规则可以用来进行检测:
PM_Office_With_Macro PM_xor_This_program_* (在规则中已经超过500种)
为了帮助更多的人,提供恶意软件的C2以及user agents信息[ 点我 ]
*参考来源: Phishme ,编译/FB小编鸢尾,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)