作者:启明星辰ADLab

1、概述

启明星辰AdLab近期追踪到一个新出现的 Android 恶意木马样本,该恶意木马主要通过钓鱼 APP 来窃取用户银行及理财 APP 登录凭证,能够通过创建本地代理来窃取 Google 账户登录凭证,且具备远程控制感染机的能力。依据样本关联分析我们发现,该同类型的样本之前被 Mcafee 披露过(其在8月28日将该银行木马命名为:Android/MoqHao),并且还发现恶意代码背后的黑客早在2013年就开始针对韩国的手机用户进行钓鱼攻击。直到2015年,该黑客组织开始利用伪造的 Chrome 更新消息来进行传播,并且开始利用QQ空间等社交网络账户来配置 C&C 服务器地址。本次启明星辰ADLab追踪到的恶意代码样本为9月中旬的最新样本,该样本利用了百度账户来设置 C&C 服务器,不过 C&C 服务器 IP 进行了加密处理。通过对该恶意代码的分析我们发现其具有如下特点:

  1. 通过短信传播。
  2. 伪装成 Chrome 浏览器更新欺骗用户下载。
  3. 通过 BASE64 编码将恶意 dex 文件隐藏于资源目录。
  4. 创建手机代理服务的方式来窃取 Google 账户凭证。
  5. 通过百度个人账户来更新 C&C 服务器地址。目前涉及到的攻击者百度账户页面有http://www.baidu.com/p/dajiahao188384/detailhttp://www.baidu.com/p/womenhao183527/detail,解密后的 C&C 服务器地址为:111.240.228.234:8833。
  6. 利用加密的 WebSocket 协议通信。
  7. 使用了类似 RPC 的机制来实现远程控制。
  8. 替换合法金融类 APP 为钓鱼 APP,窃取登录凭证。

该样本相关信息见表1:

表1 样本相关信息

2、木马行为简介

该恶意木马伪装成 Chrome 浏览器更新包来欺骗用户下载,并且该恶意木马运行后会不断提示用户激活其设备管理员权限(见图1),一旦其设备管理员权限被激活,该恶意木马就隐藏自身的图标。这样,普通用户很难卸载掉该恶意木马,从而使该恶意木马长期驻留在受害用户的设备中。

图1 提示用户激活设备管理员权限

该样本原始包充当了类似壳的角色,真实的恶意 dex 文件被加密保存在原始包的 assets目录下,原始包在运行时解密加载其恶意 dex 文件来实现恶意攻击。解密后的 dex 文件经过了严重的混淆。我们对其深入分析后发现,恶意木马在运行时,通过 Http 请求获取攻击者提前在其百度个人账户页面配置好的加密过的 C&C 服务器地址,请求成功返回后,再对 C&C 服务器进行解密。获取到 C&C 服务器地址后,该恶意木马会使用加密的 WebSocket 协议来和 C&C 服务器通信。值得注意的是,该恶意木马和 C&C 服务器均各自实现了自己的 RPC 函数,通信双方利用这些 RPC 函数来达到数据窃取和远程控制的目的 (示意图见图2)。

图2 恶意木马网络通信图

需要关注的是,该恶意木马会遍历受害用户本机安装的 APP 信息,以确定受害用户是否安装有特定的银行类 APP。如果有的话,该恶意木马就会从 C&C 服务器下载对应的伪装银行木马,待对应的伪装银行木马下载完成后,就提示用户升级。伪装银行木马运行后,会卸载掉受害用户本机原始合法的银行 APP 来偷梁换柱。不难推测,对用户真正的钓鱼活动才刚刚开始。

另外,该恶意木马除了收集受害用户的手机硬件相关信息和手机状态信息,还会窃取受害用户的 Google 账号凭证。与常见的利用远程服务钓鱼页面不同的是,该恶意木马在受感染手机本地开启了一个 Httpserver 服务,并利用该本地服务页面完成对受害用户的 Google 账号凭证钓鱼后,再将其通过 WebSocket 协议转发到 C&C 服务器。该恶意木马的主要行为见图3:

图3 恶意木马的主要行为

3、原始包解密分析

