zoukankan      html  css  js  c++  java
  • “Xavier”安卓木马分析:可静默收集数据并远程代码执行

    趋势科技研究发现了一款Android恶意木马——Xavier。在谷歌Play应用市场中,超过800款Android应用感染了该恶意木马,影响数百万Android用户。感染的应用范围覆盖图片编辑器,墙纸和铃声转换器等。受感染的用户绝大多数来自亚洲东南部国家,如越南、菲律宾和印度尼西亚,美国和欧洲的感染人数较少。

    对比此前恶意广告木马,Xavier的功能及特征更为复杂。首先他具备远程下载恶意代码并执行的能力。其次,它通过使用诸如字符串加密,Internet数据加密和模拟器检测等方法来保护自己不被检测到。

    Xavier窃取用户数据的行为很难被发现,它有一套自我保护机制,来躲避静态和动态的检测分析。此外,Xavier还具有下载和执行其他恶意代码的能力,使它的威胁性大大增加。

    Xavie进化史

    joymobile

    Xavier是恶意广告下载家族的成员之一,它的存在已有2年时间。第一个版本被称为joymobile,出现在2015年年初。joymobile这个版本已经具备执行远程代码的能力。

    除了收集和泄露用户信息,它还可以安装其他应用,并在设备root的情况下实现静默安装。

    它通过远程命令和C&C服务器来发送和接受信息,并对这些信息没有加密,但是对所有的常量字符串都进行了加密。

    nativemob

    第二个版本命名为nativemob,对比joymobile我们可以发现nativemob的代码重构了,并增加了一些新特新。主要是广告行为和实用程序。虽然没有静默安装,但是需要用户确认安装的程序仍然存在。

    它比第一个版本收集更多的用户信息,并通过base64编码发送这些信息到C&C服务器。

    nativemob的下一个变种出现在2016年1月左右,它缩减了字符串加密算法,加密了从远程服务器下载的代码,并添加了一些反射调用。

    紧接着在2月份,它更新了各方面的广告模块设置,并出于某种原因删除了数据加密。

    在接下来的几个月里进行了进一步更新。但是这些更新对于广告库没有进行重大更改。

    Xavier技术分析

    Xavier的变体出现在2016年9月,它的代码更加精简。第一个版本重去除了APK安装和root校验,但是加入了TEA加密算法。

    很快它添加了避免动态检测的机制,其结构如下:

    一旦加载Xavier,它将从C&C服务器hxxps://api-restlet[.]com/services/v5/得到初始化配置,并使其加密。

    服务器还对响应数据进行加密:

    解密后,我们可以看到它实际上是一个json文件:

    V代表SDK版本

    L代表SDK URL地址

    G代表SDK Sid

    S代表 SDK设置

    Au与ad配置相关

    Xavier将从hxxp://cloud[.]api-restlet[.]com/modules/lib[.]zip下载SDK并读取配置。但是,lib.zip不是一个完整的压缩包。

    在得到lib.zip压缩包之后,Xavier在压缩包里加入0x50 0x4B头,并把它命名为xavier.zip的有效文件。

    加入之前

    加入之后

    Xavier.zip包含加载和调用它的classes.dex文件。

    这个dex文件将收集用户的的设备信息,并加密传输到远程服务器hxxps://api-restlet[.]com/services/v5/rD

    如邮箱地址,设备ID,模型,操作系统版本,国家,手机制造商,SIM卡运营商,安装的应用程序等信息。

     

     

    为了躲避动态检测,Xavier运行在模拟器环境下还会隐藏恶意行为。

    它会检测设备是否包含产品名称、制造商、设备商标、设备模块、硬件名称、指纹等以下字符串。

     

    • vbox86p
    • Genymotion
    • generic/google_sdk/generic
    • generic_x86/sdk_x86/generic_x86
    • com.google.market
    • Droid4X
    • generic_x86
    • ttVM_Hdragon
    • generic/sdk/generic
    • google_sdk
    • generic
    • vbox86
    • ttVM_x86
    • MIT
    • Andy
    • window
    • unknown
    • goldfish
    • sdk_x86
    • generic_x86_64
    • phone
    • TTVM
    • sdk_google
    • Android SDK built for x86
    • sdk
    • Android SDK built for x86_64
    • direct
    • com.google
    • XavierMobile
    • TiantianVM
    • android_id
    • generic/vbox86p/vbox86p
    • com.google.vending
    • nox

     

    Xavier还通过检查它是否包含以下字符串,来隐藏扫描用户邮箱的行为:

     

    • pltest
    • @facebook.com
    • tester
    • @google.com
    • review
    • playlead
    • agotschin
    • gptest
    • rxwave 15
    • rxplay
    • admob
    • gplay
    • adsense
    • gtwave
    • rxtest
    • wear.review
    • qaplay
    • test
    • rxtester
    • playtestwave

     

    Xavier如何避免检测?

    1、对所有常量字符串进行加密,使得静态检测和动态分析更加困难

     

     

    2、它通过HTTPS进行网络传输,以防止流量被捕获,还对数据进行加密:

     

     

    3、它使用了大量反射调用方法,其中类名和方法名都进行了加密

     

     

    4、它会根据运行环境隐藏其行为。下面是谷歌播放器的示例,嵌入了一个Xavier恶意广告库:

     

     

     

    保护措施

    1、提防可疑和陌生的应用软件,即便是从官方应用市场下载的。尽量下载知名的应用软件。

    2、在下载应用程序之前,查看应用程序需要授权的权限,并了解其他用户的评论。

    3、建议在手机上安装安全软件,可以有效检测并阻止恶意软件,及时升级系统和app的版本。

     

    * 本文翻译自trendmicro,更多安全类热点资讯及知识分享,请持续关注阿里聚安全博客

     

  • 相关阅读:
    leetcode108 Convert Sorted Array to Binary Search Tree
    leetcode98 Validate Binary Search Tree
    leetcode103 Binary Tree Zigzag Level Order Traversal
    leetcode116 Populating Next Right Pointers in Each Node
    Python全栈之路Day15
    Python全栈之路Day11
    集群监控
    Python全栈之路Day10
    自动部署反向代理、web、nfs
    5.Scss的插值
  • 原文地址:https://www.cnblogs.com/alisecurity/p/7016021.html
Copyright © 2011-2022 走看看