drozer功能简介
一、drozer工具
drozer是一款针对Android系统的安全测试框架,可以分成两个部分:其一是“console”,它运行在本地计算机上;其二是“server”,它是一个安装在目标Android设备上的app,当使用console与Android设备交互时,就是把Java代码输入到运行在实际设备上的drozer代理(agent)中
【1】更快的Android安全评估
drozer可以大大缩减Android安全评估的耗时,通过攻击测试暴露Android APP的漏洞
【2】基于真机的测试
drozer运行在Android模拟器和真实设备上,它只需要USB调试即可使用
二、下载安装
【1】github地址:https://github.com/mwrlabs/drozer
【2】下载及drozer用户手册:https://labs.mwrinfosecurity.com/tools/drozer/
【3】安装完需要的依赖,最后安装drozer,MAC系统安装python.egg文件
###Note###
> MAC安装依赖过程中可能会因为pyOpenSSL造成失败,参考如下链接:
https://blog.ropnop.com/installing-drozer-on-os-x-el-capitan/
> 依赖的JDK版本必须为1.6
【4】使用adb命令,在目标设备上安装drozer Agent(apk程序)
【5】运行drozer会话
> 第一步,使用adb命令,进行端口转发
> 启动drozer agent,界面上“Embedded Server”滑块拖到“Enable”
> 连接drozer console,运行成功进入console模式,就可以使用drozer的命令和模块
三、基本功能
【1】查询已安装的包信息
> run app.package.list 列出设备中所有已安装的包
> run app.package.list -f [app名] 列出特定的app或包的名称
> run app.package.info -a [包名] 列出具体包的相关信息,包括:名称、版本、路径、UID、GID、权限列表等
> run app.package.info -p [权限标识] 根据包的权限去查找包,哪些APP拥有某一组权限
【2】确定APP的受攻击面(attack surface)
> run app.package.attacksurface [包名] 列出暴露的组件信息,以及debuggable调试和Shared UID等
【3】查询组件的信息
> run app.activity.info 列出设备中所有导出的activity
> run app.provider.info 列出设备中所有content provider的信息,包括读写权限等
> run app.service.info 列出设备中所有service的信息
> run app.broadcast.info --help 列出broadcast receiver组件可用的命令
此外,
> -h 表示help
> -a [包名] 表示查找具体包中的组件
> -f [过滤字符串] 表示根据组件名去查找
> -p [权限标识] 表示根据权限查找组件
> -u 表示查找未导出的组件
> -i 表示在输出信息中包含“intent filter”
【4】启动组件(以Activity为例)
> run app.activity.start --component [package name] [component name]
【5】从Content Provider中获取信息
> run scanner.provider.finduris -a [包名] 查找可以访问Content Provider的URI(数据泄露)
> run app.provider.query [URI] --vertical 根据可调用的URI,从content中提取信息
> run app.provider.query [URI] --selection " ' " 使用selection参数传递简单的SQL注入语句到Provider
> run app.provider.finduri [package] 列出所有的URI
> run app.provider.columns [URI] 列出provider数据结构及各列名称等信息
> run app.provider.insert [URI] 向provider插入数据
> run app.provider.read [URI] 查看某个文件
> run app.provider.download [URI] 下载文件
【6】检查Content Provider的脆弱性
> run scanner.provider.injection -a [包名] 检查是否有SQL注入
> run scanner.provider.traversal -a [包名] 检查是否存在遍历文件的漏洞
【7】drozer中所有的模块汇总,如下所示
另外,也可以编写自定义的模块加载在drozer工具中,以实现功能的扩展
四、参考资料
【1】http://blog.0kami.cn/2016/08/20/how-to-install-drozer-on-mac/
【2】《Android安全攻防实战》,电子工业出版社,第3章&第4章