- A+
最近我遇到了一个很特别的恶意钓鱼邮件,邮件中有一个.doc附件。
起初,当我在虚拟机中运行该样本时,攻击者发送的附件看起来并不正确。但是,在我提取并解码此shellcode之后,我发现了一个很熟悉的已经传播一段时间的恶意软件。
在图2中的邮件头部,我们可以看到原始IP地址为212.154.192.150。应答字段也很有趣,因为这是一个长期的419诈骗团伙的地址。在图3中,红圈中的邮件地址告诉我们附件极有可能是恶意软件。
最开始,我尝试在虚拟机中运行该附件,但是却出现了下图中的错误信息:
但是,测试环境系统有超过45G的可利用硬盘空间,并且有2G的内存空间,所以错误中提示的空间不足应该不是问题的根源。为了测试,我将内存空间扩展成8G,但是相同的问题依然存在。于是,我决定从静态分析的角度看一下该附件。
像往常一样,我用Notepad++打开该文件来大致分析下这到底是什么。打开之后,我看到它实际上是一个伪装成.doc文件的.rtf文件,而在.rtf格式的文件中进行内容的混淆处理非常容易。
在.rtf文件中,表示十六进制代码的大量数据将可能为我们提供线索,让我们明白该文件到底在试图做什么。.rtf文件格式给攻击者提供了很大的自由,让其在这部分中隐藏并编码数据,如图6所示。
然而,在这部分的末尾,我们看到了“FFD9”,而gif文件的末尾两个字节就是“FFD9”。
我比较喜欢使用Notepad++来解码这种数据。首先,将该区域的内容复制并粘贴到一个新的txt文档中,然后CTRL+F打开查找窗口,并选择“替换”选项卡,然后选中“扩展”按钮,如图8中所示。
通过这样,你将得到一行ASCII码形式的十六进制数。然后,选中所有内容,并依次操作:“插件”->“Converter”->“Hex->Ascii”,如图9所示。
转换完成之后,你将会看到一些好像图像数据的字符串(JFIF和Photoshop字符串,如图10)。通过将这些内容另存为.gif文件,你将能够在Paint软件或其他类似软件中打开此图片,结果如图11所示。
然后,沿着这条线索,我们继续手动解码每个部分,我们将得到比上一个更大的新图片,而两张图片显示的内容相同,都是同一座房子。然而,这次的文件大小为3M(图12),而上一张图片大小只有79KB(图11)。
通过谷歌图片搜索这个图片,我们发现,这实际上是一个设计的3D房子的外观,它跟上面原始邮件中的内容并不相关。
使它看起来更可疑的是,里面竟然还嵌入了一个.docx文件(图13)。当我试着打开该文件时,弹出了错误,而且XML文件中也并没什么有趣的内容。
在该文件中的大概第50000行的地方,我们可以看到97-2004office文档的魔幻字节(图14)。这再一次引发我们思考,为什么该.rtf文件中同时包含了新版本和旧版本格式的Word呢?
在几千行之后,我们看到了一些更加有趣的东西。驼峰式大小写的方式一般是一种用于绕过杀毒软件或其他签名检测机制的做法。
大概2000行之后,我们发现了另一个函数(图16)。
通过去除双换行符(\r\r和\n\n),我们可以压缩这些代码以了解发生了什么,并以此方法来查看通常情况下在.rtf文件中不会被发现的代码。
在图18红线圈中部分,有一些在.rtf文件中本不该存在的十六进制代码。在更下面有点(蓝线圈中部分),我们也可以看到“AAAA”,这在汇编语言中一般表示指令“incecx”。
然而,在图19中,我们发现一个小片段指示shellcode的大小。通过解码这一片段,我们可以在最后面找到一个对可执行文件的引用,而这也是我们一直在寻找的东西(图20)。
用IDA打开这个二进制文件之后,我们可以看到实际上这只是代码的一个片段。下图中的汇编指令跟我们猜想的很吻合,这些shellcode和其他代码与一个比较老但是很稳定的漏洞CVE-2012-0158关系密切相关。
既然现在我们已经有了链接地址,那么我们可以测试下看看该恶意链接是否有效,结果显示该地址仍旧有效(图22)。
一旦执行该文件,将会在注册表中创建一个作为运行键的存储文件。
恶意软件安装到了以下路径:C:\Users\<username>\AppData\Roaming\Ritese\quapq.exe。从取证的角度来看,在该目录或Roaming目录中搜索exe文件将是无意义的,因为一般恶意软件不会安装在这些目录下。
对于恶意软件的服务器端来说,该恶意软件发起了很多对“file.php”和“gate.php”文件的请求(图24)。从图中可以看出,IP地址116.193.77.118也列在了ZeuS木马的追踪表单上(图25)。
此外,通过Dump内存,我们还能看到其他的Ladycoll配置。
注:恶意文件哈希:
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