drozer简介及使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1 Drozer简介 (2)
2 Drozer的特点 (2)
3 Drozer的安装 (3)
3.1 硬件要求 (3)
3.2 安装准备 (3)
3.3 安装控制台 (4)
3.4 安装客户端代理 (4)
4 drozer的使用 (4)
4.1启动agent,使用drozer连接客户端agent (4)
4.2 drozer命令 (4)
4.3 测试应用程序(sieve) (5)
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的安装
3.1 硬件要求
1.一台PC(运行Windows,Linux,MacOS均可);
2.一台Android设备或者Android模拟器(Android2.1以上);
3.2 安装准备
PC上需要安装:
1.JRE或者JDK;
2.Android SDK;
3.Adb;
4.Java;
3.3 安装控制台
直接下载Windows平台下安装包直接解压安装(Linux,Mac OS平台参见软件指导书)。3.4 安装客户端代理
通过adb将agent.apk安装于被测试的android设备。(先将设备与PC连接,且PC能正确识别设备)
4 drozer的使用
4.1启动agent,使用drozer连接客户端agent
4.2 drozer命令
4.3 测试应用程序(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交互