如前所述,该恶意木马真实的恶意 dex 文件被加密保存在原始包的 assets 目录下,其内容是 Base64 后的可见字符(见图4),其原始包只是扮演了壳的角色,原始包在运行时解密加载真实的恶意 dex 文件来实现恶意攻击。我们将 bin 文件 Base64 解密或在该恶意木马运行后,从其安装包路径下的 files 文件下均可得到真实的恶意 dex 文件(见图5)。

图4 加密存放真实的恶意dex文件

图5 真实的恶意dex文件运行时解密到files目录

4、真实攻击逻辑分析

该恶意木马申请的权限如图6所示,其中涉及到的敏感权限包括短信的读写权限、通讯录读取权限、打电话权限、修改手机状态权限等。

图6 恶意木马申请的权限

4.1 注册大量广播,主要用于窃取用户手机状态信息

该恶意木马注册了大量的广播事件,主要用来窃取受害用户手机状态信息,以达到实时监控受害用户手机的目的(见图7)。

图7 恶意木马注册大量广播事件

其中,当用户手机有新的应用安装或卸载、手机电量变化、网络连接改变、屏幕唤醒或休眠等事件发生时,恶意木马就发送受害用户手机状态相关信息到 C&C 服务器。发送的手机状态相关信息包括:运营商名字、网络类型(wifi 还是移动网络)、wifi 的 mac 地址、电量百分比、wifi 信号强度、是否管理员权限、自己是否在休眠白名单中、屏幕是否唤醒、手机情景模式(见图8)。

图8 向 C&C 服务器发送手机状态相关信息

4.2 获取 C&C 服务器地址

该恶意木马利用动态页面来获取和更新 C&C 服务器地址。攻击者将加密后的 C&C 服务器地址配置在申请的百度账户个人简介中,恶意木马在运行时会通过 Http 请求获取对应的页面数据再进行解密。从图9我们可以看到,获取C&C服务器的 Http 请求串也经过了加密处理,我们对其解密后的结果为:http://www.baidu.com/p/dajiahao188384/detailhttp://www.baidu.com/p/womenhao183527/detail

图9 Http 请求的解密和拼凑

另外,通过抓包也可清楚看到该 Http 请求的内容(见图10)。

图10 Http 请求抓包结果

我们在浏览器中访问对应的 Http 请求,可以看到访问的是对应百度账户的个人页面,我们注意到攻击者的账户目前还处于在线状态,个人简介部分即为加密后的 C&C 服务器地址(见图11),我们对其解密后为:111.240.228.234:8833。

图11 攻击者注册的百度账户页面

4.3 窃取用户设备信息和状态信息

恶意木马连接 C&C 服务器成功后,会发送受害用户手机相关信息,包括:android_id、系统版本、手机版本+显示屏参数、是否root、关机状态、sim卡是否处于就绪状态、用户手机号码、IMEI、手机中账户信息(见图12、图13)。除了发送用户手机相关信息,还会再次发送用户手机的相关状态信息(见图14)。

图12 连接 C&C 服务成功后,发送用户手机信息

图13 具体发送的手机信息

图14 发送用户手机当前状态信息

图15是以上通信的日志信息。可以清楚地看到连接的 C&C 服务器地址,连接成功后,更新用户手机状态信息到 C&C 服务器。

图15 更新用户手机状态信息的日志

4.4 通过 C&C 服务器下发命令和回传任务

该恶意木马使用加密的 WebSocket 协议来和 C&C 服务器通信,恶意木马和 C&C 服务器各自实现了自己的 RPC 函数供对方调用(其中图16是恶意木马实现的 RPC 函数),通信双方利用这些RPC函数来达到数据窃取和远程控制的目的。恶意木马实现的 RPC 函数可发送短信(目标地址和内容由 C&C 服务器提供)、锁定用户手机、获取手机通讯录、发送钓鱼信息给手机联系人等(具体见表2)。

图16恶意木马实现的RPC函数

表2 该恶意木马实现的 RPC 函数

图17是该恶意木马和 C&C 服务器通信部分,恶意木马解析 C&C 服务器发送过来的网络数据,执行对应的 RPC 函数,再将函数执行结果返回给 C&C 服务器。

图17 C&C 服务器和恶意木马的通信

