[ English ]
[ English ]
格式溢出漏洞经常被APT攻击所利用。在这类漏洞中,CVE-2012-0158是过去一年中最常被用到的一个。利用该漏洞的载体通常是RTF格式的文件,其内部数据以十六进制字符串形式保存。2013年1月份捕获到通过邮件附件进行攻击的样本,该样本利用了MIME格式,目前该样本信息已经在VirusTotal上能够查询到,对此样本所采用的技术进行下介绍。
大部分之前利用CVE-2012-0158的样本都是RTF格式的,如下:
图1 RTF格式溢出样本数据截图
而本文捕获到的样本是MIME格式如图2:
图2 MIME格式溢出样本
其中嵌入的ocxstg001.mso文件是一个doc文档文件,MIME中使用base64编码对其进行编码,使用的CLSID正是cve2012-0158所在漏洞的模块的CLSID “BDD1F04B-858B-11D1-B16A-00C0F0283628”。
图3 MIME中的CLSID
图4 ocxstg001.mso 内容
对ocxstg001.mso 内容的BASE64解码后得到一个doc文件:
图5 解析出doc文件
可以找到contents结构体:
图6 Contenets
可以发现cobj的数据长度x8282,后面跟着shellcode,其中包含90909090等汇编代码。
图7 shellcode
与RTF格式0158漏洞构造不一样的地方就在于RTF格式的CLSID是在doc文件中而MIME格式是在MIME文本中,解码后的doc文件中不会出现CLSID,通过这几种变化就可以逃避大部分杀软的检测,在doc中没有了CLSID,而且编码格式发生了变化。掌握了漏洞原理编写出来的查杀程序因为这种变化也变得无效。
针对RTF形式的漏洞半数杀软都可以检测。
图8 RTF格式检出
VirusTotal上MIME格式样本刚出现时只有极少的反病毒厂商可以检测,目前已经增加到10家可以检测该样本。
图9 VirusTotal样本检出