一、背景
还记得2016年爆发的“寄生灵”手机病毒吗?——那个贴着“替换系统文件”、“获取手机Root权限”、“恶意推广色情扣费软件”、“同时感染多个病毒”等标签的感染量超过百万的超级病毒,用户一旦被感染,病毒将私自发送扣费短信造成资费的损失,频繁推送广告影响手机的正常使用。经过360核心安全团队深入的跟踪和分析,我们在近期发现了该病毒核心模块的又一变种。该模块的核心功能依然是恶意推广色情及扣费应用软件。这说明Android手机病毒为了提高防御能力、绕过查杀、提升与杀软对抗的能力,增加了更多强大的功能、手段更加高明、感染数量也不断提高。
二、感染量统计
据360互联网安全中心监测到的数据, 2018年该病毒平均月新增10W,累计感染量已达数十万。
图1:病毒感染量统计
三、关联
2016年爆发的寄生灵手机病毒的行为主要有私自获取手机Root权限、恶意推广软件。该病毒与其他病毒一起通过色情应用传播,通常用户手机会同时被多个病毒感染,当用户下载安装这些应用后,病毒将尝试多种方式获取手机Root权限,然后恶意下载安装其他应用。寄生灵病毒包括难以删除dtm、spm、idm、syssp等病毒文件。此病毒还采用了加密混淆、md5变化、使用已备案域名等方式来躲避查杀追踪。
本次发现的病毒是寄生灵病毒的核心模块idm、dtm、spm的又一变种,其核心功能依然是恶意推广色情及扣费应用,以插屏、循环轮播的方式频繁弹广告且点击之后下载其他更多应用软件。不同之处在于,它将之前多个模块的功能集成在一个模块内,从而减少了对其他模块的依赖;使用RSA算法对敏感数据进行加密,隐藏服务器地址。
四、样本基本信息
MD5:1180a2691********dec5baca697361
路径:/system/xbin/chmogd
危害:该样本危害包括联网上传窃取用户隐私;私自下载、静默安装应用,以插屏、循环轮播的方式频繁弹广告且点击之后下载其他更多应用软件。不但容易造成用户手机流量损失,还影响用户手机正常使用。
五、详细分析
首先,我们梳理出病毒的主体功能和框架,如图:
图2:病毒框架
病毒主要分为三个模块:
模 块 | 功 能 |
初始化模块 | 对启动脚本和核心模块进行一些初始化操作。 |
启动脚本 | 首先提升病毒核心模块的权限,后启动病毒核心模块。 |
病毒核心模块 | 执行联网上传窃取用户隐私和私自安装应用,完成病毒的核心功能。 |
- 初始化模块:
启动模块运行创建两个线程:执行命令“mount -o remount,rw /system”,以可读写的方式加载/system分区,分别将/sdcard/.mnodir 路径下的启动脚本和病毒核心模块拷贝到 /system/etc 和 /system/xbin 目录下并修改为可执行权限,最后删除清理掉原 /sdcard/.mnodir 下的文件。
图3:初始化模块
(二)启动脚本
执行supolicy命令对病毒核心模块的执行模式修改为宽容模式后,启动病毒核心模块。改为宽容模式的目的是为了在运行时,程序依然有权限执行它们想执行的那些动作。在Permissive模式下运行的程序不会被SELinux的安全策略保护。
(三)病毒核心模块行为分析
- 判断病毒核心文件是否存在
/system/bin/csbrislp |
/system/xbin/csbrislp |
/system/bin/culpxywg |
/system/xbin/culpxywg |
这类文件在Root权限下执行命令,获取 /data/data 目录下安装程序的信息。病毒母包会在 /system/bin和/system/xbin 下创建这类文件,文件名不限于上述列表。
若上述文件不存在,则读取/system/etc/.rac,rac文件中记录该模块的文件名。目前获取到的相关可疑路径名如下:
/system/bin/csbrislp | /system/xbin/csbrislp |
/system/bin/culpxywg | /system/xbin/culpxywg |
/system/bin/conklymt | /system/xbin/conklymt |
/system/bin/connsck | /system/xbin/connsck |
/system/bin/cksxlbay | /system/xbin/cksxlbay |
/system/bin/cufaevdd | /system/xbin/cufaevdd |
… | … |
- 执行命令“sentenforce 0”,关闭SeLinux
- 获取手机隐私数据,上传至服务器
- 访问文件/system/etc/.uuidres或/sdcard/android/data/vs/.uuidres,若该文件存在,则取出字符串。该字符串作为后面POST信息的“ID”;若不存在,则结合随机数、进程ID、日期等生成字符串写入;
图4:访问配置文件
图5:结合随机数、进程ID、日期等生成字符串
图6:.uuidres文件内容
- 访问文件/system/etc/.chlres或/sdcard/android/data/vs/.chlres,若不存在,则将字符串“cyh00011810”写入,该字符串作为访问服务器的“凭证”;
图7:.chlres文件内容
- 获取Android版本号、sdk版本号、厂商信息;
- 调用iphonesubinfo(service call iphonesubinfo num)服务,获取sim卡的信息(手机制式、DeviceId、IMEI);
图8:获取sim卡的信息
- 获取MAC地址、IP地址等网络信息
图9:获取MAC地址、IP地址等网络信息
- 获取内存使用情况
图10:获取内存使用情况
- 获取已安装应用的安装包信息
图11:获取已安装应用的安装包信息
图12:获取的用户信息
- 使用样本内置中的RSA公钥对上一步窃取的信息进行加密,并将加密的数据包发送到服务器,IP地址为91.*.180
图13:RSA公钥
图14:加密后的用户信息
wnap.****.com:8357 |
dmmu.*****.com:8357 |
vdbb.*****.com:8357 |
wiur.*****.com:8357 |
图15:POST数据包头
- 从服务器获取恶意推广应用
- 对返回的数据包进行RSA解密,得到下载应用的URL信息;
图16:接收到的HTTP数据包
图17:RSA私钥
- 发送GET包到服务器******.com 获取恶意推广应用列表;
图18:GET数据包
URL | 应用包名 |
http://xgaxp.******.com/p/chwygdt05226.zip | com.chahuo.noproblem.app |
http://xgaxp.******.com/p/ljwgdt05226.zip | com.query.support.house |
http://xgaxp.******.com/p/aabt05226.zip | com.gbicd.gehuq |
http://xgaxp.******.com/p/yjccgdt05226.zip | com.check.support.car |
http://xgaxp.******.com/p/lngbqlgh.zip.zip | com.owui.gho.xajl |
- 安装APK:从云端获取到推广的APK为ZIP包,位于/sdcard/.downF/apps路径下,文件名为“A+随机数.temp”,对其进行解密,生成APK文件;
图19:解压ZIP包
- 将APK文件写入/system/priv-app,成为系统级应用,获得更多的权限;
图20:内置应用
- 安装完成后执行命令“am startservice ”启动恶意推广应用,并以插屏、循环轮播的方式频繁弹出广告,且点击之后可下载其他更多应用软件。不但容易造成用户手机流量损失,还影响用户手机正常使用;广告类型包括美女视频、红包领取、小说网站等等。
图21:恶意推广的插屏广告
六、安全建议
360手机卫士安全专家建议,来源不明的手机软件、安装包、文件包等不要随意点击下载;手机上网时,对于不明链接、安全性未知的二维码等信息不随意点击或扫描;使用360手机卫士等手机安全软件定期查杀手机病毒,养成良好的手机使用习惯。
目前,最新版360手机急救箱已支持专杀。