同时,该恶意木马也会给 C&C 服务器发送请求指令,分别为:下载指定的 apk 文件、发送钓鱼到的 Google 账户凭证、得到需要更新的包列表、得到标题等显示提示(见表3)。

表3 恶意木马发送给C&C服务器的函数请求

4.5 窃取用户 Google 账户信息

该恶意木马除了收集受害用户的手机硬件相关信息和手机状态信息,还会窃取受害用户的 Google 账户凭证。与常见的利用远程服务器钓鱼页面不同的是,该恶意木马在受感染手机本地开启了一个 Httpserver 服务,并利用该本地服务页面完成对受害用户的账户凭证钓鱼后,再将其通过加密的 WebSocket 协议转发到C&C服务器。在恶意木马筛选出 google 账户后(见图18),会弹出警告对话框,等受害用户点击确定后,恶意木马就会打开浏览器,跳转到自定义的本地钓鱼页面(见图19)。

图18 筛选Google账户

图19 弹出警告窗口

该恶意木马在本地创建 HttpServer 服务,本地 HttpServer 服务启用线程来处理钓鱼到的 Google 账户信息(见图20)。

图20 恶意木马利用本地服务来处理钓鱼到的Google账户信息

恶意木马将钓鱼到的 Google 账户凭证发送到 C&C 服务器(见图21)。

图21 恶意木马将钓鱼到的Google账户凭证信息发送到C&C服务器

4.6 下载伪装银行类 APP

该恶意木马会遍历受害用户本机安装的 APP 信息,以确定受害用户是否安装有特定的银行类 APP。如果有的话,该恶意木马就会从 C&C 服务器下载对应的银行类木马,待对应的木马下载完成后,就提示用户有新的升级。银行类木马运行后,会卸载掉受害用户本机原始合法的 APP 来偷梁换柱。显而易见,对受害用户真正的钓鱼攻击才刚刚开始。

遍历用户手机应用,检查是否有内置指定的银行类 APP,有的话,从 C&C 服务器下载对应的银行木马 APP(见图22)。

图22 遍历受害用户手机应用

如果用户手机存在指定的银行类 APP,则从 C&C 服务器下载对应的银行木马 APP(见图23)。

图23 从 C&C 服务器下载指定的银行木马 APP

表4为恶意木马内置的要伪装的银行类 APP 包名

表4 恶意木马要伪装的银行类 APP 包名

银行类恶意木马 APP 下载完成后,会弹出提示框,诱使用户更新(见图24)。

图24 诱使用户安装下载到的银行类木马

银行类恶意木马运行后,会卸载掉受害用户原来合法的银行类 APP(见图25)。

图25 下载下来的木马偷梁换柱

4.7 传播

该恶意木马通过向受害用户的通讯录联系人发送钓鱼信息来传播(见图26)。

图26 该恶意木马的传播途径

5、总结及建议

虽然该恶意木马是针对韩国用户,但也不排除后续针对其他国家实施攻击的可能。用户除了对热门的 APP 下载和更新不能大意外, 对系统自带的 APP 的更新也应保持警惕。建议用户不要轻易点击短信中的不明链接,不要安装不明来源的 APP。对申请可疑权限尤其是短信读写、打电话以及需要激活设备管理器的 APP 要特别留意,涉及到金钱的操作要格外谨慎。遇到操作异常,应当及时使用杀毒软件查杀或找专人处理。目前互联网上也充斥着形形色色的第三方 APP 下载站点,很多甚至成了恶意应用的批发集散地。用户应特别留意不要轻易地在一些下载站点下载 APP,尽量从官网下载所需 APP 应用,在不得不从第三方下载站点下载软件时,要保持高度警惕,认真甄别,防止误下恶意应用,给自己造成不必要的麻烦和损失。


启明星辰积极防御实验室(ADLab)

ADLab成立于1999年,是中国安全行业最早成立的攻防技术研究实验室之一,微软MAPP计划核心成员。截止目前,ADLab通过CVE发布Windows、Linux、Unix等操作系统安全或软件漏洞近300个,持续保持亚洲领先并确立了其在国际网络安全领域的核心地位。实验室研究方向涵盖操作系统与应用系统安全研究、移动智能终端安全研究、物联网智能设备安全研究、Web安全研究、工控系统安全研究、云安全研究。研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。


Paper 本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/407/