Android 恶意代码逆向分析研究 您所在的位置:网站首页 java逆向 Android 恶意代码逆向分析研究

Android 恶意代码逆向分析研究

#Android 恶意代码逆向分析研究 | 来源: 网络整理| 查看: 265

因此,对木马案件的分析研究显得极为重要。首先是使 执法人员注重对此类案件信息资源的收集进而发现线索、串 并案件、将所有相关信息线索移交相关单位,为彻底摧毁木 马产业链奠定基础。然后通过对木马本身的分析,从中获得 犯罪分子留下的网络痕迹并追踪拓展,找出犯罪事实和案件 线索,为落地侦查、到点抓人确定方向。更为重要的是通过 分析来固定证据,通过分析的思路进行追溯进而形成完整的 电子证据链闭环,为对犯罪嫌疑人的追责提供证据基础。

2 短信拦截马分析

2.1 短信拦截马介绍

短信拦截马是安卓恶意木马的一种,它控制拦截用户手 机中收到的短信,让用户无法实时收到短信,并将用户手机 中的短信内容发送到攻击者的手机和邮箱中,随后将发送的 短信删除。一般攻击者通过冒充熟人发送相册视频、交警发 送违章短信、朋友发送请柬等方式发送短信,如:您有一条 罚单详情信息(木马链接) 。短信拦截马的危害首先就是窃

取个人隐私;其次是通过拦截支付验证码盗取用户手机绑定 的网络支付平台和银行卡的资金,如:通过支付宝的忘记密 码功能, 再拦截修改短信的验证码最终达到网络盗刷的目的。 目前只要银行和支付公司不改变短信验证这个步骤,短信拦 截马绝对不会消失! [4]

2.2 案例分析

2016 年 9 月中旬,某高校许多老师都收到一同事发来的 短信“这是邀请你的请柬, 请查阅……( 链接 )”。不少人点 击后都中了木马病毒。事情发生后, 相关部门在调查过程中, 通过提取 APK 文件, 初步分析后确定该 APK 为短信拦截木马, 其对应的 D5 校验值:24E679AB191A03D9DB1D1479E5B3F2DD; SHA:515922E1354BF6F81C03450F6EE4226B150B5FCB。

由于 Android 手机木马病毒程序是以 APK 文件形式存在 的,APK 是基于 Java 开发的,Java 的优势之一就是其反编 译要比其他高级语言容易实现, 字节代码可轻松进行反编译。 [5] 在 JAVA 环 境 中 可 以 用 apktool、DoAPK、apkmanager、 Dex2jar 和 jdgui 等工具将 APK 文件反编译,生成应用程序 的 XML 配置、Java 源代码和图片、语言资源等文件。其中 classes.dex 和 AndroidManifest.xml 是侦查破案工作中分 析的重点。Android Manifest.xml 是程序全局配置文件,描 述应用的名字、版本、权限、引用库文件等信息,;class- es.dex 是 Dalvik 字节码,包含了这个 apk 的全部代码。

因此,按照如下步骤进行分析:首先,利用 Apktool 一 类的工具进行反编译,获知 APK 架构并重点对反编译出的 AndroidManifest.xml 进行阅读分析;其次,使用工具 dex- 2jar 反编译 APK 文件, 并配合相关解析工具将其转换为 Java 源代码进行阅读和理解,从而进行静态分析;对于静态分析 会存在困难的复杂加密木马,可以采用利用虚拟机运行的方 法进行动态抓包分析。

最终通过这些方法来了解木马的读取短信、监控短信收 发、读取联系人、后台发送邮件等恶意操作;掌握隐私信息 发送的网络通信地址,即木马操控者的接收手机号、邮箱地 址等;分析研判梳理出网络信息流的走向。进而为执法机关 受理的安卓恶意代码的网络犯罪案件提取线索和侦查取证的 技术支持。

3 静态分析策略

