CCleaner后门分析

2017-12-29 15:24:49
国外著名的电脑垃圾清理软件CCleaner的官方版本被安全人员发现含有恶意代码,会偷偷执行Floxif木马,窃取受害者隐私,还有可能下载运行其它木马,造成更严重的危害。由于恶意版本带有官方正规签名,并且发布了1个月左右的时间,据估计有超过2百万用户受到影响。此次攻击事件与前段时间的XShell都属于类似的供应链攻击。下面将对其技术细节进行分析。

国外著名的电脑垃圾清理软件CCleaner的官方版本被安全人员发现含有恶意代码,会偷偷执行Floxif木马,窃取受害者隐私,还有可能下载运行其它木马,造成更严重的危害。由于恶意版本带有官方正规签名,并且发布了1个月左右的时间,据估计有超过2百万用户受到影响。此次攻击事件与前段时间的XShell都属于类似的供应链攻击。下面将对其技术细节进行分析。

背景

国外著名的电脑垃圾清理软件CCleaner的官方版本被安全人员发现含有恶意代码,会偷偷执行Floxif木马,窃取受害者隐私,还有可能下载运行其它木马,造成更严重的危害。由于恶意版本带有官方正规签名,并且发布了1个月左右的时间,据估计有超过2百万用户受到影响。此次攻击事件与前段时间的XShell都属于类似的供应链攻击。下面将对其技术细节进行分析。

技术分析

对比有问题的5.33与正常的5.34版本,在start函数中,相近地址处的两个函数sub_4010CD和sub_4D5F67。

在5.33版本,sub_4010CD函数中多了一个函数调用sub_40102C。而恶意模块的解密与执行就是在此函数中完成的。

sub_40102C,首先会调用sub_401000函数来解密恶意模块。恶意模块位于82E0A8处,大小是0x2978。通过一段解密函数,完成解密。

然后通过HeapCreate与HeapAlloc函数申请一段内存,并把解密后的代码进行映射,同时删除原始代码后,调用解密代码。

这段解密后的shellcode由一个pe加载模块和一个非标准的pe文件组成。peloader的功能就是重建pe,并将其加载执行。而木马的主要恶意功能,则是在后续的这段pe中。下面来看一下peloader部分。

首先通过fs寄存器获取peb结构,进而获取当前进程的加载模块地址与名称。并寻找kernel32.dll模块的基址与导出表。找出GetProcAddress函数的地址:

在通过GetProcAddress计算出LoadLibraryA,VirtuallAllc函数的地址。随后会加载msvcrt.dll,并寻找memcpy函数的地址。有了这些函数地址后,随后准备开始pe的加载。

首先通过VirtualAlloc分配一段内存,然后将PE结构中SectionHeader之前的部分进行拷贝。

判断区块表的个数,按照加载地址以及大小,把区块表拷贝到内存区域中。

完成这些操作后,把输入表进行重建。最后会通过调用DllEntryPoint完成dll的加载

在dllEntryPoint中,首先会通过启动一个线程去完成作恶。

启动线程后,调用一个参数为601的sub_100024D7函数。

这个函数的作用是去ping 一个保留地址,224.0.0.0。并且超时时间为601秒。

如果IcmpCreateFile失败,会通过Sleep(601*1000)来模拟这个ping的过程。ping操作结束后,会退出到上一个函数中,对时间差进行一个判断。如果大于600秒则继续往下进行。这里的作用猜测应该是对抗一些自动化的分析系统。

如果时间差大于600,并且IsUserAnAdmin判断成功,那么将继续进行后续的恶意流程。

进入if后,首先会提升当前进程的权限:

随后就会来到用户信息收集过程,收集的信息有系统版本号,计算机名称,通过注册表搜集非微软的已安装的程序,并遍历当前进程获取当前系统运行的进程。

收集信息后,上传到CC服务器中,服务器地址是216.126.225.148。

如果通信失败,则会调用DGA算法,生成一个域名,再次尝试。

DGA算法是通过系统时间来生成域名的,可以收集到近几个月的CC服务器如下

2017-02 ab6d54340c1a.com

2017-03 aba9a949bc1d.com

2017-04 ab2da3d400c20.com

2017-05 ab3520430c23.com

2017-06 ab1c403220c27.com

2017-07 ab1abad1d0c2a.com

2017-08 ab8cee60c2d.com

2017-09 ab1145b758c30.com

2017-10 ab890e964c34.com

2017-11 ab3d685a0c37.com

2017-12 ab70a139cc3a.com

后续就会对接收到的数据进行验证,并解密。但目前CC服务器已经没有回应。

查杀与预防

此次存在恶意模块的CCleaner版本是在官网8月份外发的CCleaner version 5.33.6162和CCleaner Cloud version 1.07.3191,而其他版本并没有受到影响。所以如果用户安装了此版本,请及时更新新的版本或者卸载后重新安装最新版本。目前针对有恶意模块的版本,电脑管家和哈勃分析系统(https://habo.qq.com/)都已能够识别,如果对所安装的CCleaner安全性不确定,可以通过电脑管家扫描或者上传哈勃分析系统进行分析。

哈勃分析系统也发布了CCleaner后门查杀工具,可以用于检测和查杀CCleaner后门,并指引用户更新无后门的版本。下载地址:https://habo.qq.com/tool/detail/ccleaner_ghost_killer

最新资讯