drozer和adb一样,又不是新出的工具,本不该出了这么久还要由我这样半懂不懂的再写篇东西了。但是还是一样每次使用都得百度和筛选半天,所以记下来算给自己看。以后看到我还写些老掉牙的东西都是这个原因,不再重复。

drozer的基本功能感觉就是通过分析AndroidManifest.xml,看四大组件中有没有可export的,如果有那么就去详细查看这些可export的组件是不是真有问题。

本教程第一大节讲安装,第二大节讲使用drozer连接手机,第三大节讲通过drozer检测app安全性。本教程主要参官方github主页说明官方文档

一、安装

1.1 电脑下载安装依赖

python2.7----drozer使用python2.7编写不支持python3.x,所以只能装python2.7,。使用minicoda版python时一直报“ImportError: No module named drozer.cli.console”,改装官方版python2.7未出现问题未深究原因。

python其他库----pip install protobuf pyOpenSSL Twisted service_identity

jdk1.7----Java是安卓的主要开发语言,应该是与手机交互时使用。jdk安装可参考链接

adb----Android Debug Bridge,一般在Android SDK安装目录下的platform-tools文件夹下就有,也可以另外下载安装。安装使用可参考链接

1.2 电脑下载安装drozer

下载链接:https://github.com/mwrlabs/drozer/releases/

选择系统相应的包,我这里选windows的msi安装包

双击下载的安装程序

drozer是python2.7写的,如果没在环境变量中配置python2.7的路径,那么就要手动指定

另外drozer不支持python3.x,所以如下图即便安装程序识别出了python3.x也要自己指定python2.7的位置

另外可能有小伙伴到这里就会感觉到drozer感觉就是python的第三方库那直接用pip安装不更省事?

第三方库是对的,pip中也可以找到drozer但实际发现使用pip安装时没有drozer.bat运行不起来,至于为什么不直接加上drozer.bat还是这两种途径有更深的区别没深究。

1.3 下载安装手机agent

使用usb线将手机连接到电脑(或开启一个模拟设备),使用adb将agent安装到手机。

agent下载地址:https://github.com/mwrlabs/drozer/releases/download/2.3.4/drozer-agent-2.3.4.apk

到手机打开启agent,如下图确保右下角按钮显示为“开启”(如果显示为关闭,在其上点击将其切换为开启即可)

二、连接

2.1 环境变量配置

首先,python需要加入到环境变量,不然在执行drozer.bat console connect时会报“'python.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。”

其次,drozer会和其他第三方python库一样安装到python的各文件夹下,其中主要执行的drozer.bat在$PYTHON_HOME\Scripts文件夹下,所以scripts为了方便也加入到环境变量。

可以直接编缉环境变量,但修改环境变量比较麻烦,而且我已安装python3.7不想影响python版本所以这里使用set path来临时修改环境变量。

我修改命令如下,修改成自己的目录。要注意最后的%path%,不然原先的path的值就被覆盖了。至于大小写,cmd不区分大小写。

set path=D:\Language\Python27;D:\Language\Python27\Scripts;%path%

2.2 切换到drozer安装目录

如果cmd的当前路径和drozer.bat如果不在同一驱动器(比如cmd当前在c盘,drozer.bat在d盘),那么虽然使用drozer.bat console connect也可以进入drozer控制台,但是执行run时会报错。

比入我这里drozer安装在D盘,在我当前路径是“C:\Users\ls”,直接进入drozer控制台。报错“unknown module: 'app.package.list'”,如下图所示:

处理这个问题,只要将cmd路径切换到drozer.bat同驱动器下即可(比如我这里要做的就是切换到D盘)。

结合网上说法,为了确保万无一失,这里直接接切换到drozer.bat所在的“D:\Language\Python27\Scripts”目录

2.3 使用drozer连接手机

有些文档说如果是真机,dorzer.bat console connect后要加上ip,ip那是网络连接通过usb连接后并不需要ip(所以,我也不懂adb forward tcp:31415 tcp:31415这句有什么用)

adb forward tcp: tcp:
drozer.bat console connect

如果报错“[Errno 10054]”那应该是手机agent处于关闭状态,请按1.3中的说明去开启。

三、使用drozer对app进行测试

官方直接给出的drozer支持命令及其命令说明列表如下

Command Description
run Executes a drozer module
list Show a list of all drozer modules that can be executed in the current session. This hides modules that you do not have suitable permissions to run.
shell Start an interactive Linux shell on the device, in the context of the Agent process.
cd Mounts a particular namespace as the root of session, to avoid having to repeatedly type the full name of a module.
clean Remove temporary files stored by drozer on the Android device.
contributors Displays a list of people who have contributed to the drozer framework and modules in use on your system.
echo Print text to the console.
exit Terminate the drozer session.
help Display help about a particular command or module.
load Load a file containing drozer commands, and execute them in sequence.
module Find and install additional drozer modules from the Internet.
permissions Display a list of the permissions granted to the drozer Agent.
set Store a value in a variable that will be passed as an environment variable to any Linux shells spawned by drozer.
unset Remove a named variable that drozer passes to any Linux shells that it spawns.

当然也可以在drozer console中直接使用help查看;然后进一步使用help command可查看各命令更具体的使用方法。

按我理解,简单来说drozer的基本用法就是:

首先,使用list查看支持哪些模块;

然后,使用help module_name,或者run module_name -h查看各module的用法;

最后,通过run module_name module_options来对app进行检测。

dorzer的使用基本流程就是以下3.1-3.6。

3.1 通过app.package.list模块获取要检测的app的包名

