Android测试--Drozer安装使用(Windows10)
安装
1.1 环境要求基本使用
2.1 连接
使用数据线连接手机和计算机,手机开启usb调试adb devices
运行drozer
本地电脑上调用adb执行命令:adb forward tcp:31415 tcp:31415进行端口转发
正常情况下到drozer安装路径下运行 :drozer console connect 会显示如下界面,之后即可正常运用drozer进行调试Android应用2.2 使用
ls可查看drozer所有可用模块
列出app列表run app.package.list
查看程序包信息 #com.iman.hom.woa为包名run app.package.info -a com.iman.hom.woa
Android四大基本组件分别是
Activity
Service服务
Content Provider内容提供者
BroadcastReceiver广播接收器查看该app可攻击面(即对外开放的组件)
run app.package.attacksurface
显示有一个组件可利用使用app.activity.info模块查看activity组件信息
使用app.provider.info模块查看content provider组件信息
使用app.service.info模块查看service组件信息查看利用信息(其他组件利用命令类似)
run app.activity.info -a jane.eastcom.hnperformance
显示安全登录组件没有限制
加入-i参数 可以查看更详细的信息
其他
获取所有可以访问的Uri——Content Providers(数据泄露)
命令:run scanner.provider.finduris -a 包名
检测SQL注入
命令:run scanner.provider.injection -a 包名
检测目录遍历
命令:run scanner.provider.traversal -a 包名
其他run命令介绍
$ run tools.file.size
//获取文件大小
$ run app.activity.forintent
//查找可以处理给定意图的活动
$ run app.activity.info
//获取有关导出活动的信息
$ run app.activity.start
//开始一个活动
$ run app.broadcast.info
//获取有关广播接收器的信息
$ run app.broadcast.send
//使用意图发送广播
$ run app.broadcast.sniff
//注册可以嗅探特定意图的广播接收器
$ run app.package.attacksurface
//获取包的攻击面
$ run app.package.backup
//列出使用备份API的软件包(在FLAG_ALLOW_BACKUP上返回true)
$ run app.package.debuggable
//查找可调试包
$ run app.package.info
//获取有关已安装软件包的信息
$ run app.package.launchintent
//获取包的启动意图
$ run app.package.list
//列出包
$ run app.package.manifest
//获取AndroidManifest。包的xml
$ run app.package.native
//找到嵌入在应用程序中的本机库
$ run app.package.shareduid
//查找具有共享UID的软件包
$ run app.provider.columns
//列出内容提供者中的列
$ run app.provider.delete
//从内容提供者删除
$ run app.provider.download
//从支持文件的内容提供商下载文件
$ run app.provider.finduri
//在包中查找引用的内容URI
$ run app.provider.info
//获取有关导出的内容提供商的信息
$ run app.provider.insert
//插入内容提供者
$ run app.provider.query
//查询内容提供者
$ run app.provider.read
//从支持文件的内容提供者读取
$ run app.provider.update
//更新内容提供商中的记录
$ run app.service.info
//获取有关导出服务的信息
$ run app.service.send
//向服务发送消息,并显示回复
$ run app.service.start
//启动服务
$ run app.service.stop
//停止服务
$ run auxiliary.webcontentresolver
//启动到内容提供商的Web服务界面
$ run exploit.jdwp.check
//打开@ jdwp-control,然后查看连接了哪些应用
$ run exploit.pilfer.general.apnprovider
//读取APN内容提供者
$ run exploit.pilfer.general.settingsprovider
//读取设置内容提供者
$ run information.datetime
//打印日期/时间
$ run information.deviceinfo
//获取详细的设备信息
$ run information.permissions
//获取设备上程序包使用的所有权限的列表
$ run scanner.activity.browsable
//获取所有可从Web浏览器调用的BROWSABLE活动
$ run scanner.misc.native
//查找包中包含的本机组件
$ run scanner.misc.readablefiles
//在给定的文件夹中查找世界可读的文件
$ run scanner.misc.secretcodes
//搜索可从拨号器使用的密码
$ run scanner.misc.sflagbinaries
//在给定的文件夹中查找suid / sgid二进制文件(默认为/ system)
$ run scanner.misc.writablefiles
//在给定的文件夹中查找可写入世界的文件
$ run scanner.provider.finduris
//搜索可以从我们的上下文中查询的内容提供者
$ run scanner.provider.injection
//测试内容提供程序是否存在SQL注入漏洞
$ run scanner.provider.sqltables
//查找可通过SQL注入漏洞访问的表
$ run scanner.provider.traversal
//测试内容提供者的基本目录遍历漏洞
$ run shell.exec
//执行一个Linux命令
$ run shell.send
//将ASH Shell发送到远程侦听器
$ run shell.start
//进入交互式Linux shell
$ run tools.file.download
//下载文件
$ run tools.file.md5sum
//获取文件S运行工具的md5校验和。文件。 size //获取文件大小
$ run tools.file.upload
//上传一个文件
$ run tools.setup.busybox
//安装Busybox
$ run tools.setup.minimalsu
//在设备上准备“ minimum-su”二进制安装
FAQ
adb device显示设备offline
1、 检查usb调试是否开启
2、 重启adb服务
adb kill-server
adb start-server
3、 查看SDK Manger 确保SDK已更新 需要adb 版本在1.0.31 (dos中通过adb version查看adb版本)drozer console connect连接不上
1、 如下报错
需要检查如下项目
1、 JDK是否安装
2、 环境变量是否正确配置(命令行下执行:java、javac、java -version 命令是否返回正常数据)
如果以上项目均正常的话可做如下修复:
建立名为 .drozer_config的文件,文件中添加如下内容:
[executables]
java=E:\Java\bin\java.exe
javac=E:\Java\bin\javac.exe
即java和javac的路径,保存后存放到C:\Users\XXX\ 目录下,其中XXX为当前用户名目录下,之后重新连接成功
2、 如下报错
请确认手机drozer代理是否为开启状态使用run命令显示[Errno 10053]
1、 检查手机端drozer agent是否正常开启
2、 重启drozer