流氓软件巧压卸载仍留恶意模块随时“复活” 一招教你彻底清除

近日我们收到大量用户反馈,一款名为“巧压”的压缩软件卸载后还会“复活”——重新安装到用户电脑中。火绒工程师分析后发现,在用户执行卸载操作时,“巧压”会将恶意模块驻留在用户电脑中,并可以通过恶意代码从云控服务器下载执行任意可执行文件。用户大量反馈的“复活”现象,不排除是通过该云控逻辑实现。根据“火绒威胁情报系统”监测和评估,目前受到“巧压”影响的用户或在百万级左右。

 

“巧压”除了卸载不掉以外,还会产生大量弹窗广告,严重干扰用户日常电脑的使用。目前火绒为用户提供以下两种解决方法:

1、        彻底卸载

用户通过“控制面板”卸载“巧压”后,使用“火绒安全软件”进行全盘扫描,即可彻底卸载该软件。

2、        保留压缩功能

用户直接使用“火绒安全软件”进行全盘扫描,即可彻底删除恶意模块以及弹窗广告模块,只保留压缩功能。

 

 

关于“巧压”是如何驻留用户电脑的,请见我们的详细分析报告。

 

附:【分析报告】

一、 背景

近期,火绒接到大量用户反馈称压缩软件巧压,在软件被卸载后会“复活”重新装回用户电脑,随后我们针对巧压的相关流氓行为进行了详细分析。该流氓软件在卸载后,服务项和Shell扩展项依然会驻留在用户电脑中。上述驻留项被调用后,最终会调用驻留在用户电脑中的QiaoZipSvcHost.exe下载执行远端服务器下发的可执行程序。虽然在报告发出时,我们未获取到有效的“复活”相关远端配置数据,但我们不排除众多网友所遇到的巧压“复活”的情况与相关逻辑有关的可能性。巧压软件卸载后的部分驻留模块,如下图所示:

 

 

巧压软件卸载后的部分驻留模块

 

巧压软件卸载后驻留的Shell扩展项加载情况,如下图所示:

 

 

驻留的Shell扩展项加载情况

 

巧压软件卸载后驻留的服务项加载情况,如下图所示:

 

 

驻留的服务项加载情况

 

除此之外,该软件在使用过程中还会产生较多的广告弹窗,严重影响了用户对个人电脑的正常使用。该流氓软件产生的广告弹窗,如下图所示:

 

 

广告弹窗

 

 

广告弹窗

 

二、 详细分析

启动方式

QiaoZipSvcHost.exe可由“QiaoZipSvcHost.dll”和“QiaoZipRMExtern.dll”模块调用启动,启动流程大致相同,默认启动间隔均为30分钟。该流氓软件执行流程,如下图所示:

7.png

 

流氓软件执行流程

 

QiaoZipSvcHost.dll启动QiaoZipSvcHost.exe

后台驻留的服务由QiaoZipMd5Tool.exe模块注册。Install.exe安装包程序执行后会解出QiaoZipMd5Tool.exe和用于服务执行的QiaoZipSvcHost.dll文件。QiaoZipMd5Tool.exe直接启动时为带有界面的Hash校验工具,但也可以通过添加命令行参数的方式将QiaoZipSvcHost.dll静默注册为服务。相关程序运行信息如下图所示:

 

 

程序运行信息

 

驻留的服务会在SeviceMain中创建线程,间隔固定时间(默认为30分钟,也可通过注册表项HKCU\Software\QiaoZipSvcHost\QiaoZipSvcHost键值retainPI设定分钟数)启动模块QiaoZipSvcHost.exe , 参数为 -startby=1。 QiaoZipSvcHost.exe的路径从注册表中HKCU\Software\QiaoZipSvcHost\QiaoZipSvcHost键值uishP获得。相关代码如下图所示:

 

 

ServiceMain中创建线程用于启动模块

 

 

每隔固定时间启动

 

 

创建进程启动

 

 

注册表

 

QiaoZipRMExtern.dll启动QiaoZipSvcHost.exe

QiaoZipMd5Tool.exe会将QiaoZipRMExtern.dll注册为图标处理程序组件(ShellIconOverlayIdentifiers),当explorer.exe处理文件图标时,便会将其加载起来。相关注册表项如下图所示:

 

 

注册表相关信息

 

驻留的QiaoZipRMExtern.dll模块,会对自己当前所在进程是否是explorer.exe进行判断,如果是,则通过注册表键“eysTime”来查询程序上次运行时间戳,相关代码如下图所示:

 

 

查询当前所在进程并获取上次运行时间戳

 

 

注册表相关键值信息

 

当获取上次运行时间戳成功后,会与当前系统时间进行运算比较。如果上次运行时间距离当前系统时间大于30分钟,则程序继续向下运行,否则继续等待。相关代码如下图所示:

 

 

程序上次运行时间与当前系统时间进行运算比较

 

当满足上述时间差条件后,程序会通过注册表键“uishP”获取QiaoZipSvcHost.exe的所在路径。获取成功之后,则会拼接运行参数“-startby=2”来执行QiaoZipSvcHost.exe。最后,获取当前时间并更新注册表“eysTime”的键值,相关代码如下图示:

 

17.png

 

通过注册表键“uishP”获取QiaoZipSvcHost.exe所在路径

18.png

 

注册表相关键值信息

 

启动QiaoZipSvcHost.exe并更新“eysTime”键值

 

QiaoZipSvcHost.exe下载器

QiaoZipSvcHost.exe被调用后会将本地系统信息上传到C&C服务器,请求地址如:hxxps://g.qiaoya.xsfaya.com/?r=/v2/api/config/wheel&category=0&manager=1&os=5&parent=1&qid=1&softid=17&uninstalled=1&vd=8&version=1.0.0.0&x64=1,请求会上传用户的系统版本、软件卸载状态、软件版本等信息。服务器在接到请求后,会反馈下载相关配置数据。请求相关代码,如下图所示:

20.png

 

请求链接构造

 

请求远程配置

服务器下发的配置数据为json格式,现阶段我们截获到的配置数据已经没有相关的下载配置,但是我们不排除将来相关配置放开下发可执行模块的可能性。但是服务器依然可以访问,现阶段我们请求到的配置,如下图所示:

 

现阶段我们截获到的配置数据

在服务器配置放开下发的情况下,QiaoZipSvcHost.exe会根据下载配置中的链接地址下载指定模块到本地执行,相关代码如下图所示:

下载远端文件

执行从远端下载到的可执行文件,相关代码如下图所示:

 

执行从远端下载的可执行文件

 

三、 附录

样本hash


本文禁止转载或摘编

-- --
  • 投诉或建议
评论