继昨天分析过CVE-2014-4114的漏洞成因:
之后,今天翰海源团队又进一步分析了样本中携带的载荷。
1.关于UAC
我们在win7标准用户下测试发现,直接通过inf右键安装来执行会启动UAC并提示输入密码:
也就是说这种方式并不能完全ByPass UAC,不过在具有管理员权限的用户下确实可以不需要弹出UAC控制窗口,如下
在具有管理员权限的用户下选择以管理员身份运行cmd.exe:
通过INF文件右键安装启动cmd.exe
这种方式下并不会弹出UAC控制窗口,在这一点上可能还有更多的东西挖掘…
2.BlackEnergy样本分析
inf文件被安装后重命名同目录下的 slide1.gif为slide1.gif.exe 并执行。slide1.gif被修改掉了部分PE头部信息来对抗静态逆向分析,不过任然可以正常执行:
该文件实际为BlackEnergy的一个装载器,运行后将会解密并释放一个BlackEnergy模块FONTCACHE.DAT到Application Data目录
,该模块经过分析发现为最新的BlackEnergy3变种,释放后通过调用rundll32调用模块的导出函数MakeCache执行。
“BlackEnergy流通在俄罗斯的地下网络,最早能够追溯到2007年”,F-Secure最近报告指出名为“Quedagh”的组织正在使用BlackEnergy发起一系列
针对乌克兰政府的攻击,而此次0day所使用的恶意样本同样的可能来自该组织。
在CVE-2014-4114中的使用的BlackEnergy为该家族最新变种,该变种通过rundll32.exe启动执行,并将以一个lnk文件做为启动脚本写入到系统启动文件夹,
文件名基于卷序列号生成。
这个dll的代码首先申请一块内存,以0×70000000h开始,并写入解密自身的代码
解密代码重新写入0×10000000h的内存,之后才是dll的真正代码
DLL得到执行后创建名为{CD56173D-1A7D-4E99-8109-A71BB04263DF}的互斥体,然后开启一个独立线程实现恶意程序的主要的功能,主线程根据系统当前时间创建一个窗口并等待子线程发送窗口消息。
该变种会通过创建一个RPC远程过程调用(RPC over the named-pipe protocol)实现模块的通信。
子线程在内存中解密C&C并通过HTTP POST请求来通信,POST数据格式如下:
id=[BotID]&bid=ER&getpd=***
支持以下类型指令:
delete:卸载 ldplg:加载插件 unplg:卸载插件 update:更新主程序 dexec:下载并执行 exec:下载并执行 updcfg:更新插件
在内存中解密后的C&C如下:
该C&C的地理位置:
目前该C&C已经失效,但是我们注意到C&C目录经过base64编码,解码后字符串为”houseatreides94“。
我们猜测这里的House Atreides可能来源美国作家Brian Herbert所著科幻小说《Dune: House Atreides》,
其中Dune是“沙丘”的意思,也许这点正好与ISiGHT所描述的Sandworm Team所吻合。
3.安全建议
使用win7及之后系统的用户应尽量选择windows标准用户作为主要系统帐户。
4.安全排查
a. 检查系统AppData目录是否存在名为FONTCACHE.DAT的未知文件
b. 检查网络流量中是否出现上述列举的C&C请求。
5.参考资料
https://www.f-secure.com/documents/996508/1030745/blackenergy_whitepaper.pdf
http://www.isightpartners.com/2014/10/cve-2014-4114/
http://en.wikipedia.org/wiki/Dune:_House_Atreides