s
沙虫(CVE-2014-4114)相关威胁综合分析报告
安天实验室
沙虫(CVE-2014-4114)相关威胁综合分析报告
——及对追影安全平台检测问题的复盘安天实验室
首次发布时间:2014年10月15日
版本更新时间:2014年10月17日
目录
1威胁卡片与简介 (3)
2漏洞原理 (3)
3漏洞的场景有效性验证 (8)
3.1“操作系统+软件环境”与内存保护相关场景验证 (8)
3.2UAC验证 (9)
4相关样本分析 (11)
4.1相关样本集信息 (11)
4.2关键载荷文件slide1.gif分析 (13)
4.3其它相关文件样本分析 (18)
4.4历史关联样本 (21)
5对追影安全平台检测问题的复盘分析 (23)
6总结 (28)
附录二:参考资料 (29)
附录一:鸣谢 (30)
附录三:事件日志 (31)
附录四:关于安天 (31)
1威胁卡片与简介
CVE-2014-4114 是OLE包管理INF 任意代码执行漏洞,该漏洞影响Win Vista,Win7等以上操作系统,攻击者使用PowerPoint作为攻击载体,该漏洞是在Microsoft Windows和服务器上的OLE包管理器。在OLE打包文件(packer.dll)中能够下载并执行类似的INF外部文件,允许攻击者执行命令。
2漏洞原理
我们对首先获取的MD5 HASH为330e8d23ab82e8a0ca6d166755408eb1的样本进行了分析,通过分析工具我们可以看到这个文件嵌入了两个OLE 对象图2-1所示。
图2-1嵌入OLE对象
?安天实验室版权所有,欢迎无损转载第3页
其中OleObject1.bin包含一个“\\94.185.85.122\public\slide1.gif”的字符串,它是一个webdav 的路径,下载后发现其实它是一个PE文件。
图2-2 slide1.gif远程路径
OleObject2.bin中的“\\94.185.85.122\public\slides.inf”字符串,也是一个webdav的路径,下载后发现是一个INF文件,它是利用漏洞触发的关键。
图2-3 slides.inf远程路径
当该文件被PowerPointer加载后,它会调用Packager.dll的一个函数通过网络将这两个文件下载并保存在临时目录中,该函数是CPackage::OLE2MPlayerReadFromStream,该函数的关键代码如图2-4所示,下载后的文件如图2-5所示。
图2-4远程获取函数代码
?安天实验室版权所有,欢迎无损转载第4页
图2-5 下载文件截图
然后在函数CPackage::DoV erb中调用SHELL32!CDefFolderMenu::InvokeCommand函数会使用popup菜单命令安装slides.inf文件。CPackage::DoVerb的关键代码如图2-6所示。
图2-6 CPackage::DoVerb的关键代码
启动popup菜单代码如图2-7所示:
?安天实验室版权所有,欢迎无损转载第5页
?安天实验室 版权所有,欢迎无损转载 第6页
图 2-7 启动popup 菜单代码
最后通过调用C:\Windows\System32\InfDefaultInstall.exe 程序进行INF 的安装,如图2-8所示。
图2-8 INF 安装图
Slide.inf 的关键内容如下,所有代码请见第3节slides.inf 标签:
整个INF
的主要功能是将slide1.gif 重命名为slide1.gif.exe ,然后添加注册表启动项。 因为DefaultDestDir 的值为1,代表的是INF 文件当前所在的路径,即临时目录。这就说明%1%\slide1.gif.exe 就是%USERPROFILE%\AppData\Local\Temp\slide1.gif.exe ,因此就是在注册表路径HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce 下添加一个新项,该项的值为%
?安天实验室 版权所有,欢迎无损转载 第7页
USERPROFILE%\AppData\Local\Temp\slide1.gif.exe ,其中%USERPROFILE%根据不同的机器而变化。
漏洞产生的主要原因是OLE PACKAGER 允许远程下载文件,并执行弹出菜单命令, 而INF 文件的下载和弹出菜单安装命令可以对系统的资源如注册表等进行修改,运行可执行恶意代码。相关场景验证截图如图2-9所示。
图 2-9 相关场景截图
3漏洞的场景有效性验证
3.1“操作系统+软件环境”与内存保护相关场景验证
多数的格式文档漏洞是否能有效触发,与操作系统版本、补丁情况、字符集、以及对格式文件读取和解析的软件版本、字符集等有一定关系,同时也可能受到类似DEP(数据执行保护)、ASLR(地址随机化),包括是否安装有EMET等增强工具的影响。
我们启动了常规流程的验证,其结果如表3-1所示。
表3-1漏洞在不同场景下的触发情况
注:√:能够正常触发
*:只存在访问共享,不能够正常触发
**:运行时存在崩溃,不能够正常触发
Win7版本类别为:Professional
XP版本类别为:Professional
在运行时会存在崩溃的情况,在Win7 Professional SP1 x64 English平台的Office Professional Plus 2010截图如图3-1所示。
?安天实验室版权所有,欢迎无损转载第8页
图3-1 Win7环境下Office崩溃截图
从上述结果可以看到,相关内存防护机制对本漏洞并无效果,由于漏洞并非是利用文档格式的溢出型漏洞,而是基于函数调用和代码执行的漏洞,因此这些内存防护机制对此无效并不意外。
3.2UAC验证
UAC(User Account Control,用户帐户控制)是Windows基于可执行对象的一套安全防护机制,其在涉及到可能会影响计算机运行的操作或执行改变或影响其他用户设置的操作时,会需要交互确认。具体表现为,在当前账户为管理员账户的情况下,灰屏进入一次交互确认,而在非管理员账户下会要求输入管理员密码。
从验证情况看,当UAC安全性设置为UAC默认设置时,样本运行之后不会弹出提示,会正常触发;当把UAC设置为最高级别时,样本运行会触发UAC。
1.在Win7 Professional SP1 x64 English平台的Office Professional Plus 2013上进行测试,
UAC设置为最高提示如图3-2所示。
?安天实验室版权所有,欢迎无损转载第9页
图3-2 英文环境-UAC提示
当双击“Yes”后,执行成功,创建Link文件如下图。当双击“no”后,INF不会被安装。
图3-3 英文环境-创建Link文件
2.在Win7 Professional SP1 x64 中文平台的Office Professional Plus2013上进行测试,
UAC设置为最高提示如图3-4所示。
图3-4 中文环境-UAC提示
?安天实验室版权所有,欢迎无损转载第10页
当双击“是”后,执行成功,创建Link文件如图3-5所示。当双击“否”后,INF不会被安装。
图3-5 中文环境-创建Link文件
4相关样本分析
4.1相关样本集信息
我们对CVE-2014-4114目前的相关样本进行了整理,详见表4-1。
?安天实验室版权所有,欢迎无损转载第11页
4.2关键载荷文件slide1.gif分析
下面我们对关键载荷文件slide1.gif进行详细分析:
1.样本集中slide1.gif实际为PE格式,为关键载荷文件,其被slides.inf脚本更名为slide1.gif.exe 后,
将其添加到注册表开机自动执行的相关键值中,slides.inf代码与请见slides.inf标签;
2.slide1.gif运行后创建DLL文件与快捷方式文件,该快捷方式文件被加入启动项,以启动DLL文件:
c:\Documents and Settings\Administrator\Local Settings\Application Data\FONTCACHE.DA T
c:\Documents and Settings\Administrator\「开始」菜单\程序\启动\{EC7E18E7-18E7-8639-E718 -7EECE7187EEC}.lnk
3.创建互斥体{CD56173D-1A7D-4E99-8109-A71BB04263DF}:
4.调用cmd.exe删除自身,运用ping localhost做延时操作:
5.删除自身后,通过rundll32.exe调用FONTCACHE.dat,FONTCACHE.dat首先申请一块内存,开
始地址为0x70000000h,大小为122880:
6.FONTCACHE.dat内存申请成功后向其中写入解密自身的代码:
7.FONTCACHE.dat在解密代码执行完成后重新写入0x10000000:
8.FONTCACHE.dat会通过创建一个RPC远程过程调用(RPC over the named-pipe protocol)实现模
块的通信:
9.通过POST请求进行通信,指令类型如下:
10.内存中解密后的C&C如下:
11.C&C网络行为抓图如下,但链接目前已经失效:
该样本的核心行为是,创建DLL文件,加载DLL为自启动项。DLL文件执行后在内存中解密并运行,有更新、下载、加载插件等功能,运行后进行C&C网络行为。投放途径为利用漏洞CVE-2014-4114投放。
4.3其它相关文件样本分析
1.创建互斥量:Global\{3D5A1694-CC2C-4ee7-A3D5-A879A9E3A009}
2.命令行替换驱动文件,并重新启动该服务。
/c "ping localhost -n 8 & move /Y "C:\WINDOWS\dmboots" "C:\WINDOWS\System32\drivers\dmboo t.sys" & ping localhost -n 3 & net start dmboot"
3.自删除操作。
4.延迟操作。
5.进行连接网络,使用SSLV3协议进行网络通信。