作者:张海 孙年忠 石浩然

一、 行为概述

近日,用户反馈称在不知情的情况下手机中会被安装上四款游戏软件,即便主动卸载后又在一天之内被重复安装. 360手机安全专家分析,该android手机木马通过修改系统设置程序(setting)的源代码以及在云控指令下可安装或删除在/system/base目录下的四个游戏软件,另外通过云端及本地参数的适配,木马可实现的功能包含自更新、ROM更新、安装Apk、卸载Apk、执行任意程序任意命令等.据统计,该木马通过专业厂商定制的第三方ROM所感染,其中所感染的机型多达180余种,感染用户预计在数十万以上。详见下文分析。

图1.被木马安装上的四款游戏

图2.网上关于该手机窃取用户金融财产的反馈

二、 样本结构

两个恶意文件均预装在ROM里

文件1

包名: com.android.settings

文件路径: /system/app/HctSettings_vivo.odex

文件2

包名: com.cooee.mcesys

Md5: e42fb505b5d09652d252b09e09ba63c9

文件路径: /system/app/Mcesys.apk

三、 架构分析

1. com.android.settings分析

云控安装/卸载apk

通过ContentProvider与com.cooee.mcesys进行进程间通信,获取PhoneInfo及发送安装卸载/system/base下的apk文件.

图3.声明的Provider

图4./system/base下的apk文件

获取/system/base目录下apk包名等属性加入到app_packs_db数据库文件中,表名为cooee_hide_packs.

图5.cooee_hide_packs表

注册下列URI用来给com.cooee.mcesys提供PhoneInfo及对com.cooee.mcesys发送的安装卸载包做响应.

uriMatcher.addURI(“com.android.settings.CooeeAppCtrlDataProvider”,”users/ctrl_status”, 2);

uriMatcher.addURI(“com.android.settings.CooeeAppCtrlDataProvider”,”users/package_info”, 6);

uriMatcher.addURI(“com.android.settings.CooeeAppCtrlDataProvider”,”users/all_item_no_pack”, 5);

uriMatcher.addURI(“com.android.settings.CooeeAppCtrlDataProvider”,”users/phone_info”, 8);

图6.Uri类型

其中PhoneInfo中的factory_id,push_time等参数用于给com.cooee.mcesys云控.

图7.获取的PhoneInfo

安装卸载/system/base下的apk文件(卸载包时会排除QQ手机管家)

图8.安装/卸载包

2. com.cooee.mcesys分析

六大模块介绍

Background模块负责后台静默查询云端,响应指令结果分发给callback.

Common模块封装了常见的压缩,root,http,log,calc md5,reboot recovery等操作.

Download模块封装了下载,分发callback.

Localdata模块封装了一个Sqlite数据库用于给manager做交互及对云控包做管理.

Update模块封装了对下载回来的文件进行子命令解析,执行,分发给callback.

Xml模块封装了对BackgroundRequest返回包的描述.

图9.子模块列表

对服务器请求的BackgroundRequest分类

云控服务器配置信息

BackgroundRequest.SERVER_CONFIGURE_INFO_REQ

服务器返回的推广包信息

BackgroundRequest.UPGRADE_INFO_AIRPUSH_INFO_REQ_FORCE

BackgroundRequest.UPGRADE_INFO_AIRPUSH_INFO_REQ_NORMAL

BackgroundRequest.UPGRADE_INFO_LIST_REQ

BackgroundRequest.UPGRADE_PACKAGE_INFO_GET_REQ

单个推广包信息

BackgroundRequest.UPGRADE_PACKAGE_FILE_INFO_GET_REQ

BackgroundRequest.UPGRADE_PACKAGE_FILE_DOWNLOAD_REQ

发送下载/安装完成至云端

BackgroundRequest.UPGRADE_PACKAGE_FILE_DOWNLOAD_FINISH_CONF

BackgroundRequest.UPGRADE_PACKAGE_INSTALL_COMPLETE_CONF

获取用户隐私并上传

上面所提到的请求都会获取设备隐私信息发送到服务器

图10.获取的隐私信息

Mcesys使用到的权限

图11.权限使用

云控自动联网下载配置文件

Mcesys安装后无图标,响应BOOT_COMPLETED,CONNECTIVITY_CHANGE, PACKAGE_ADDED等广播,最终触发到com.cooee.mcesys.service.RotaService.该服务开启BackgroundThread线程监视当前机器环境,满足一定条件联网发送BackgroundRequest请求。具体为当前联系人/通话记录/收件箱/发件箱任一数量超过20条并且开机超过四个小时并且没有发送过BackgroundRequest中的airpush相关请求包并且不在0-8点.

