从零开始学Android应用安全测试(Part1)

标签: 专题 终端安全 android安全 | 发表时间:2015-03-06 04:36 | 作者:鸢尾
出处:http://www.freebuf.com

在本系列文章中,利用InsecureBankv2这款含有漏洞的安卓应用,我们可以了解到有关安卓应用安全的种种概念。我们将从一个新手的角度看待每一个问题。所以,我建议新手朋友可以关注下本系列文章。

由于教程是从零开始,前面的东西不免会比较基础,老鸟请先飞过吧。

移动渗透平台搭建

在对安卓应用测试之前,我们需要搭建一个合适的移动渗透平台。

首先,我们需要下载Eclipse ADT bundle,并安装。这里我就不再过多重复造轮子的事情了。

这里面有俩个文件夹,一个叫 tools,另外一个叫做platform-tools。这俩是非常重要的,是需要加入环境变量里面的。以下命令可以用来添加路径到环境变量中

export PATH=/path/to/dir:$PATH.

将tools和platform-tools文件夹都添加到环境变量中,完成操作过后,你就可以随意的使用所有的命令了。然后检查是否工作,可以键入adb命令,你可以得到以下的输出结果。

为了保证应用能够在我们的计算机上运行,我们还需要一款趁手的模拟器。Eclipse Android Virtual Device就是一款安卓模拟器,如何进行创建虚拟设备,朋友们可以在网上搜搜。然而,对于本系列文章,我会使用另一款工具Genymotion 来创建虚拟设备。这里有许多原因,其一是处理速度比较快,其二使用Genymotion创建的虚拟设备默认是自动获取了root权限的。这也就意味着,你可以自由的安装应用,对于审计安卓应用也方便。

完成Genymotion的安装后,你需要注册一个账号(免费的)并基于你的需求创建不同模拟器。

好了,现在我们就将InsecureBankv2的源代码从github上克隆过来。

打开你创建的虚拟设备,这一步骤十分简单。

在刚才从github克隆的项目文件中,存在一个apk文件。你可以使用adb install InsecureBankv2.apk 命令来安装这个应用。

在上图中你可以看到success,这就表示这个apk文件已经成功安装了,同时你在模拟的设备中看到对应的应用图标。但是有时候你可能只是想编译这个文件而不是运行这个apk文件。这个时候你就需要打开Eclipse找到 File -> Switch Workspace,选择你创建的 Insecurebank文件夹,然后转到File -> Import并选择现有的Android代码放进工作区。

选择应用程序所在的文件夹,你可以看到Eclipse已经将应用程序放进了你的工作区。

这时候你就可以点击上端的play按钮,开始运行这个应用。在保证模拟器正常运行的情况下,选择运行安卓应用。

不出意外,这时候你就可以看到应用在模拟器中成功运行了。

同时启动后端的python服务,可以使用这个命令

python app.py –port 8888

在这个应用中填入ip地址以及端口。

现在你就可以使用默认凭证登录这个应用了。

dinesh/Dinesh@123$
jack/Jack@123$

请确保你安装了以下工具,在我们以后讨论的细节中,会用到的。

Drozer
Andbug
Introspy
dex2jar
apktool

另外,可以使用adb shell连接你的模拟器,然后看看你想要做些什么。

安卓命令合集

