专栏首页FreeBufAndroid木马分析简介

Android木马分析简介

本文介绍基于Android的手机恶意软件,是一个基础性的介绍,给新入门的人提供一个分析和工具指引。要分析的木马是一个2013年的syssecApp.apk,这个木马的分析能对Android恶意软件有个大概了解。

基础:

1 –Android应用基础

Android是google开发基于Linux内核的开源的手机操作系统,应用程序使用JAVA语言编写并转换成了Dalvik虚拟机,而虚拟机则提供了一个抽象的真实硬件,只要和操作系统的API符合程序都可以在其上运行。应用则需要Linux的用户和组来执行,所以目前所有的恶意软件都需要获得权限。

Android应用的格式是APK,是一种包含AndroidManifest.xml的 ZIP文件,媒体类文件实际代码是classes.dex和一些其他的可选文件。XML提供Android系统的重要信息,比如用启动应用程序时需要什么权限,只有这个文件中列出的权限才提供给该应用,否则返回失败或空结果。classes.dex是Android应用程序实现的逻辑部分,是一个编译代码可由Dalvik虚拟机执行,打包成jar,从而节约移动设备上的一些空间。

2 –分析工具

2.1Dexter

Dexter可以将Android应用上传做分析,提供了包和应用元数据的介绍。包的依赖关系图显示了所有包的关系,可以快速打开列表显示所有的class和功能。

2.2Anubis

Anubis也是一个WEB服务,应用在沙箱里运行,每个样品相互独立,来分析文件和网络的活动。同时也提供一些静态分析,包括权限XML在调用过程中的变化。

2.3 APKInspector

Apkinspector提供了很多工具,APK加载后可以选择标签来执行其中的功能,带有一个Java反编译器JAD,能够反编译大多数类,但经常报错。

2.4 Dex2Jar

可将dex 文件转成 Java 类文件的工具,即使你是经验丰富的逆向工程师,也可以考虑使用。

3 – 实例分析

3.1 Anubis

Anubis的显著特点是,给出了应用所需权限的大名单:

截图上包括了应用的部分权限。INTERNET权限是常见的游戏所需,用来在线统计跟踪,开启共享功能或者广告。还有一些WAKE_LOCK、READ_PHONE_STATE用来读取手机状态,防止在游戏中锁屏。但READ_CONTACTS、 READ_HISTORY_BOOKMARKS则看起来就很奇怪,不像是一个游戏该干的事情。对127.0.0.1:53471的连接看起来也很奇怪。分析链接:http://anubis.iseclab.org/?action=result&task_id=1a6d8d21d7b0c1a04edb2c7c3422be72f&format=html

3.2 Dexter

包的依赖关系图显示共有四个。可以忽视de.rub.syssec,它只包含空类的默认构造函数。

de.rub.syssec包括了一个叫做Amazed的游戏,比较特别的是amazedactiviy的onCreate方法,设置为每隔15秒重复闹钟。

第3个class包含的事件比较多。onBoot在启动的时候就会进行闹铃,SmsReceiver和alarmReceiver则是真正的木马,在任何一个短信到达的时候SmsReceiver会检查里面是否包含有”bank”,如果是则使用abortBroadcast丢弃短信。

这意味着短信在手机上是看不到的。de.rub.syssec.neu有6个CLASS,最重要的一条是“Runner”,是实际的恶意代码。“work”调用alarmReceiver来检查设备是否连接互联网。

如果在线,则调用“steal()”收集信息,添加到XML帮助的一个伪变量里。

根据API的调用列表,会收集信息:IMSI、SIM卡序列号、姓名、设备ID、用户字典(自动补全)、联系人、通话记录、日历、浏览器搜索记录、浏览器收藏夹、发送和接收的短信、位置信息。

3.3 Emulator

Emulator证实这个APK确实有一个关于迷宫的游戏。但在输出的日志里可以发现它其实做了很多事情,并试图发送这些内容:

还有一些额外的信息包括安卓版本、IMEI、本地时间、steal()运行总量

3.3 分析用到的网站

http://anubis.iseclab.org/ http://dexter.dexlabs.org/ https://www.virustotal.com/ http://www.apk-analyzer.net/ http://www.visualthreat.com/ http://androidsandbox.net/reports.html https://hackapp.com/

游戏不仅仅是个游戏,检查你的游戏。

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2014-07-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • WordPress REST API 定制化输出

    WordPress 自4.7 版本后与时俱进推出了REST API,如此一来想象空间又扩展了许多,如今WordPress 可以完全作为后端数据驱动了。本文通过几...

    Jeff
  • android 项目中出现红色感叹号的解决方法

    【问题原因】:工程中classpath中指向的包路径错误 【解决办法】:右键项目名称 BuildPath ---> Configure Build Paht.....

    欢醉
  • 一些移动 Web 前端开发上的要点记录

    从五月份实习到现在快三个月了,这三个月的实习时段,按照leader 的要求,每天要写日总结发RTX 内部群,每周都要写周邮件群发整个部门——就这么坚持了三个月。...

    Jeff
  • Android中EditText

    1.android:hint="只能输入指定数字",文本框中显示提示信息 2.android:password="true"该文本框是一个密码框 3.andro...

    欢醉
  • Android中Button

    1.android:drawableTop="@drawable/accept"设置在按钮文本的上面绘制指定图片。可同时指定drawableLeft等其它方向 ...

    欢醉
  • Android中动态更新ListView

    在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中。 实现...

    欢醉
  • Android监听来电和去电

    要监听android打电话和接电话,只需下面2步骤 1.第一步,写一个Receiver继承自BroadcastReceiver 1 import androi...

    欢醉
  • 实例演示Android异步加载图片

    本文给大家演示异步加载图片的分析过程。让大家了解异步加载图片的好处,以及如何更新UI。 首先给出main.xml布局文件: 简单来说就是 LinearLayou...

    欢醉
  • Android LayoutInflater详解

    在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/l...

    欢醉
  • Android:StatFs类 获取系统/sdcard存储空间信息

    在存储文件时,为了保证有充足的存储空间大小,通常需要知道系统内部或者sdcard的剩余存储空间大小,这里就需要用到StatFs类。 1. 判断 SDCard 是...

    欢醉

扫码关注云+社区

领取腾讯云代金券