CVE-2012-0158以其良好的通用性及对多个版本word的通杀性,成为最受黑客攻击组织喜爱的office漏洞之一。今天我们详细分析一款利用CVE-2012-0158漏洞的木马样本,主要分析漏洞利用成功后的shellcode解密功能及木马功能。此外,通过在线的IOC关联,这个样本背后的组织与2016年1月份的定向攻击台湾大选(freebuf报告链接)的组织属于同一组织。我们的样本首次出现于2016年8月份,这说明,时隔半年多,该组织又开始重出江湖,开始了新一轮的攻击。请各路安全厂商注意关注、检测与跟踪。
样本以WORD文档为载体,样本打开后显示如下的内容。
CVE-2012-0158漏洞是个典型的栈溢出漏洞,漏洞成因在于word在处理文档时,未对拷贝的内容大小进行判断,导致可以向栈中拷贝任意长度的内容,从而造成栈溢出。
漏洞利用
样本漏洞利用的地方在于下图的代码处:
此时,esi指向栈,edi指向内容对应着文件中的内容,执行完此处的代码后,栈空间的内容将会被覆盖
覆盖前的栈:
覆盖后的栈空间为:
原先栈中的函数的返回地址也被覆盖了,被覆盖成为27583ead,随后函数返回时的就会来到27583ead
运行到ret 8后就来到
随后jmp esp就跳到攻击者布局在栈中的shellcode部分
对shellcode的分析
Shellcode进行了多次解密,最终解密出用于显示的word文档文件,同时也解密出恶意程序并加载执行。
1.第一层解密:
将100h的字节异或 98H进行解密:
解密前的数据:
解密出来的代码为:
解密出的代码的功能为:得到kernel32基地址,得到导入函数地址,得到第二部分加密的内容
加载导入函数的方法是:根据函数名ror 7算法得到导入函数地址
获得第二部分加密内容的方法是:首先遍历句柄得到当前文件句柄,读入密文。
从4开始的句柄进行遍历,设置文件指针到4E43h处,读取4字节判断内容是否为41424344h
随后,申请空间,读入ox1000大小的内容(文件中4E47处):
2.解密第二部分内容
把读入的内容的前0×600大小 ,与0XE3进行异或解密后到解密后的代码执行
解密后的部分代码,解密出的代码开始push的值为函数名称的ror 9的hash值,代码根据这些hash值得到函数的地址:
得到的函数地址:
从4号句柄开始遍历,对每个句柄从GetFileSize+0×5字节处开始调用函数,为了防止该函数被HOOK,调用成功后,比较返回值与535A的大小。
调用SetFilePointer函数,定位到6047H处,读取0×14个字节,判断是不是为3BF68C7Fh,攻击者以这个常数在定位恶意文档。
这与文件中的内容一致:
3.解密出恶意dll
读取了从文件605BH到文件尾部的数据,随后会将这些数据与4D异或
异或后,是一个PE文件,随后把这个PE写入到临时目录下的M.T,同时会在文件尾部追加文件路径的长度与文件路径
写入文件路径长度与路径:
通过ZwQueryVirtualMemory得到当前word文件所在的路径,根据文件名在临时目录下生成同名的word文件,临时目录下的word文件内容来自于本身
4.解密出用于伪装的rtf文件,保存在临时目录下
5.解密出加载恶意dll的代码
读取文件中的5347处141大小的内容,与9Fh进行异或
解密出的代码:
这段代码会调用LoadLibraryA加载临时目录下的M.T文件
对M.T文件的分析 M.T文件只完成下面两个功能:
只是负责加载临时目录下的M.B文件
读取文件尾部保存的word的路径,使用ShellExecute打开文件,这用来迷惑用户,让用户误认为是打开的为正常文档
分析M.B文件
该文件实际上是有界面的,只是程序隐藏了界面,强制显示出界面后,如下
该文件主要有下列的行为:
1创建启动项:
拷贝自身到Application Data\随机文件夹\sppsvc.exe,创建指向sppsvc.exe的快捷方式,把快捷方式拷贝到启动文件夹下
2设置定时器,10s后调用回调函数,随后将回调函数的频率设为60s,在回调函数中访问www.olinaodi.com, 下载dwm.dll至本地后,调用dwm.dll的导出函数FunctionWork
对Dwm.dll的分析
是一个远控木马,具有获取文件信息,键盘记录,远程cmd,远程文件管理,盗取浏览器密码、屏幕截图等功能。
键盘记录
盗取浏览器保存的密码:
远程CMD:
得到软件安装列表:
总结
经过分析,样本的下载地址为www.olinaodi[.]com,在freebuf上的另一篇文章《台湾大选定向攻击案例研究》中也提到过www.olinaodi[.]com地址,而且根据样本的传播方式,利用手法,恶意行为等特征,可以认定这是同一团伙所为,而我们样本为今年8月最新样本,这表明该团伙在经曝光后,沉寂了一段时间后现在又开始活跃。这也提醒我们网络安全是一项长远的工作,不能掉以轻心,也不会一蹴而就。最后,希望各家安全厂商做好安全防护,切实保护好用户信息安全。