要检测的app可以通过手机市场安装,也可以使用adb install package_path安装这里就不赘述了。

 run app.package.list -f filter_str

3.2 使用app.package.info模块查看apk基本信息

run app.package.info -a package_name

3.3 使用app.package.attacksurface模块识别攻击面

所谓攻击面,应该就是指可export的安卓四大组件(activaty、broadcast receiver、content provider、service)

如果查看到四大组件中有可export的,就去具体看可export的组件有没有问题(后续3.4、3.5、3.6就是干这事,为什么没有receiver没深究)

run app.package.attacksurface package_name

3.4 使用app.activity.info模块查看activity组件信息

run app.activity.info -a package_name

3.5 使用app.provider.info模块查看content provider组件信息

 run app.provider.info -a package_name

3.6 使用app.service.info模块查看service组件信息

run app.service.info -a package_name

参考:

https://github.com/mwrlabs/drozer

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

https://blog.csdn.net/qq_23212697/article/details/69177654

http://www.360doc.com/content/16/0405/14/25472073_548029178.shtml

drozer安装使用教程(Windows)的更多相关文章

  1. mysql的下载和安装详细教程(windows)

    Windows下安装MySQL详细教程 1.安装包下载    2.安装教程 (1)配置环境变量 (2)生成data文件 (3)安装MySQL (4)启动服务 (5)登录MySQL (6)查询用户密码 ...

  2. MySQL下载安装详情教程(Windows)

    1.下载MySQL数据库可以访问官方网站:https://www.mysql.com/ 2.点击DOWNLOADS模块下的Community模块下的MySQL Community Server进行下载 ...

  3. 在 Windows 上安装 Hadoop 教程(转)

    在 Windows 上安装 Hadoop 教程 一见 2010.1.6 www.hadoopor.com/hadoopor@foxmail.com 1. 安装 JDK 不建议只安装 JRE,而是建议直 ...

  4. Python 3.6.3 官网 下载 安装 测试 入门教程 (windows)

    1. 官网下载 Python 3.6.3 访问 Python 官网 https://www.python.org/ 点击 Downloads => Python 3.6.3 下载 Python ...

  5. TP-Shop安装步骤教程(Windows版)

    TP-Shop安装步骤教程(Windows版) PS:首次发文,请多指教! 一.安装要求 1.PHP5.4以上,MYsql5.5以上. 2.需要Phpcurl,gd库.php_mysqli,php_o ...

  6. Oracle12c 的安装教程图解(安装系统:windows 2008R2)

    Oracle12c 的安装教程图解(安装系统:windows 2008R2) 第一节 安装和下载路径 1   官方下载路径: http://www.oracle.com/cn/products/dat ...

  7. Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE

    Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE Windows平台下安装Arduino IDE Windows操作系统下可以使用安装向导和压缩包形式安装.下面详细讲解这 ...

  8. Windows+Git+TortoiseGit+COPSSH安装图文教程【转】

    转自:http://blog.csdn.net/aaron_luchen/article/details/10498181/ Windows+Git+TortoiseGit+COPSSH 安装图文教程 ...

  9. git版本控制-- Windows+Git+TortoiseGit+COPSSH安装图文教程

    Windows+Git+TortoiseGit+COPSSH 安装图文教程 教程网址: http://www.liaoxuefeng.com/wiki/0013739516305929606dd183 ...

随机推荐

  1. rostopic demo

    发布者 #!/usr/bin/env python2. # -*- coding: utf- -*- import rospy from hdw_driver.msg import update_fi ...

  2. socket之基础

    链接https://www.cnblogs.com/clschao/articles/9593164.html

  3. 关于python的基础知识

    一,编程语言的类型: 1.编译型 2.解释型 3.静态语言 4.动态语言 5.强类型定义语言 6.弱类型定义语言 编译型vs解释型 编译型: 优点:编译器一般会有预编译的过程对代码进行优化.因为编译只 ...

  4. include

    1. 自己写的文件都用:include "....." 2. 如果A类include了B,那么在主函数中,只用include A类,就可以使用B类了,但是此时不能再include ...

  5. nRF52832的SAADC

    SAADC部分思维导图 1ADC原理 1.1主要特点 1)8/10/12分辨率,使用过采样可达到14位分辨率 2)多达8个通道 单端输入时使用1个通道,2个通道可组成差分输入 单端和差分输入时均可配置 ...

  6. ACM-ICPC 2018 沈阳赛区网络预赛 J Ka Chang

    Ka Chang 思路: dfs序+树状数组+分块 先dfs处理好每个节点的时间戳 对于每一层,如果这一层的节点数小于sqrt(n),那么直接按照时间戳在树状数组上更新 如果这一层节点个数大于sqrt ...

  7. [jQuery] 判断复选框checkbox是否选中checked

    返回值是true/false method 1: $("#register").click(function(){ if($("#accept").get(0) ...

  8. Using Option Files

    Most MySQL programs can read startup option files(sometimes called configuration files). Option file ...

  9. Seurat | 单细胞分析工具

    Seurat是一个老牌的单细胞分析工具了(satija的力作),我之前测试过,但是没怎么用. 最近发现这个工具又publish在了NBT上,所以很有必要看一下这篇文章. Integrating sin ...

  10. 20165327 学习基础和C语言基础调查

    学习基础和C语言基础调查 一.关于技能 1. 你有什么技能比大多人(超过90%以上)更好? 根据数据来看,应该是短跑(几次测速50米平均时间6.5s),上学期的体测中短跑这项成绩在班上排前面,我们这个 ...