幽虫木马分析

 

前言

2018年下半年开始,360互联网安全中心监控到一批恶性木马下载器一直在更新传播,初步统计,中招机器超过40万台。

该木马团伙通过伪造、冒用签名的方式试图逃避安全软件检测,利用捆绑在外挂或破解软件、伪装激活工具中、植入盗版系统等方法进行广泛传播,通过释放驱动的方式实现长期驻留受害者机器。用户一旦中招,便会被篡改浏览器主页,并被静默安装推广程序或病毒木马。由于该类木马的隐蔽性很强,即使发现电脑异常,一般用户也很难查清幕后真凶,因此我们将该木马团伙命名为“幽虫”。

 

感染情况

自2018-10-3起至2018-11-9止,该家族样本共计感染次数91万,所有数据按照mac地址去重后共计41万。如下图所示,传播最高峰出现在10月12日,仅这一天就该家族木马就感染了近10万次。

在被感染的机器中,有84%的系统为Win7系统。这一方面是因为目前市面上Win7系统使用量占比仍比较高,另一方面也是因为在Win7系统上使用激活工具的情况也相对多一些(当前的Win10系统多为新电脑预装正版,不需要用户自行激活)——这也就给木马利用虚假的系统激活工具传播留下了更大的可乘之机。

地区感染量占比Top情况如下图所示,可以看到样本对广东、山东、河南、江苏地区用户影响较大:

样本分析

母体样本

本次分析的木马母体样本伪装成名为“xiaoma”的系统激活工具。样本启动后,释放并运行驱动加载器svchost.exe(非系统进程),驱动加载器解密自身.rc1节区内的驱动文件,同时判断注册表HKLM\SOFTWARE\Wow6432Node\VolmgrmntHome是否存在,若存在则退出程序不再继续安装。

待驱动安装成功则请求Web服务器进行日志统计:

驱动模块

驱动模块类型属于过滤驱动,其所支持功能如下图所示:

驱动的入口函数

以X64版为例。驱动入口处首先判段机器是否已被感染,之后创建用以与应用层模块进行通信的设备“volmgrmnt”,同时创建%SystemRoot%\temp\MpCz01.tmp文件作为感染标志

通过解析内核执行体获得ZwReadVirtualMemory、ZwWriteVirtualMemory、ZwProtectVirtualMemory三个函数,用于在注入应用层时写shellcode使用。同时取到KdDebuggerEnabled内核调试标志,若该值为1(即,内核调试为开启状态),则停止后续工作。之后解密驱动文件包含的两个不同版本的DLL模块,该模块最终会注入到被监控的进程中:

完成后,驱动会注册进程创建、模块加载回调例程:

之后创建TDI过滤设备\\Device\\CFPTcpFlt,该设备会挂接到\\Device\\Tcp上,用以监控TCP数据包,接着创建注册表操作回调例程:

同时,该驱动支持在低版本的系统上卸载主流安全软件的进程创建、模块加载回调例程,至此,程序的入口函数结束:

文件系统过滤

驱动模块注册了Minifilter过滤器,其所有前置与后置例程均分别设置为同一个函数:

在前置操作pre_flt_580DB94解析出当前操作进程以及被操作文件,用于规则判定,其判定的逻辑大致如下:

如果被操作文件为驱动本体,则使用IoReplaceFileObjectName将文件重解析为acpi.sys文件,

最终表现出的结果为:当用户试图查看该驱动文件的任何信息时,系统给出的结果均为正常的系统文件acpi.sys的相关信息。

故,前置操作规则总结如下:

  1. 放行——主流浏览器、安全软件安装包
  2. 阻止——360安全卫士、电脑管家等关键模块
  3. 阻止——安全软件急救箱关键模块
  4. 重解析——当前驱动文件为同路径下acpi.sys
  5. (特定情况下)禁止——浏览器加载安全防护模块
  6. 放行——其他

在后置操作post_flt_580F400中,除放行主流浏览器、安全软件安装包外,还针对安全软件和explorer对\drivers*的打开进行了过滤,目的是为了阻止安全软件的驱动加载:

最终结果为:当列表中匹配到的安全软件或用户试图访问drivers目录下的驱动时,均无法找到任何驱动文件,导致驱动加载失败。

后置操作规则总结如下:

  1. 放行——主流浏览器、安全软件安装包
  2. 对explorer以及安全软件打开 \drivers* 目录操作返回无文件

