『Android』Android Cerberus 恶意样本分析


编者按:此前我们曾经就Android Cerberus恶意木马翻译整理了一些相关技术资料 , 与此同时 , 北京链安的安全技术人员对该木马的样本进行了专业和细致的分析 , 完成了一篇详尽的技术文章 , 非常适合安卓客户端开发者、安全技术人员阅读了解 。
本文首发于FreeBuf , FreeBuf是国内领先的互联网安全新媒体 , 同时也是爱好者们交流与分享安全技术的社区 , 其投稿类文章均需要经过对应领域专家的审稿认可后方可通过 。 本文在FreeBuf投稿后 , 经过了其指定专业人员的审稿 , 最终得以发布也体现了本文的技术含量和价值 , 希望对业内人士有所帮助 。
本文在FreeBuf的链接请点击“阅读原文”
Android Cerberus 恶意样本分析 恶意样本特征 流程概览 内存解密新 dex 地区白名单 隐藏图标 定时触发保活广播 计步机制触发与 C2 服务器通信 更新攻击命令 忽略电池优化 窃听短信消息 激活设备管理员 启动后台服务 诱导启用无障碍服务 请求窃听短信所需的权限 启动设备锁 更新辅助服务状态到 payload 无障碍服务 木马传播机制 总结 参考文章
Android Cerberus 恶意样本分析
前段时间网上流传 Android 平台 Cerberus 木马家族出现了新的变种 , 在网上找了一番没有找到新变种的木马样本反而找到了 2019 年 6 月披露的一批样本 , 这里挑选了其中一个样本深入的分析下看看 Cerberus 木马的工作机制 。
Cerberus 木马的详细介绍可以阅读之前发的文章:https://mp.weixin.qq.com/s/UewBO4RgTlh9vBKzqYXEcQ
恶意样本特征样本名称:Flash Player应用包名:com.uxlgtsvfdc.zipvwntdy
SHA-256:728a6ea44aab94a2d0ebbccbf0c1b4a93fbd9efa8813c19a88d368d6a46b4f4f
流程概览恶意样本的执行流程大概如下:
『Android』Android Cerberus 恶意样本分析
本文插图
内存解密新 dexAndroid 应用程序必须在 AndroidManifest.xml 文件中声明其使用的服务、广播接收器和活动组件才能使用它们 。 在反编译 Cerberus 恶意样本中很明显能看到其使用的服务、广播接收器和活动等组件并不在主 dex 文件中 , 所以这里基本可以判断其核心 dex 文件是在内存中动态解密的 。
『Android』Android Cerberus 恶意样本分析
本文插图
通过在内存搜索匹配 dex 文件特征并转储内存中解密后的 dex 获取木马的核心代码 。
『Android』Android Cerberus 恶意样本分析
本文插图
地区白名单恶意样本在解密释放新的 dex 文件后判断当前感染者所在国是否在白名单中 , 如果在白名单中则不执行恶意行为 。 白名单国家名单有:乌克兰、俄罗斯、白俄罗斯、塔吉克斯坦、乌兹别克斯坦、土库曼斯坦、阿塞拜疆、亚美尼亚、哈萨克斯坦、吉尔吉斯斯坦、摩尔多瓦等 。
『Android』Android Cerberus 恶意样本分析
本文插图
『Android』Android Cerberus 恶意样本分析
本文插图
隐藏图标如果感染者不在白名单国家则恶意软件将进一步执行 , 其通过禁用入口组件来实现隐藏图标使其在手机桌面上不可见来规避感染者卸载恶意应用 。 定时触发保活广播恶意软件通过在清单文件中注册高频的系统广播事件以及定时让系统时钟发送自身广播事件实现了一个简单的保活机制使其能持续的活动在系统中 。
『Android』Android Cerberus 恶意样本分析
本文插图
『Android』Android Cerberus 恶意样本分析