AVL移动安全团队截获了一款恶意木马,该木马运行后会窃取用户QQ和微信账户、好友列表、消息记录等,同时会利用subtrate hook框架监控键盘输入的任何信息。此外,该应用还会接收云端指令,执行模块更新、删除指定文件等远程控制操作,严重影响系统安全。
一 木马行为及危害
1. 一旦运行,该木马立即申请root权限,为之后各种恶意行为做好铺垫。 2. 创建一个detect进程,此进程下的模块插件与主进程进行通信,通过回调Java层代码、hook等方式收集用户隐私。 3. 监听键盘输入,用户所有敲入的字符都会被窃取,包括银行账号密码、社交APP账号密码等等。 4. 接收云端指令,执行模块更新、删除指定文件等,给系统安全带来极大安全隐患。
二 木马执行流程
本地进程间通信协议
运行在com.sec.android.service.powerManager进程的libnativeLoad.so、libPowerDetect.cy.so,会创建大量的服务监听。当接收到来自detect进程中的插件模块发来的socket通信请求时,通过判断buffer的前2个字节作为魔术字进行匹配,执行相应操作。
三 详细分析
1. 申请root权限,运行cInstall可执行文件
1) cInstall文件会在应用的私有路径下创建工作目录与数据存储目录,将cache缓存中detect、plugin.dat、dtl.dat、glp.uin拷贝到指定的目录下。
2) 读取plugin.dat,解析获取指定id模块对应的插件名称,据此改名写入”/data/data/com.sec.android.service.powerManager/cores/Users/All Users/Intel”目录。
以上目录与文件将被赋予可读可写可执行权限,为之后各种恶意行为做好铺垫。
将cache缓存下的super拷贝到/system/bin/目录,并提权。之后将libPowerDetect.cy.so、libnativeLoad.so等文件拷贝到指定目录,并静默安装substrate hook框架。
图 cInstall文件执行流程
将super拷贝到/system/bin目录下,并提权。
静默安装substrate框架:
2. 调用Substrate框架,并利用hook技术监控键盘输入
运行substrate框架,libPowerDetect.cy.so在init_array段进行初始化时,便会调用Substrate框架提供的api,对输入法操作中的字符输入、结束输入、隐藏键盘等方法进行hook,并将收集到的字符发送至detect进程。
3. 创建大量的监听服务,运行detect可执行文件
libnativeLoad.so会调用以下jni方法,创建大量的监听服务,运行super可执行文件。Super会通过设置用户和用户所在组id这种方式获取进行提权,并fork出一个detect进程。
4. 初始化主插件
detect可执行文件查找主插件下Initialplugin、 NetWorkStateChanged这两个符号,并调用进行初始化。
5. 主插件加载调用其他模块
WSDMoo.dat会调用执行其他模块下的SetCallbackInterface方法,并将一组函数指针作为参数传入,使其能够通过回调相应函数获取工作目录、插件配置等信息,且能为主插件添加一个上传任务。
6. 收集QQ账户、好友列表等隐私信息
winbrrnd.dat插件的SetCallbackInterface方法会创建startListernQQMsgThread线程,获取QQ和微信账户、好友列表、消息记录等信息,输出到指定文件,并回调主插件的CbAddUploadFileTask函数添加一个上传任务。
7. Socket联网上传,获取指令执行相应远控操作
Socket联网发送手机固件、插件信息,记录了从其他模块收集的隐私信息的文件。接收从服务器发来的消息,解析指令(详见下表),并执行相应操作。
四 总结
此款木马的特点是运行过程高度模块化,各ELF文件之间会相互通信、相互配合,并最终实现隐私窃取和远控后门的功能。此外,它还利用了substrate框架进行hook监控键盘输出。同时,该木马还会收集QQ和WebChat账号信息。黑客可能利用这些信息,向QQ好友或微信好友发送诈骗信息,对用户潜在威胁巨大。AVL移动安全团队提醒您,仅从官方站点或可信任的应用市场下载手机软件,不随意下载插件,以避免受到手机病毒的危害。
*作者/AVLTeam(企业账号),转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)