首页
社区
课程
招聘
史上最复杂的安卓木马全解析
发表于: 2016-1-18 13:26 1470

史上最复杂的安卓木马全解析

2016-1-18 13:26
1470
新闻链接:http://www.seehand.com/news/1289.html
新闻时间:2016/01/16 10:26
新闻正文:最近,一款安卓应用程序引起了分析人员的注意。只需要一瞥,我们就知道它与众不同。所有DEX文件中的字符串都被加密了,并且代码也故意弄得混乱。

    最后证实,这个文件是个多功能木马,具备下列功能:向超额收费号码发送短信;下载其他恶意软件,在被感染设备上安卓,或者通过蓝牙发送出去;在控制台远程操作指令。现在,卡巴斯基实验室产品已经检测出这一恶意程序为Backdoor.AndroidOS.Obad.a。

        软件的作者试图把代码写得尽可能复杂,以增加反恶意软件专家的破译难度。然而,很少看到移动恶意软件中有像Odad.这样隐藏得如此先进的。除此之外,完整代码的复杂性并不是这个新型木马中唯一奇怪的事情。

木马的怪异模式

      Backdoor.AndroidOS.Obad.a的制作者在流行的软件DEX2JAR中发现了一个错误,这款软件主要为分析人员用于将APK文件转换成更加方便的Java Archive (JAR)格式。黑客利用这一漏洞扰乱了Dalvik字节码向Java字节码的转换,进而使得对这一木马的统计分析变得更加复杂。

       同时,黑客也发现了安卓操作系统的一个错误,与AndroidManifest.xml文件的运行有关。这一文件存在于每个安卓应用,并用于描绘应用结构,定义启动参数等等。恶意软件修改了AndroidManifest.xml,使其不能与Google标准相符,但随着已发现漏洞的利用,它得以继续在智能手机上运行。所有这些都使得对这一 木马进行动态分析变得异常困难。

      Backdoor.AndroidOS.Obad.a的发明者同时还使用了另一个之前未被发现的安卓操作系统错误。利用这一漏洞,恶意软件可以获得拓展的设备管理员权限,即使它并不在拥有这些权限的应用清单上。其结果是,一旦获得了拓展权限,想从智能手机上删除这一恶意软件是不可能的。

      最后,Backdoor.AndroidOS.Obad.a没有任何界面,完全后台模式运行。

代码分析

      在这一恶意软件中,所有的外部方法均通过反射来唤起。所有字符串被加密,包括级别名称和方法名称。

20150629_173754.jpg

      每个级别有一个本地描述符方法,可以从本地更新的字节数组中获得加密所需的字符串。所有字符串都隐藏在这一数组中。

5acdb967-7010-4d57-acdd-6ba698b63b3b_6.jpg

      包含C&C地址的最重要的字符串要经历一个额外的加密阶段。为此,木马首先检查互联网接入是否可行,然后下载facebook.com页面。它提取页面中的某一元素,然后用作加密密钥。因此,Backdoor.AndroidOS.Obad.a仅在互联网可用时能够加密C&C地址。这一特点进一步加大了分析这一恶意软件的难度。

      一些字符串也得到额外加密。本地解密器收到译成电码的64位字符串后即对其进行破译。破以后的字符串首先利用MD5密钥通过XOR操作进行加密,然后利用UnsupportedEncodingException字符串再次进行MD5加密。为了获得MD5密钥,同一个本地解密器还将加密另一个字符串,然后将其用于支持MD5。这样一来,密钥字符(例如发送短信文本这样的功能名称)就被保护起来了。

134907479472.jpg

20150629_173840.jpg

        掌握了上述加密结果后,研究人员才能够复制这些应用的运行算法。

获得权限

      自启动时起,软件就开始试图获取设备管理员权限。

20150629_173754.jpg

      正如上述,该木马的一个特点就是一旦获得了管理员权限,恶意软件就无法被检测到:通过利用一个之前未公开的安卓漏洞,恶意软件可以获得拓展权限,但它并未名列设备管理员权限应用名单中。