苛刻的触发条件,增加了分析的难度,并且会导致很多自动化分析工具失效,另一方面也会让恶意行为出现在真正的用户设备上。

图12.相关触发点条件设置

图13.联网条件

联网后通过BackgroundRequest.SERVER_CONFIGURE_INFO_REQ返回的请求包相关字段来判断是否强制安装/卸载/system/base下的apk(由com.android.setttings模块执行)。这一步判断逻辑为本地PHONE_RUNTIME, SMS_COUNT, CALL_COUNT是否超过服务器返回的值并且RETURN_CODE字段值不等于0x262。

图14. SERVER_CONFIGURE_INFO

图15.更新本地配置与服务器同步

发送安装/卸载请求到com.android.settings并执行(通过ContentProvider)

图16.发送安装卸载请求

发送AirPush请求, BackgroundRequest.UPGRADE_INFO_AIRPUSH_INFO_REQ_NORMAL返回包如下

图17.AirPush返回包结构

其中FILE_ID字段为关键key,如果DESCRIPTION字段包含”com.cooee.mcesys”与” MCE_YZFA_COMMON_MTK001”则分发给callback做自更新,包含”ROTA_DELETE”则执行删除本地路径操作,否则就弹出通知栏诱导用户点击安装.

发送UPGRADE_PACKAGE_FILE_INFO_GET_REQ与UPGRADE_PACKAGE_FILE_DOWNLOAD_REQ下载推广包,返回的压缩包结构为

图18.File_Download返回包结构

Cmd.xml文件标识着子命令及参数的组成

图19.cmd.xml文件结构

云控自动更新ROM、安装/卸载APK、执行任意命令、自更新

其中CMD NAME为ROTA_INSTALL,子命令分类如下:

UpdateCommandEnum.DEFF – 更新ROM

UpdateCommandEnum.ROTA_COPY – 拷贝res中的文件到system目录

UpdateCommandEnum.ROTA_DELETE – 删除文件

UpdateCommandEnum.ROTA_INSTALL – 静默安装apk

UpdateCommandEnum.ROTA_UNINSTALL – 静默卸载apk

UpdateCommandEnum.ROTA_SHELL_CMD – 以root权限执行任意命令

UpdateCommandEnum.ROTA_SHELL_REBOOT – 暂未实现

UpdateCommandEnum.ROTA_UPDATE – 自更新mcesys

四、 感染机型

经我们不完全统计,仅最近半个月,该木马的感染机型达到180多种,感染数量近3万。

部分机型列表如下:

五、 解决方案

目前,我们已经独家发布了专杀工具,下载地址是:

该专杀工具可以对Android设备进行深度地精确扫描,判断其中是否存在云端远控木马及其变种。我们在其中开发了全新的查杀技术,能够有效的保护您的手机免受云端远控木马的侵害。

如果目前暂不支持您的设备或者专杀工具在您的手机上无法正常工作,我们的建议您:

定期检查该专杀工具的更新,我们将逐步增强专杀工具的防御能力;

在专杀工具检测到云端远控木马后,将您的机型信息和样本上报给我们,可以帮助我们更快更好地开发出适合您的机型的查杀代码;

加入我们的技术支持QQ群,向我们反馈更多的信息,并获得我们应急响应工程师的技术指导;

安装360手机安全卫士,开启云查杀功能,抵御云端远控木马带来的关联威胁。

六、 总结

从代码实现上来看用户机器上的com.cooee.mcesys应为迭代版本,框架中的很多接口都已经搭好但未使用.Mcesys.apk实现了远控的所有操作,只需要云端根据不同工厂ID(haocheng),PhoneInfo等条件配置返回信息即可,加上可以自由更新rom包导致可扩展性非常好.服务端可以根据不同的客户机条件下发不同的程序和命令,导致危险行为很隐蔽,被查杀难度加大。通过和用户交流沟通以及从网上收集到的资料来看,我们认为我们分析报告中指出的危险行为只是冰山一角,我们推测该云控木马将大量恶意程序放置在云端,一旦发现用户手机中有涉及到金融操作等敏感行为时,云端可以派发更多恶意程序实现金融盗窃等行为。另外,该远控木马也可以放长线钓大鱼等用户数量累积到一定程度的时候,来个一网打尽。对此,360安全中心再次提醒广大用户一定要到正规卖场尽量购买正规厂商的电子设备。

