drozer安装使用教程(Windows)
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)的更多相关文章
- mysql的下载和安装详细教程(windows)
Windows下安装MySQL详细教程 1.安装包下载 2.安装教程 (1)配置环境变量 (2)生成data文件 (3)安装MySQL (4)启动服务 (5)登录MySQL (6)查询用户密码 ...
- MySQL下载安装详情教程(Windows)
1.下载MySQL数据库可以访问官方网站:https://www.mysql.com/ 2.点击DOWNLOADS模块下的Community模块下的MySQL Community Server进行下载 ...
- 在 Windows 上安装 Hadoop 教程(转)
在 Windows 上安装 Hadoop 教程 一见 2010.1.6 www.hadoopor.com/hadoopor@foxmail.com 1. 安装 JDK 不建议只安装 JRE,而是建议直 ...
- Python 3.6.3 官网 下载 安装 测试 入门教程 (windows)
1. 官网下载 Python 3.6.3 访问 Python 官网 https://www.python.org/ 点击 Downloads => Python 3.6.3 下载 Python ...
- TP-Shop安装步骤教程(Windows版)
TP-Shop安装步骤教程(Windows版) PS:首次发文,请多指教! 一.安装要求 1.PHP5.4以上,MYsql5.5以上. 2.需要Phpcurl,gd库.php_mysqli,php_o ...
- Oracle12c 的安装教程图解(安装系统:windows 2008R2)
Oracle12c 的安装教程图解(安装系统:windows 2008R2) 第一节 安装和下载路径 1 官方下载路径: http://www.oracle.com/cn/products/dat ...
- Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE
Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE Windows平台下安装Arduino IDE Windows操作系统下可以使用安装向导和压缩包形式安装.下面详细讲解这 ...
- Windows+Git+TortoiseGit+COPSSH安装图文教程【转】
转自:http://blog.csdn.net/aaron_luchen/article/details/10498181/ Windows+Git+TortoiseGit+COPSSH 安装图文教程 ...
- git版本控制-- Windows+Git+TortoiseGit+COPSSH安装图文教程
Windows+Git+TortoiseGit+COPSSH 安装图文教程 教程网址: http://www.liaoxuefeng.com/wiki/0013739516305929606dd183 ...
随机推荐
- 小程序之map地图上不能在覆盖层
问题:页面上有一个地图功能,地图上面有两个按钮,是需要覆盖在地图上的,在小程序编辑器中显示是没问题的,但是扫码测试后发现在手机上不显示这两个按钮 解决方法:使用cover-viwe标签包裹一下就可以了
- 如何查找CpG Islands, CpG shores等 --转载
转载自: http://blog.sciencenet.cn/blog-306699-1033567.html 在homo species物种,随着研究的深入,注释信息不断丰富 针对CpG Islan ...
- 【Cucumber】【问题集锦】
[问题一]invalid byte sequence in GBK"问题 invalid byte sequence in UTF-8"问题 参考地址:http://fantaxy ...
- 前端实现实时通讯-----ajax长连接
因为web运行模式为请求-响应,服务端无法主动发起通讯,所以通讯实时性存在各种问题,ajax轮询可以模拟及时通讯,但连接太频繁将给服务端带来很大压力,不频繁则实时性很差. 下面介绍在web上真正实现实 ...
- 分割窗口QSplitter类
概述 分割窗口QSplitter类在应用程序中经常用到,它可以灵活分割窗口的布局,经常用在类似文件资源管理器的窗口设计中 在Qt开发中,QSplitter是比较常用到的,也就是分割窗口.并且窗口分割处 ...
- Processing 与 C 相同和不同的地方
Processing 与 C Processing 语言和其他语言有很多相似之处,这是它作为一种计算机语言的特征,同时,Processing 用于艺术创作,所以也有一些专用的函数. 相同的几点: 作为 ...
- 文献导读 - Machine Learning Identifies Stemness Features Associated with Oncogenic Dedifferentiation
参考: Machine Learning Identifies Stemness Features Associated with Oncogenic Dedifferentiation 前所未有!1 ...
- Node版本管理nvm, npm
nvm(node version manger) Node版本管理 nvm是一个简单的bash script来管理多个活动的node.js版本. 安装nvm: 具体看git:https://githu ...
- android--------自定义控件 之 方法篇
前面简单的讲述了Android中自定义控件的理论和流程图,今天通过代码来详细的讲解一下其中的方法 首先先创建一个类 CircularView 继承于 View,之后实现构造方法(初始化步骤) publ ...
- Android ------ 美团的Lint代码检查实践
概述 Lint是Google提供的Android静态代码检查工具,可以扫描并发现代码中潜在的问题,提醒开发人员及早修正,提高代码质量.除了Android原生提供的几百个Lint规则,还可以开发自定义L ...