希望大家在空余时间多看看安卓命令[ http://developer.android.com/tools/projects/projects-cmdline.html]。

真心推荐大家多到这里了解下adb[ http://developer.android.com/tools/help/adb.html]尝试着玩转大多数命令。

下节预告

在下一篇文章中,我们将了解下InsecureBankv2项目中存在的各种漏洞,更详细的了解安卓应用的安全性。

InsecureBankv2项目地址: https://github.com/dineshshetty/Android-InsecureBankv2

Eclipse ADT bundle: https://developer.android.com/sdk/installing/index.html?pkg=adt

译者鸢尾注:此文原作者曾经完成了iOS安全专题。基于其完成度,鸢尾愿意跟着作者的步伐,一步一步的从零单排。

[参考来源 infosec,翻译/鸢尾,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)]

相关 [从零开始 android 应用] 推荐:

从零开始学Android应用安全测试(Part1)

- - FreeBuf.COM | 关注黑客与极客
在本系列文章中,利用InsecureBankv2这款含有漏洞的安卓应用,我们可以了解到有关安卓应用安全的种种概念. 我们将从一个新手的角度看待每一个问题. 所以,我建议新手朋友可以关注下本系列文章. 由于教程是从零开始,前面的东西不免会比较基础,老鸟请先飞过吧. 在对安卓应用测试之前,我们需要搭建一个合适的移动渗透平台.

GetEd2k (Android应用)

- 某牢 - eMule Fans 电骡爱好者
GetEd2k是一个Android应用程序,作者是anacletus. 此应用可以帮助你把网页中的电驴(eDonkey) 链接添加到你个人电脑的电驴客户端里,不过前提是你的客户端开启了用于远程控制的Web interface(Web服务器,网页接口,Web界面),当然,eMule(电骡), MLDonkey 和 aMule 都支持该功能,所以这三种主流电驴客户端的用户都可以使用GetEd2k.

从零开始做工作室!

- l - 果壳网 guokr.com - 果壳网
DIYer:dwj300 制作时间:1周 制作难度:★★★★☆ GEEK指数:★★★★☆. 在“被没有足够工作空间”、“找不到工具和材料”、“花了太多时间找东西”弄到抓狂以后,我们决定清理地下杂物室,做个工作间. 在施工过程中我们学到了很多,希望这些经验会对想建设或者拓展工作空间的人们有帮助.

从零开始的Spring Session(二)

- - 程序猿DD | 博客
上一篇文章介绍了一些Session和Cookie的基础知识,这篇文章开始正式介绍Spring Session是如何对传统的Session进行改造的. 官网这么介绍Spring Session:. 其具体的特性非常之多,具体的内容可以从文档中了解到,笔者做一点自己的总结,Spring Session的特性包括但不限于以下:.

Android 应用程序

- - CSDN博客推荐文章
Android 应用程序由四个模块构造而成:Activity、Intent 、Content Provider 、Service. 下面简单介绍一下如下模块的含义:. 1、Activity  "活动". 一个Activity就是单独的屏幕,每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口并对事件作出响应.

android应用框架

- - CSDN博客移动开发推荐文章
原文地址:http://developer.android.com/guide/components/fundamentals.html. android应用程序一旦装进设备,每个程序会在它自己安全的沙盒里运行. 1.android操作系统是一个多用户linux系统,每一个应用程序是一个用户. 2.默认情况下,系统会为每个app分配唯一的linux用户id(这个id只会被系统使用,并且只会被这个app知道),系统为每个app的所有文件都设置了权限,只有被分配了这个app用户ID的程序可以访问它.

从零开始学习 jQuery(十)jQueryUI常用功能实战

- zhai - 第三极 | 移动开发者
本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些许秘籍.. 使用jQueryUI完成制作网站的大部分常用功能.. 经过公司内部收集, 整理了一些经常使用javascript实现的功能.  实现这些功能的主角不是让人眼花缭乱的jQuery插件,  而是jQuery UI..

史上最详尽Shadowsocks从零开始一站式FQ教程

- - 神刀安全网
本文转载自 http://shadowsocks.blogspot.com/ 由于是谷歌家的东西,所以无法访问,遂搬运过来. 并手动过滤部分关键字,希望能长存吧. 本教程由本人( Anonymous V)原创,于2014年11月7日在 Google+首发,根据各位G友的积极反馈,历经持续2个多月的维护和更新,已成功帮助上千网友通过shadowsocks流畅翻墙,现在整理成图文混排版本发在本博客,以进一步方便大家查阅.

如果打算从零开始学编程,建议你学 Python

- -
如果你是一个编程的门外汉,想要通过学习一门编程语言了解工程师的世界,或者想学点实用的编程手艺提高自己的工作效率,我会首推 Python. 从初学编程到现在,我用过不少编程语言,大部分是浅尝辄止,基本上算是一个编程领域半途而废的专家,积累了大量初学者经验(伤感). 在我看来,一门适合零基础入门的语言,应该具备以下特性:.

Android 应用界面设计

- - 互联网的那点事...
与 iOS 相比,Android 系统界面存在各种不协调,应用界面本身缺乏统一的规范. 虽然 Android 的开放性为应用的自主发挥带来了最大的可能性,但如果系统本身能够提供标准的范例,也未必是一件坏事,毕竟许多应用并不一定需要独创的界面. 从 Android 4.0 开始,系统界面在一致性上有了许多改善,那么 Android 应用的界面应该如何设计.