编者按:此前我们曾经就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
流程概览
恶意样本的执行流程大概如下:
内存解密新 dex
Android 应用程序必须在 AndroidManifest.xml 文件中声明其使用的服务、广播接收器和活动组件才能使用它们。在反编译 Cerberus 恶意样本中很明显能看到其使用的服务、广播接收器和活动等组件并不在主 dex 文件中,所以这里基本可以判断其核心 dex 文件是在内存中动态解密的。
通过在内存搜索匹配 dex 文件特征并转储内存中解密后的 dex 获取木马的核心代码。
地区白名单
恶意样本在解密释放新的 dex 文件后判断当前感染者所在国是否在白名单中,如果在白名单中则不执行恶意行为。
白名单国家名单有:乌克兰、俄罗斯、白俄罗斯、塔吉克斯坦、乌兹别克斯坦、土库曼斯坦、阿塞拜疆、亚美尼亚、哈萨克斯坦、吉尔吉斯斯坦、摩尔多瓦等。
隐藏图标
如果感染者不在白名单国家则恶意软件将进一步执行,其通过禁用入口组件来实现隐藏图标使其在手机桌面上不可见来规避感染者卸载恶意应用。
定时触发保活广播
恶意软件通过在清单文件中注册高频的系统广播事件以及定时让系统时钟发送自身广播事件实现了一个简单的保活机制使其能持续的活动在系统中。
在保活广播接收器组件中,实现了一个简单的计步器来触发木马与 C2 服务器的通信。
计步数量达到阀值后,启动 HBOxMrf 木马服务拉取 C2 服务器的攻击命令,C&C 服务器地址为:http://94.156.77.32/gate.php 目前服务已经无法正常访问。
客户端与 C2 服务器交互流程如下:
1.首先拉取 C2 服务器下发的攻击命令。
2.如果响应命令为 ||no|| 则注册到 C2 服务器成为肉鸡设备
3.如果命令包含 ||youNeedMoreResources|| 则下载 payload 并保存到 data/data/包名/apk/system.apk 文件中。
4.更新攻击命令到 payload 等待完成攻击。
Cerberus 木马除了定时触发保活广播,还通过将自己加入电池优化白名单中来增强持续在系统中执行恶意活动的可能。
保活广播接收器同时也在接收短信消息类型的系统广播,当收到此类型广播时则读取出短信内容和发信人并保存到配置文件中,为后续执行恶意活动窃取短信消息做准备。
Cerberus 木马除了通过隐藏图标的方式防止感染者卸载自身外,还通过激活设备管理员权限来防止感染者卸载自身,同时也为了防止其他安全软件查杀卸载 Cerberus 木马。
启动后台服务
Cerberus 木马的所有敏感操作都严重依赖于无障碍服务的启用,其通过循环拉起 “启用无障碍服务界面” 来诱导感染者对其进行无障碍服务授权。
请求窃取短信消息和联系人所需的权限。
根据 lockDevice 标记执行设备锁操作。
无障碍服务
无障碍服务启用后通过监控界面元素,模拟点击界面授权按钮来完成权限的自我授权和设备管理员的激活操作。同时监控界面活动是否正在进行安全扫描、是否正在卸载恶意软件来避免木马被查杀和卸载。包括监控界面是否打开目标活动,将其通知给 payload 完成界面劫持攻击操作。
在无障碍服务中模拟点击激活按钮,完成激活设备管理员防止被用户卸载,也为后续锁定设备提供权限支撑。
监控界面是否在 Google Play 保护机制扫描界面,如果是则发送回退事件防止被查杀。
监控当前前台活动发送到 payload 执行相关攻击操作。
木马传播机制
Cerberus 木马的作者曾在 Twitter 上表明,其传播采用钓鱼网站以 Flash Player 的形式进行传播来诱导用户下载安装恶意木马。建议用户在网站下载应用时应特别注意网站的真实性和安全性避免被钓鱼或劫持攻击。
总结
Cerberus 恶意木马通过字符串混淆、执行流混淆、动态加载代码、动态解密字符串和实现了一个简单的计步器机制来对抗安全人员的分析工作。同时利用了 Android 无障碍服务的屏幕监控功能,通过监控手机屏幕内容的改变事件,模拟点击危险权限授权按钮进行自我授权、监控用户的安全扫描和卸载行为进行自我保护以及监控前台应用活动界面完成对目标的劫持攻击。
对于本次分析遗憾的是由于 C2 服务器的关闭导致无法获取到核心的 payload 代码和相关恶意指令,从而无法进行更加全面的分析木马的攻击机制。但 payload 想要完成攻击终究还是依赖于无障碍服务的启用,我相信 Cerberus 木马家族的新变种也会依赖于该功能,所以建议在日常使用 Android 设备时应谨慎启用设置中的无障碍服务开关。
Cerberus 仍是目前较为活跃的 Android 平台新型木马,其作者通过租赁的方式进行盈利,同时在黑市和 Twitter 上宣传木马内容从而吸引恶意活动参与者购买此木马。
此类木马危害极大,普通用户在下载相关软件时请首先确认网站的真实性,确保软件来源的可靠性防止被钓鱼攻击下载到此类恶意软件。
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:全球领先的区块链安全企业,专注区块链安全,与友商、开发者、投资者一同打造安全、便捷的区块链生态
评论0条