静态分析,简单来讲就是通过反编译工具破解出木马的 架构和源代码,通过对源代码的阅读分析得到关键信息,对 于短信拦截马来说,重点是得到木马操控者的接收手机号和 邮箱地址及其他信息。

3.1 搭建 Android 逆向分析环境

在进行静态分析前,需要安装 Java 开发包(JDK)。因 为 Java 是 Android 系统的基础语言, 未安装 JDK 程序将无法 运行, 以 Windows 操作系统为例, 可以从 Oracle 公司的下载 网页上获取相关的 JDK 的下载资源,下载 URL:http://www. oracle.com/technetwork/java/javase/downloads/index. html。

3.2 使用 Apktool 反编译 APK 文件

对于安卓安全问题专家来说,AndroidManifest.xml 一 定是最重要的信息源。Manifest 中含有该 APK 能够获取的权 限以及各个部门的组件的全部信息。对于短信拦截马来说, 一般只需要通过查看权限信息就能大致判断这个 APK 是否为 恶意木马。接下来就以上文中所述的’请柬’木马为例来说 明如何使用 Apktool 来进行静态分析。

首先使用同一路径存放将木马样本与 Apktool 工具,利 用控制台以“apktool d d:\ 文件夹名 \ 木马名 .apk”命令 进行反编译。具体的执行过程如图 1 所示。

在大多数情况下,一个 APK 拥有许多过大的权限,就能 大致被判定为恶意木马。在该“请柬”木马中这些权限主要有:

android.permission.RECEIVE_BOOT_COMPLETED // 允 许程序开机自动运行

android.permission.READ_CONTACTS // 允许应用访 问联系人通讯录信息

android.permission.READ_PHONE_STATE // 访 问 电 话状态

android.permission.READ_SMS // 允许程序读取短 信息

android.permission.RECEIVE_SMS // 接收短信

android.permission.WRITE_SMS // 允许程序写短信 android.permission.SEND_SMS // 发送短信

android.permission.ACCESS_WIFI_STATE // 允许程 序访问 Wi-Fi 网络状态信息

3.3 使用 dex2jar 反编译 APK 源码配合 jd-gui 阅读分析

由于 Apktool 反编译出的 smali 代码无法直接查看,可 使用反编译工具 dex2jar。具体操作是:将 apk 文件修改后 缀为 zip,解压缩后,用 dex2jar 将 classes.dex 文件转换 为 jar 文件, 这样就完成了反编译工作。再使用 jd-gui 工具 打开 classes—dex2jar.jar 就可以阅读代码。具体代码如图 4。

最后是是代码的阅读分析工作。实战中很少有简单木马, 大多数短信拦截马都是容量大、结构复杂,并且进行混淆, 即将原本的类名、包名这些有意义的 java 元素名替换成为一 些如 a、b、c、d 等无关联、无意义的名称。因此, 经过视图 混淆后增加了分析难度。

对此可以采用分析主函数相结合的方法来解决。启动类 为 MainActivity, 主 Activity 从 AndroidManifest 文 件 中 的 ”android.intent.action.main” 获 得, 在 MainActivi- tiy 重点分析 oncreate()。oncreate 代码如图 5 所示。

从启动类向下逐次分析能很好地掌握木马的结构和功

能。从上图代码中可以了解该‘请柬’木马也如大多数短信 拦截马一样, 首先通过调用了 main 函数中的其他类, 实现了 优先启动、图标隐藏;接下来再调用“后门”函数(图 4 中 的 h 函数)来进行窃取隐私的恶意行为。通过对 h 函数的分 析可得到:

{h.a(((Context)this));// 设 置 接 收 手 机 号: 13050***732

h.b(((Context)this));// 设置发送邮箱地 址:z*9@ x**wz.com

h.c(((Context)this));// 设置接收邮箱地 址:z*9@ x**wz.com

h.d(((Context)this));// 设置邮箱密码:la**88;

h.e(((Context)this));// 设置到期时间:2025-12-18 23:00:00

}

