前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >APP安全之Drozer工具安装与使用

APP安全之Drozer工具安装与使用

作者头像
潇湘信安
发布2024-03-11 20:12:30
1430
发布2024-03-11 20:12:30
举报
文章被收录于专栏:潇湘信安潇湘信安

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

drozer提供了很多Android平台下的渗透测试exploit供使用和分享。对于远程漏洞,drozer能够生产shellcode帮助部署drozer代理作为一个远程管理工具,最大化对设备的利用。drozer可以大大缩减Android安全评估的耗时,通过攻击测试暴露Android App的漏洞。

drozer运行在Android模拟器和真实设备上,它不需要USB调试或其他开发即可使用。drozer有很多扩展模块,可以找到进行测试以发现Android安全问题。

代码语言:javascript
复制
项目地址:https://github.com/WithSecureLabs/drozer

1. 安装jdk

安装jdk-7u80-windows-x64,设置javac环境变量,C:\Program Files\Java\jdk1.7.0_80\bin

2. 安装Python

必须安装Python2.7,drozer不支持Python3,python-2.7.15.amd64这个版本可以安装。如计算机里安装多个Python版本,在Python2.7安装完之后,可设置临时path变量,每次在执行之前,在cmd下执行set path=C: \Python27;C:\ Python27\Scripts;%path%

3. 安装drozer

必须和Python安装在同一个目录,安装完之后,drozer相关程序在C:\ Python27\Scripts目录,见下图:

4. 安装依赖库

执行drozer console connect报错,执行

代码语言:javascript
复制
pip install protobuf

继续报错,执行

代码语言:javascript
复制
python -m pip install --upgrade pip

再次执行

代码语言:javascript
复制
pip install protobuf

继续执行

代码语言:javascript
复制
drozer console connect

报错,执行

代码语言:javascript
复制
pip install pyopenssl

继续执行

代码语言:javascript
复制
drozer console connect

报错,执行

代码语言:javascript
复制
pip install twisted

继续执行

代码语言:javascript
复制
drozer console connect

执行

代码语言:javascript
复制
pip install service_identity

继续执行

代码语言:javascript
复制
drozer console connect

drozer安装完成。

5. 安装MuMu模拟器

*虚拟机无法安装模拟器

在模拟器里安装drozer-agent-2.3.4.apk,并启动;然后在模拟器adb所在目录执行以下命令:

代码语言:javascript
复制
adb_server.exe devices
adb_server.exe connect 127.0.0.1:7555
adb_server.exe devices
adb_server.exe forward tcp:31415 tcp:31415
drozer console connect

drozer执行成功后,agent会显示如下信息:

6. 解决包名乱码

7. 显示App包名

8. 测试sieve

sieve.apk是一个样本App,可供测试。

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提取用户的加密密码和他们的主密码。

d. Content Provider漏洞检测

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

e. 与Services交互

9. 其他师傅补充

执行drozer console connect命令前,确认是否py2、py3环境共存的,共存需要设置临时路径或者改drozer.bat的文件执行路径。

drozer可以用docker,超方便。

代码语言:javascript
复制
docker run -it withsecurelabs/drozer console connect --server 手机IP

10. 参考技术文档

代码语言:javascript
复制
https://www.cnblogs.com/zhaoyixiang/p/11236458.html
https://www.cnblogs.com/lsdb/p/9441813.html
https://blog.csdn.net/lmh666888/article/details/125644667
https://blog.csdn.net/weixin_43525479/article/details/125282379
https://www.secpulse.com/archives/5228.html
https://mp.weixin.qq.com/s/9O5zW3d-OKB6k1s3htH57A
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 潇湘信安 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 安装jdk
  • 2. 安装Python
  • 3. 安装drozer
  • 4. 安装依赖库
  • 5. 安装MuMu模拟器
  • 6. 解决包名乱码
  • 7. 显示App包名
  • 8. 测试sieve
  • 9. 其他师傅补充
  • 10. 参考技术文档
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档