注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

熊猫正正的博客

熊猫正正的天空

 
 
 

日志

 
 

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

2015-07-26 16:40:48|  分类: Android开发与逆 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在本系列的之前的课程中,我们的讨论仅限于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。

1
adb backup -f <filename><package name>


例如这样

1
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这个工具。先看下介绍:

1
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的设备上利用这种方法来改变应用程序特定的数据。

  评论这张
 
阅读(97)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017