当前位置:安全客 >> 知识详情

安卓Hacking Part 14:在没有root的设备上检测并导出app特定的数据

2014-12-23 11:06:02 阅读:0次 收藏 来源: 360安全播报

在本系列的之前的课程中,我们的讨论仅限于root的设备和模拟器。于是就有小哥质疑了,有本事整点不root的。ok,今天我们将来讨论如何通过备份功能检测没有root的安卓设备的内部存储。我们可以得到一个特定应用程序的备份包或者整个设备的备份。这就使我们能够分析本地设备运行时存储的数据。

前期准备:

1. 设备要开启usb调试模式

2.Adb——安装Android SDK来启用它

3.下载下面的示例app

http://yunpan.cn/cfWzgc8tY8jvY (提取码:412d)

4.下载adbextractor,我们需要用到它的一个工具包

下载地址:http://sourceforge.net/projects/adbextractor/

http://p6.qhimg.com/t0102f1c27c1fc22811.png

下载之后解压文件,我们直接在命令行下执行,如下图

http://p4.qhimg.com/t011adf6ecab6d781b9.png

下面是解压出来的文件,在本期文章中,我们只需要用到“abe.jar”

http://p6.qhimg.com/t017e73934bcd1ecd01.png

下面我们创建一个叫做“backup”的文件夹,把需要的文件都放到这里,别弄乱了。跟着我的步骤做。

http://p1.qhimg.com/t01c19846c938ca1021.png

把abe.jar放到上图的文件夹中并解压。

第一步打开我们的应用程序,插入一些数据。

http://p0.qhimg.com/t010ff341cdf8a52d51.png

我们刚才输入的数据会插到数据库里。下面让我们检查一下数据是否插进去了。

http://p6.qhimg.com/t019ad138a4a361cf41.png

从上面可以看到,我们程序包的目录下有一个叫做PWNSQLITEDATA.db的数据库文件,我们使用SQLite3命令行来查看数据库内容。

http://p9.qhimg.com/t01d6612b0b721b422e.png

Ok,万事俱备。

下面我们开始在一台未Root的设备上开始测试!

我们使用一个允许我们备份应用程序的安卓功能,我们可以使用adb来实现,首先,让我们来看看“adb backup”命令的选项。

http://p2.qhimg.com/t01d2aa61ab0755934a.png

从图上我们可以看出,我们可以备份所有系统中我们安装的app,也可以单独备份一个指定名称的app。

使用下面的命令备份指定的app。

adb backup -f <filename><package name>


例如这样

adb backup -f mybackup.ab com.androidpentesting.sqlitestorage


如下图所示

http://p5.qhimg.com/t01e959cbd16a1ca926.png

上面的命令需要用户交互,你需要点击 “backup my data”按钮。如果你愿意,你可以设置一个密码和加密备份。我这里没有加密的数据。

http://p6.qhimg.com/t01a8fd87726c9612dd.png

点击按钮后它将在我们的工作目录中创建一个新文件。

http://p3.qhimg.com/t01499384313f19b5fe.png

可以看到文件夹多出来了mybackup.ab文件。我们不能直接读取这个文件的内容,我们需要把它转换成我们能够识别的格式。下面我们就要用到abe.jar这个工具。先看下介绍:

java -jar abe.jar –help


http://p6.qhimg.com/t01679dfd8dffa37d43.png

如图所示我们可以使用abe.jar来打包或者解压缩我们的备份文件,我们使用unpack选项来解压备份文件。

http://p2.qhimg.com/t01a2f23167b8dfdb7c.png

备份文件已经被转换成了tar文件

http://p1.qhimg.com/t0189e49d52926f2758.png

使用tar -xf mybackup.tar来解压

http://p6.qhimg.com/t01e5abe39ff6399b3e.png

看一下目录的结构:

http://p7.qhimg.com/t019405a3f3d9c5a72d.png

我们可以在db目录下找到数据库。使用SQLite3来查看数据库

http://p6.qhimg.com/t0161ed0984fecc5caf.png

可以看到,我们可以找到所有与程序有关的数据,这也是DroidExplore类似的软件备份我们设备的原理。

很显然,即使设备没有root,我们也可以通过物理访问设备来获取应用程序的数据。我们也可以通过此方法改变一个应用程序的数据。如果一个应用程序将数据存储在客户端,使简单的密码或pin检查,攻击者有可能使用这种方法来绕过这些检查。在下一篇文章中,我们将讨论如何在一台没有root的设备上利用这种方法来改变应用程序特定的数据。

目录

安卓Hacking Part 1: 应用组件攻防(连载) 

安卓Hacking Part 2: Content Provider攻防(连载)

安卓Hacking Part 3:Broadcast Receivers攻防(连载) 

安卓Hacking Part 4:非预期的信息泄露(边信道信息泄露)

安卓Hacking:Part 5:使用JDB调试Java应用 

安卓Hacking Part 6:调试Android应用 

安卓 Hacking Part7:攻击WebView

安卓Hacking Part 8:Root的检测和绕过

安卓hacking Part9: 不安全的本地存储:Shared Preferences 

安卓Hacking Part 10:不安全的本地存储

安卓Hacking Part 11:使用Introspy进行黑盒测试 

安卓Hacking Part 12: 使用第三方库加固Shared Preferences 

安卓Hacking Part 13:使用Drozer进行安全测试 

安卓Hacking Part 14:在没有root的设备上检测并导出app特定的数据



本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:http://resources.infosecinstitute.com/android-hacking-security-part-14-examining-android-app-specific-data-non-rooted-devices/

参与讨论,请先 | 注册 | 匿名评论
发布
用户评论
ruchi 2017-12-19 20:03:43
回复 |  点赞

A very well-developed post with step by step guidance on Ethical Hacking. The way you explained each point with necessary details and maintained the good balance between theory and practice is really commendable.I have a dream I want to join some cybersecurity team in the country that’s why I am looking for an online course on https://infosecaddicts.com, I want to learn Offensive Security, Mobile App Security, Network Security, Web App Security, Exploit Development, etc.And also want to be a Hacker.please help me how can I be Hacker?

360U2568148016 2016-07-04 21:12:39
回复 |  点赞

strong AES encryption not allow

360U2568148016 2016-07-04 21:03:02
回复 |  点赞

unpack 的时候报错 是什么问题 ASE加密

SudoHac 2014-12-26 18:09:20
回复 |  点赞

谢谢指正!

2014-12-26 15:04:26
回复 |  点赞

没有说清楚吧,能通过备份功能导出数据的前提是,目标 app 的 FLAG_ALLOW_BACKUP为 true,不过官方现在默认值为 true:)

2014-12-26 15:04:26
回复 |  点赞

没有说清楚吧,能通过备份功能导出数据的前提是,目标 app 的 FLAG_ALLOW_BACKUP为 true,不过官方现在默认值为 true:)

查看更多