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 ...
随机推荐
- NPOI 导入Excel和读取Excel
1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 ...
- progressBar显示百分比
this.lab_AllFiles.Text = progressBarAllFile.Value * 100 / progressBarAllFile.Maximum + "%" ...
- RN 数据持久化存储服务API
一些数据信息需要存储在手机内存中,比如用户的登录名密码 token啥的,所以这就需要了来存这些信息 在RN中 采用了AsyncStorage是一个简单的.异步的.持久化的Key-Value存储系统,它 ...
- 使用MVCPager做AJAX分页所需要注意的地方
1.版本问题,推荐使用2.0以上,对ajax支持才比较的好了 2.当需要使用页索引输入或下拉框以及使用Ajax分页模式时,必须用Html.RegisterMvcPagerScriptResource方 ...
- P2002 消息扩散
其实这道题蛮水的 思路: 根据题意,他说有环,自然想到要用tarjan,后面就很简单了: 缩完点之后重新建图,开一个inin数组表示该点的入度是多少(psps:该点表示缩完点之后的大点): 最后统计一 ...
- CSS3实现鼠标移动到图片上图片变大(缓慢变大,有过渡效果,放大的过程是有动画过渡的,这个过渡的时间可以自定义)
转载自:http://blog.csdn.net/u014175572/article/details/51535768 CSS3的transform:scale()可以实现按比例放大或者缩小功能. ...
- Centos7:查看某个端口被哪个进程占用
查看端口被哪个进程使用的命令 netstat -lnp | grep 参考: https://blog.csdn.net/u010886217/article/details/83626236 htt ...
- 如何在Vue项目中使用vw实现移动端适配(转)
有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flexible实现手淘H5页面的终端适配>提出了Flexible的布局方案,随着viewport单位越来越 ...
- 学习笔记3—matlab中load特殊用法
1.在matlab中 ,infro.mat中存有很多子矩阵(比如:mean_FA.mat, mean_e1.mat和 mean_e2.mat),调出某一个矩阵时,命令行为:load([path,'\' ...
- centos如何查看linux内核,版本号
[root@localhost ~]# uname -a Linux localhost.localdomain -.el7.x86_64 # SMP Thu Nov :: UTC x86_64 x8 ...