通过经过分析还发现该木马具有防止卸载的对抗设置(图 4 中的 a 函数) 。调用的该类运行后可以隐式开启激活设备 管理器,如果激活这个分支就不会执行,如果没有激活就会 一直弹出激活窗口,即使关掉了也会再打开。正常情况下只 有激活才能退出那个窗口,而且以“提高权限获取保护”的 名义添加设备管理器,可以防止程序被卸载,由于该方法是 卸载无法进行,所以即使受害者发现该木马后也无法用常规 方法清除。

oncreate()分析完成后,整个 APK 的架构以及所需的 关键信息也已经得到:该“请柬”短信拦截马会将窃取到的 通讯录信息和短信息内容等隐私发送至手机 13050***732 和 邮箱 z*9@x**wz.com 中。

4 动态抓包

当前很大一部分的短信拦截木马APK都如该‘请柬’木马, 仅仅进行了代码混淆;但仍有相当多的木马 APK 进行了加固 加壳,并对代码中具有木马所有者邮箱、手机号码等关键信 息进行诸如 AES 加密等加密,这些对抗技术极大的增加了分 析难度。动态分析的方法弥补了静态分析的这些不足。本文 采用安卓模拟器 + 抓包工具的方法进行动态分析。

在静态分析已经搭建好的环境基础之上,要进行动 态分析,还需要安装相应的模拟器和抓包工具,模拟器和 抓包工具可供选择的种类有很多,本文采用抓包工具为 Wireshark,模拟器为 AndroidAVD。

短信拦截马是通过 smtp 协议发送相应窃取的邮件, 因此 可以在 Wireshark 设置过滤器过滤条件为‘tcp.port==25’ 来过滤到 25 端口的数据包数据, 来拦截到短信拦截马回传的 数据包。该短信拦截马运行时所发送的数据包如图 5。

利用 Wireshark 所拦截到的数据包都是经过 编 码的, 通过 转码, 最终可以获得木马所有者的邮箱地 址、手机号码等关键信息。

通过对这个名为‘请柬’的木马的分析,得到以下关键 信息:这是一个以窃取隐私为主要目的的未加壳的短信拦截 木马,主要恶意行为是窃取通讯录和短信等隐私;该木马操 控者的接收手机号为:13050***732, 发送和接收邮箱地址为: z*9@x**wz.com,邮箱密码为:la**88;该木马的伪装和生存 能力较强;木马设置了使用期限,推测是用于销售。

至此,该‘请柬’短信拦截马的基本信息已然获知,也 有了初步线索和并以该号码和邮箱为工作方向展开侦查。通 过其他执法部门的配合联动,围绕信息流、资金流、人员流 开展调查取证。最终成功锁定了犯罪嫌疑人。

5 总结

虽然该类木马危害性很大,但仍需要用户点击后才能运 作,因此公安机关需要大力宣传,加强群众对手机安全的认 知度,让群众增强自我防范意识,不随点击短信中的链接, 懂得辨识不法分子的各类伪装。如果短信状态异常或话费、 流量突然增多,很有可能已经中了木马。此时要及时冻结手 机上绑定的各类支付工具和银行卡;如果已经造成金钱损失 的要及时报警,切不可盲目刷机给公安机关的侦查取证带来 灾难性的后果。

公安部门要注重对相关木马案件的信息研判,尤其是对 木马样本本身的深度分析,网安部门重点负责对犯罪分子留 下的网络痕迹追踪拓展,找出犯罪事实和案件线索,为落地 侦查、定点抓人确定方向。同时对这类木马案件不能按照传 统的案件侦破方法,单一打击某一个环节,要追溯源头、深挖到底, 做好信息搜集工作做好打击一批人、发现一批线索、 再把线索移交到相关单位,再打击一批人、发掘一批线索的 准备,让案件侦办形成良性循环,彻底摧毁短信拦截马形成 的黑色产业链。返回搜狐,查看更多



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有