20150629_173840.jpg

       研究人员已经就安卓设备管理员漏洞向Google发出了通知。

      获得拓展的设备管理员权限后,该木马可以锁定设备显示屏长达10秒。这种情况在设备连接到免费WiFi网络或激活蓝牙以后更为典型:连接一旦建立,木马可以复制其本身和其他恶意软件到附近的其他设备中。这有可能就是Backdoor.AndroidOS.Obad.a试图阻止用户发现其恶意活动的方式。

      另外,该木马还试图通过执行su id指令来获取root权限。

与主人通讯

      关于是否成功获得了超级权限的信息会被发送至C&C服务器。获得root权限可以使黑客在执行控制台远程指令时处于有利地位。

      第一次启动以后,恶意软件收集下列信息并发送至位于androfox.com的C&C服务器:

蓝牙设备的MAC地址

操作者名称

电话号码

IMEI

电话持有者的账户余额

设备管理员权限是否已获得

本地时间

      收集到的信息全部以加密JSON对象的形式发送至服务器。

20150629_173754.jpg

      每次连接建立,这些信息都被发送至当前C&C服务器。另外,该恶意软件还向主人汇报当前状态:它发送用以发送短信的溢价收费号码列表(aos参数),任务表,以及C&C服务器列表。在第一次C&C通信对话中,它发送一个空白表,一个按照上述方式加密的C&C地址清单。第一次通信对话中,木马会收到一个更新后的溢价收费号码表和一张新的C&C地址清单。

      作为回应,C&C服务器会发送另一个JSON对象,加密后可能是下图这样:

{"nextTime":1,"conf":{"key_con":"oKzDAglGINy","key_url":"3ylOp9UQwk","key_die":"ar8aW9YTX45TBeY","key_cip":"lRo6JfLq9CRNd6F7IsZTyDKKg8UGE5EICh4xjzk"}}

NextTime是指与C&C服务器的下一次连接

Conf是字符串配置

      字符串配置可鞥包括连接新的C&C服务器的指南,用于发送短信文本的号码表,新建参数任务。另外,用于流量加密的密钥(key_cip)也可能发送给Conf。

      黑客还可以使用短信控制木马。字符串配置可能还包含字符串密钥(key_con, key_url, key_die),这样木马就会寻找收到的短信,并执行相应指令。

      每个接收到的短信可在这些密钥中的任意一个存在时被分析。只要发下一个密钥,合适的指令就会被执行:

key_con: 立即建立C&C连接;

key_die: 从数据库中删除任务;

key_url: 连接一个新的C&C服务器。这一指令之后必须紧跟一个新的C&C地址。因此,被感染的设备发送一条被控制的短信甚至都不需要连接上互联网。

20150629_173840.jpg

C&C指令

      该木马从C&C获取指令,并在数据库中进行记录。这一数据库中记录的每个指令包括序列号、C&C命令的必须执行的时间,以及参数。

指令列表:

    发送短信。参数包括号码和短信文本。回复则被删除。

    PING.

    通过USSD接收账户余额。

    进入代理模式(发送指定数据至指定地址,与回复通讯)。

    连接指定地址(木马点击器)。

    从服务器下载文件并安装。

    将智能手机上安装的设备列表发送至服务器。

    发送经过C&C服务器指定的已安装应用的信息。

    向服务器发送用户通讯录数据。

    远程操作界面。执行操作台的指令,同样由黑客指定。

    向所有探测到的蓝牙设备发送文件。

      Obad.a的这一指令列表使得恶意软件可以通过蓝牙传播文件。C&C服务器将木马收到的用于下载的文件本地地址发送给被感染的设备。通过C&C指令,恶意软件扫描附近能够建立蓝牙连接的设备,并试图将下载文件发送给它们。

      尽管有这些令人印象深刻的能力,Backdoor.AndroidOS.Obad.a并没有广泛传播。经过卡巴斯基安全网络数据为期3天的观察,Obad.a的安装尝试仅比全部试图利用恶意软件感染移动设备的尝试高出不到0.15%。

      最后,研究人员补充道,比起其他安卓木马,Backdoor.AndroidOS.Obad.a看起来更接近Windows恶意软件,酒气复杂性和利用的未公开漏洞数量而言。这意味着安卓恶意软件程序的复杂性已经和其数量一样在飞速增长。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//