云控参数下发android,Oldboot鬼影又现,另一例山寨手机中运用云端远控技术的木马...相关推荐

  1. 糟糕!原来你的电脑就是这样被木马远控了

    作者 | 杨秀璋,责编 | 夕颜 出品 | CSDN博客 头图 | 视觉中国 这篇文章将详细讲解远控木马及APT攻击中的远控,包括木马的基本概念和分类.木马的植入方式.远控木马的通信方式.APT攻击与 ...

  2. MatePadPro远控MacBookPro生产力最大化尝试

    目的: 1.[减重]作为程序员不每天负重背16寸Mac上下班通勤,如果一定要随时Coding可以背着相对轻多了的[MatePad](https://club.huawei.com/forum-4333 ...

  3. RdViewer远控隐蔽利用及钓鱼攻击

    本文转载于: https://mp.weixin.qq.com/s?__biz=Mzg4NzkwMDA5NQ==&mid=2247484000&idx=1&sn=56b2413 ...

  4. 如何实现外网 RDP 远控(frp)

    使用 frp 在任意网络下实现远程桌面控制. 为什么使用 RDP RDP 是 Windows 自带的协议.相比市面上的远程桌面软件,如 Todesk.Anydesk.向日葵等,有以下优势: 兼容性更佳 ...

  5. 如何在多线程中调用winform窗体控件2——实例篇

    如何在多线程中调用winform窗体控件2--实例篇 针对之前文章<如何在多线程中调用winform窗体控件>,下面举个我项目中的实际案例,这是一个我自定义控件在异步设置焦点时的代码.在新 ...

  6. 晚安西南-----远控房魅影

    序言: 在这里,所有的井控设备都是自己调试,顶多来个懂行的指导下,而在家里像远控房调试与液路管线的安装只需要自己验收即可,不需要亲自安装与调试.由此,在调试远控房时,心底有些心虚.要知道它们都是直接作 ...

  7. 远控杂说---总有一款适合你

    前言 我在佛前苦求了几千年神器,愿意用几世换我们一世情缘,希望可以感动上天. 你我相识,我们一同探索开源神器,如果喜欢小编,就赶紧关注我们, 让我们一起成长吧 部分图片 下面的图片展示了一部分远控的图 ...

  8. linux中隐藏得木马程序,Linux远控分析

    0x1 前言 在国内,Linux操作系统以一般运用于服务器及相关后台,个人用户相对较少,因此Linux平台的木马病毒数量也远远不及Windows平台,其变种数量以及变化速度也比不上Windows平台. ...

  9. 从零开始做远控 簡介篇 做一个属于你自己的远控

    做一个属于你自己的远控: 先对大家说句抱歉,上次答应带大家一起做远控但因为我的个人原因让课程中途断了,这次我答应大家一定要把这教程完成.你在看着课程之前你必须掌握c/c++,qt,win32 api. ...

最新文章

  1. Python实战案例,requests模块,Python实现获取动态图表
  2. C++中的const成员函数介绍
  3. 2.4操作系统之死锁详解(预防、避免、检测、解除)+思维导图
  4. JS的Object.keys
  5. docker中的mysql操作
  6. 消除ie上的:为了有利于保护安全性,IE已限制此网页运行可以访问计算机的脚本或 ActiveX 控件...
  7. mysql 8.0以上 新版本账号密码策略修改和密码修改
  8. ajax json 渲染 html,jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
  9. 为什么要在2021年放弃Jenkins?我已经对他失去耐心了...
  10. SpringCloud与Ribbon整合的时候是如何提供RestTemplate负载均衡功能?
  11. redhat7linux防火墙开放端口,Redhat7 firewall(防火墙)
  12. JavaSwing_2.2: JButton(按钮)
  13. 虚拟机opnsense作为dhcp服务器,在OPNsense中,通过主机名或域名访问内部设备
  14. 看完就能学会如何使用热敏电阻!
  15. 谱尼测试网络安全护航
  16. 人的五要素:自我意识、关系意识、信息、计划、行动
  17. 【云图】如何制作AMF生态鱼缸实体店分布图
  18. mui实现APP中的支付宝支付
  19. 一个完整的研发体系应该包括的内容
  20. IOS开发—iOS视频拍摄与压缩

热门文章

  1. 13.相机和图像——聚焦于对象实战,不断变化的焦距,景深_3
  2. 20.校准相机——直接线性校准不均匀,直接线性校准变换,几何误差_3
  3. arch linux 安装xfce_华为荣耀Magicbook安装Manjaro系统指北
  4. 【英语学习】【English L06】U02 Food L1 Food on the menu
  5. Pentium II Pentium III架构/微架构/流水线 (4) - P6详解 - 高速缓存/Store Buffers
  6. 三、Arcgis api js -- 图形管理 Layer
  7. 进程间通信方式_第四十九期-Linux内核中的进程概述(4)
  8. 一个简单地C语言程序展示RSA加密原理
  9. UE4 Slate概述
  10. Keras-5 基于 ImageDataGenerator 的 Data Augmentation实现