流氓软件巧压卸载仍留恶意模块随时“复活” 一招教你彻底清除
-
作者:火绒安全
-
发布时间:2020-02-27
-
阅读量:1078
【快讯】近日我们收到大量用户反馈,一款名为“巧压”的压缩软件卸载后还会“复活”——重新安装到用户电脑中。火绒工程师分析后发现,在用户执行卸载操作时,“巧压”会将恶意模块驻留在用户电脑中,并可以通过恶意代码从云控服务器下载执行任意可执行文件。用户大量反馈的“复活”现象,不排除是通过该云控逻辑实现。根据“火绒威胁情报系统”监测和评估,目前受到“巧压”影响的用户或在百万级左右。
“巧压”除了卸载不掉以外,还会产生大量弹窗广告,严重干扰用户日常电脑的使用。目前火绒为用户提供以下两种解决方法:
1、 彻底卸载
用户通过“控制面板”卸载“巧压”后,使用“火绒安全软件”进行全盘扫描,即可彻底卸载该软件。
2、 保留压缩功能
用户直接使用“火绒安全软件”进行全盘扫描,即可彻底删除恶意模块以及弹窗广告模块,只保留压缩功能。
关于“巧压”是如何驻留用户电脑的,请见我们的详细分析报告。
附:【分析报告】
一、背景
近期,火绒接到大量用户反馈称压缩软件巧压,在软件被卸载后会“复活”重新装回用户电脑,随后我们针对巧压的相关流氓行为进行了详细分析。该流氓软件在卸载后,服务项和Shell扩展项依然会驻留在用户电脑中。上述驻留项被调用后,最终会调用驻留在用户电脑中的QiaoZipSvcHost.exe下载执行远端服务器下发的可执行程序。虽然在报告发出时,我们未获取到有效的“复活”相关远端配置数据,但我们不排除众多网友所遇到的巧压“复活”的情况与相关逻辑有关的可能性。巧压软件卸载后的部分驻留模块,如下图所示:
巧压软件卸载后的部分驻留模块
巧压软件卸载后驻留的Shell扩展项加载情况,如下图所示:
驻留的Shell扩展项加载情况
巧压软件卸载后驻留的服务项加载情况,如下图所示:
驻留的服务项加载情况
除此之外,该软件在使用过程中还会产生较多的广告弹窗,严重影响了用户对个人电脑的正常使用。该流氓软件产生的广告弹窗,如下图所示:
广告弹窗
广告弹窗
二、详细分析
启动方式
QiaoZipSvcHost.exe可由“QiaoZipSvcHost.dll”和“QiaoZipRMExtern.dll”模块调用启动,启动流程大致相同,默认启动间隔均为30分钟。该流氓软件执行流程,如下图所示:
流氓软件执行流程
QiaoZipSvcHost.dll启动QiaoZipSvcHost.exe
后台驻留的服务由QiaoZipMd5Tool.exe模块注册。Install.exe安装包程序执行后会解出QiaoZipMd5Tool.exe和用于服务执行的QiaoZipSvcHost.dll文件。QiaoZipMd5Tool.exe直接启动时为带有界面的Hash校验工具,但也可以通过添加命令行参数的方式将QiaoZipSvcHost.dll静默注册为服务。相关程序运行信息如下图所示:
程序运行信息
驻留的服务会在SeviceMain中创建线程,间隔固定时间(默认为30分钟,也可通过注册表项HKCUSoftwareQiaoZipSvcHostQiaoZipSvcHost键值retainPI设定分钟数)启动模块QiaoZipSvcHost.exe , 参数为 -startby=1。 QiaoZipSvcHost.exe的路径从注册表中HKCUSoftwareQiaoZipSvcHostQiaoZipSvcHost键值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”的键值,相关代码如下图示:
通过注册表键“uishP”获取QiaoZipSvcHost.exe所在路径
注册表相关键值信息
启动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,请求会上传用户的系统版本、软件卸载状态、软件版本等信息。服务器在接到请求后,会反馈下载相关配置数据。请求相关代码,如下图所示:
请求链接构造
请求远程配置
服务器下发的配置数据为json格式,现阶段我们截获到的配置数据已经没有相关的下载配置,但是我们不排除将来相关配置放开下发可执行模块的可能性。但是服务器依然可以访问,现阶段我们请求到的配置,如下图所示:
现阶段我们截获到的配置数据
在服务器配置放开下发的情况下,QiaoZipSvcHost.exe会根据下载配置中的链接地址下载指定模块到本地执行,相关代码如下图所示:
下载远端文件
执行从远端下载到的可执行文件,相关代码如下图所示:
执行从远端下载的可执行文件
三、附录
样本hash