drozer简介及使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

d r o z

e r简介及使用 Prepared on 24 November 2020

目录

1 Drozer简介

drozer是一款针对Android系统的安全测试框架。Drozer可以通过与Dalivik VM,其它应用程序的IPC端点以及底层操作系统的交互,避免正处于开发阶段,或者部署于你的组织的android应用程序和设备暴露出不可接受的安全风险。

drozer提供了很多Android平台下的渗透测试exploit供你使用和分享。对于远程漏洞,drozer能够生产shellcode帮助你部署drozer代理作为一个远程管理工具,最大化对设备的利用。

更快的Android安全评估

drozer可以大大缩减Android安全评估的耗时,通过攻击测试暴露Android APP的漏洞。

基于真机的测试

drozer运行在Android模拟器和真实设备上,它不需要USB调试或其他开发即可使用。

自动化和扩展

drozer有很多扩展模块,你可以找到他们进行测试以发现Android安全问题。

2 Drozer的特点

3 Drozer的安装

硬件要求

1.一台PC(运行Windows,Linux,MacOS均可);

2.一台Android设备或者Android模拟器(以上);

安装准备

PC上需要安装:

1.JRE或者JDK;

2.Android SDK;

3.Adb;

4.Java;

安装控制台

直接下载Windows平台下安装包直接解压安装(Linux,Mac OS平台参见软件指导书)。

安装客户端代理

通过adb将安装于被测试的android设备。(先将设备与PC连接,且PC能正确识别设备)

4 drozer的使用

启动agent,使用drozer连接客户端agent

drozer命令

测试应用程序(sieve)

1.找出应用程序

2.列出应用程序基本信息

此处列出信息包括应用程序版本,应用程序数据存储路径,应用程序安装路径,相关权限等;

3.确定攻击面

此处显示了一些潜在的攻击方向,这个应用程序输出了一些activities,content providers 和services。我们注意到服务是可调式的,这意味着我们可以将调试器附加到进程上,进行逐步调试。

4.启动activities

我们可以通过特定的命令深入这个攻击面。例如,我们可以查看任何一个activities的详细信息。

此处,PWlist很特别。由于这个activity被输出并且不需要任何权限,我们可以使用drozer启动它:

此处在后台制定了一个合适的意图,并且通过‘startActivity’call将其传递给了系统。

可以确定,我们已经成功绕过了授权并且查看到了用户凭证列表。

5.从Contend Provider读取信息

可以确定,这两个content provider都不需要任何特殊的权限才能和它们交互,除了DBContentProvider的/keys路径。

a.基于数据库的Content Provider(数据泄露)

很容易可以猜测出,名为DBContentProvider的Content Provider必然存在某种形式的数据库。然而,由于不知道Content Provider是如何组织的,我们还需要花一番功夫去提取信息。

我们可以重建部分内容URIS,以进入Content Provider

drozer提供了一个扫描模块,其中包含了多种猜路径的方式,并且可以将可进入的内容URIs显示出来:

此时,我们可以使用其它的drozer模块从这些内容URIs中提取信息,甚至更改数据库中的数据。

b.基于数据库的Content Provider(SQL注入)

通过操纵传递给Content Provider的投影或选择字段,很容易测试程序是否存在SQL注入漏洞:

Android返回一段冗长的错误信息,显示它视图执行的整个查询。我们完全可以利用这个漏洞列出数据库中的所有表:

或者查询其它受保护的表:

c.基于文件系统的Content Provider

由于我们可以合理的假设FileBackupProvider是一个基于文件系统的content provider,并且路径组件代表我们想要打开的文件位置,我们可以容易的猜测到它的content URIs并且使用drozer的模块去读取这个文件:

前面我们已经知道了应用程序数据库所在的路径,由此我们可以获得更多的信息:

此处将应用程序的数据库从设备拷贝到了本地机器上,现在我们可以通过SQLite提取用户的加密密码和他们的主密码。

6.Content Provider漏洞检测

drozer提供模块自动检测这些简单的漏洞案例:

7.与Services交互

相关文档
最新文档