进程创建、模块加载、注册表操作回调

进程创建回调中,通过比对进程文件名的hash值判定当前进程是否拦截:

修改ntdll.dll模块的内存属性,之后在模块加载回调中写入shellcode,最后插入APC执行:

该段shellcode会加载上文提到的DLL模块,并进行导入表重定位,最后调用模块入口点执行,如下图所示:

在注册表操作回调中,过滤掉安全软件对注册表项包含驱动本体路径的操作:

设备通信

\DosDevices\volmgrmnt 设备通过与应用层注入的dll模块进行通信,维护文件、进程、网络监控列表,同时支持驱动本体文件的更新:

以上就是本驱动模块支持的所有功能。

应用层DLL模块

以32位DLL模块为例,模块启动通过判断当前进程名称执行不同的逻辑,其功能如下图所示:

配置文件的获取

DLL模块首先解析其内部配置文件,该配置文件最初由驱动加载器写入到注册表,再由驱动程序读出后写入DLL模块的.rtext节中:

DLL模块解析该加密数据,最终得到如下内容:

其中字段bkcurl字段即模块的最终配置文件,通过访问该链接,可以看到返回内容如下图:

其中定义了主页锁定链接,浏览器劫持的进程名称,下载者需要下载执行的文件等信息。

浏览器主页劫持

通过带参数重启方式替换浏览器默认主页,实际的被劫持列表还包括上文的配置信息中所列数据。

我们接到过的同类型的用户反馈如下:

其他功能

在联网下拉配置成功后,启动线程将其下回%temp%/随机.tmp/本地命名为desktop.ini,之后启动线程处理其内部字段:

DLL模块回连主控服务器,通过与主控服务器进行通信完成其所定义之功能, 主控服务器的IP地址获取比较有趣,先通过解析ca.jp.ix[a-e].cose.space域名得到返回的假IP,再通过内部换算拿到实际的IP地址。

DLL模块的衍生物

上文介绍了DLL模块会联网获取到到一个配置desktop.ini,其中有一个下载链接为hxxp://pv.mupeng1688.com/skype.exe,该文件伪造了GLOBAL BENEFIT NETWORK COMPANY LLC的签名,通过后台数据查询,可以发现在此之前,该类样本还冒用过Beijing Founder Apabi Technology Limited的签名,

功能分析

衍生物的功能包括“网页暗刷”以及“下载者”功能。功能如下图所示——这是一个典型的“CPM”模式木马。通过自身的前期铺量,后期作为“渠道商”推送其他木马获取利益。通过数据分析发现其推送的类型包含盗号、下载者、刷量、rootkit等各种恶意软件,可谓样样俱全。

这里以下载者功能为例进行简单分析,其工作流程为——判断当前工作环境,避免运行于分析环境或者沙箱中,接着与CC服务器通信获取下载任务,之后下载执行:

查杀截图

目前,360无需升级即可查杀此类木马:

彩蛋

通过同源分析,其中DLL的衍生物所推送的某例calc.exe使用了域名是mini00.com的统计后台:

总结

由于该类病毒通常以盗版系统、伪装激活工具、捆绑外挂及破解软件等方式感染用户机器,我们建议用户:

  1. 请尽可能的使用正版操作系统和软件。
  2. 软件建议从正规渠道下载,如官方网站或360软件管家等。
  3. 如果使用了激活工具或安装了Ghost系统后出现异常状况,可使用360急救箱进行检查。
  4. 建议安装360安全卫士并开启全面安全防护功能,可有效拦截此类病毒。

 

IOCs

[URL/HOST/IP]

hxxp://www.tj678.top

www.rminicpm.com

m.yinuolm.com

hxxp://pv.mupeng1688.com

ca.jp.ix[a-e].cose.space

hxxp://www.dqzsy.com/fjr666.ini

hxxp://2345dh.ps1f.com

www.mini00.com

98.100.119.13

[MD5]

01ccb04891ef1c19a5d750e79b3e2da

59eb7f61033a4b0131e1906ad1831372c

b98b041ae51316cd0f544900ccbf76a4

1b81e2e0919989776e2316a003421f2d

31aee7df1b47a6183061d94e6479e551

df9899c792145395bbc4d5b8795d98c1

fb3fa1d078912fbdacece1685a2333d1

(完)