Android测试--Drozer安装使用(Windows10)

  1. 安装
    1.1 环境要求

    • jdk1.6+
    • python2.7
    • android sdk
      1.2 安装sdk和drozer
    • 下载
      这里给一个我下载好的SDK提取码:4afr和drozer提取码:ln90链接
    • 安装
      解压sdk和drozer
      1
      进入drozer运行setup安装
      2
      配置环境变量
      3
      4
      把drozer文件夹下的agent.apk安装到手机中并运行
      5
  2. 基本使用
    2.1 连接
    使用数据线连接手机和计算机,手机开启usb调试
    adb devices
    6
    运行drozer
    本地电脑上调用adb执行命令:adb forward tcp:31415 tcp:31415进行端口转发
    正常情况下到drozer安装路径下运行 :drozer console connect 会显示如下界面,之后即可正常运用drozer进行调试Android应用
    7

    2.2 使用
    ls可查看drozer所有可用模块
    列出app列表
    run app.package.list
    11
    查看程序包信息 #com.iman.hom.woa为包名
    run app.package.info -a com.iman.hom.woa
    12

    Android四大基本组件分别是
    Activity
    Service服务
    Content Provider内容提供者
    BroadcastReceiver广播接收器

    查看该app可攻击面(即对外开放的组件)
    run app.package.attacksurface

    13
    显示有一个组件可利用

    使用app.activity.info模块查看activity组件信息
    使用app.provider.info模块查看content provider组件信息
    使用app.service.info模块查看service组件信息

    查看利用信息(其他组件利用命令类似)
    run app.activity.info -a jane.eastcom.hnperformance
    14
    显示安全登录组件没有限制
    加入-i参数 可以查看更详细的信息
    15

其他

获取所有可以访问的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

  1. 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版本)

  2. drozer console connect连接不上
    1、 如下报错
    8
    需要检查如下项目
    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为当前用户名目录下,之后重新连接成功
    9
    2、 如下报错
    10
    请确认手机drozer代理是否为开启状态

  3. 使用run命令显示[Errno 10053]
    e1
    1、 检查手机端drozer agent是否正常开启
    2、 重启drozer
    e2