新IE零日漏洞样本分析

2012年9月17日,安全研究人员Eric Romang在他的博客发表了文章Zero-Day Season Is Really Not Over Yet [1],披露了一个新的IE零日漏洞。这个零日漏洞成为当前最热门的话题,微软已经发布了对其的补丁[2]。

安天CERT得知信息的第一时间对该漏洞进行分析,并对利用此漏洞的一个恶意代码样本文件111.exe进行了分析。以下是一些分析细节。

拿到样本后,我们使用二进制工具查看111.exe(图1),发现111.exe不是一个PE文件。

图1样本文件二进制内容

1 样本文件二进制内容

根据经验,这个样本有可能使用异或算法进行加密。考虑到3D与4D异或得出0×70,2A与5A异或也得出0×70,我们大胆猜测这个样本可能已经逐个字节地与0×70进行了异或。

反过来,将其逐字节再次与0×70异或,进行解密后,得到的内容如下,见图2。

图2与0x70异或解密后的文件内容

2 0×70异或解密后的文件内容

解密后的文件,其文件头是MZ(0x4D5A),但仍然不是一个有效的PE文件,使用PE分析工具也不能识别。

与正常的PE文件进行对比,我们发现了这样的差异:解密后文件的头部大部分字节为0×70,而正常文件应该是0×00;另一方面,解密后文件的头部有“This .rogram cannot be run in DOS mode”,而正常文件应该是“This program cannot be run in DOS mode”,其中,前者中不可显示字符的十六进制值是0×00,而后者的字符p的十六进制值是0×70。

让我们梳理一下逻辑。我们猜测,异或的密钥是0×70,但是在原来的值是0×00和0×70的地方,这个规律不再适用。看起来,对这两种情况,作者跳过了异或加密的操作。

根据这样一个规律,我们尝试对原始样本进行解密,结果如图3。

图3再次异或解密后的内容

3 再次异或解密后的内容

此时的样本看起来已经是一个有效的PE文件了——PE头已经正常,并且已经可以被PE工具识别。但也许真实的加密方法还有一些细节没被我们掌握,导出表仍然有一些问题(如图4)。不过这并不影响我们后面的分析。

图4导入表出错

4 导入表出错

解密后的分析

样本运行后,会将自身复制到%temp%目录,使用随机数字命名,后缀名为.dat。使用MoveFileEx函数删除本体。遍历系统进程,查找winlogon.exe进程,结束winlogon.exe中的sfc_os.dll的线程(如图5),用于禁用系统的文件完整性检查,防止伪装的mspmsnsv.dll被系统恢复。

图5 结束sfc_os.dll的线程

5 结束sfc_os.dll的线程

样本会修改以下注册表键值:

HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerPendingFileRenameOperations:

??C:DOCUME~1ADMINI~1LOCALS~1Temp随机数字.dat

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerPendingFileRenameOperations:

??C:DOCUME~1ADMINI~1LOCALS~1Temp随机数字.dat

描述:将TEMP目录下的自身文件在下次系统启动时候删除。

样本会删除%system32%目录下的系统文件mspmsnsv.dll,将自身的资源释放为%system32%mspmsnsv.dll,将文件时间修改为与sfc.exe一样的,并启动WmdmPmSN服务将mspmsnsv.dll加载起来。

图6创建临时文件、启动服务

6 创建临时文件、启动服务

mspmsnsv.dll分析

这个mspmsnsv.dll是一个后门程序,注册为系统的WmdmPmSN服务,开机后随服务启动,运行后判断用户是否是管理员组,创建互斥量:”808834455″,动态调用socket函数,初始化后每隔30s连接ie.aq1.co.uk(失效),获取上线信息,连接成功后接受远程主机控制。

根据ie.aq1.co.uk 的WHOIS信息,我们发现该网站的注册人是 Jeroen Nieboer,注册地址是Flat 9 Riverside Point Radmarsh Road Nottingham NG7 2GJ United Kingdom。

关于ie.aq1.co.uk的更多信息参见[3]

见3

对这个样本利用那个新的IE零日漏洞的情况,已经有其他安全厂商做了分析,因此我们在这里不再赘述。

参考链接:

[1]http://eromang.zataz.com/2012/09/16/zero-day-season-is-really-not-over-yet/

[2]http://technet.microsoft.com/en-us/security/advisory/2757760

[3]http://urlquery.net/report.php?id=183456