1.drozer简介
drozer是一款针对Android的安全测试框架,分为安装在PC端的控制台、安装在终端上的代理APP两部分。可以利用APP的IPC通信,动态的发现被测试APP的安全风险。drozer最主要的功能就是对安卓APP四大组件activity、 broadcast receivers、 content providers、 services进行安全测试。
2.drozer安装
环境配置
Python2.7
Protobuf 2.6+
Pyopenssl 16.2+
Twisted 10.2+
Java Development Kit 1.7
Android Debug Bridge
安装方法
电脑端
https://github.com/WithSecureLabs/drozer下载对应系统的安装包
手机端
点击下载agent
drozer-agent-2.3.4.apk
注意事项
需要将python2设置优先

使用
测试机数据线连接电脑,打开开发者模式以及usb调试,打开agent并将下面的开关打开

adb自己下载,并加到环境变量里,开启端口转发
adb forward tcp:31415 tcp:31415drozer连接
drozer.bat console connect //在PC端drozer目录下运行此命令如果显示以下内容,表示连接成功,如果遇到报错,翻到最下面解决方案篇
查看一下当前运行的程序列表
run app.package.list
activity组件的测试
查看导出的activity组件
run app.activity.info -a <package name>
启动某个Activity组件,判断是否有越权访问的漏洞
run app.activity.start --component <包名> <组件名> 这里我们根据名称判断

content provider组件的测试
查看导出的content provider组件
run app.provider.info -a <package name>
获取所有可以访问的URI
run scanner.provider.finduris -a <package name>
获取各个Uri的数据
run app.provider.query <uri>

解决方案
问题一
drozer console connect 报错
Could not find java. Please ensure that it is installed and on your PATH.
If this error persists, specify the path in the ~/.drozer_config file:
[executables]
java = C:\path\to\java
There was a problem connecting to the drozer Server.
Things to check:
- is the drozer Server running?
- have you set up appropriate adb port forwards?
- have you specified the correct hostname and port with --server?
- is the server protected with SSL (add an --ssl switch)?
- is the agent protected with a password (add a --password switch)?
Debug Information:
[Errno 10061]解决方案:
1、创建如下文件并命名为:drozer_config.txt (如果为winXP,则可以直接命名为.drozer_config)
2、写入内容如下几行内容:此处为java.exe文件的安装位置,具体情况具体处理。
[executables]
java =C:\...(jdk的路径)\bin\java.exe
javac =C:\...(jdk的路径)\bin\javac.exe
drozer =...\drozer.bat3、把此文件放入个人目录下文件夹:
英文:C:\Users\<youruser name>\
中文:C:\用户\<你的用户名名称>\
4、通过cmd命令重命名此文件为:.drozer_config
rename drozer_config.txt .drozer_config问题二
修复问题一后,重新连接报错
There was a problem connecting to the drozer Server.
Things to check:
- is the drozer Server running?
- have you set up appropriate adb port forwards?
- have you specified the correct hostname and port with --server?
- is the server protected with SSL (add an --ssl switch)?
- is the agent protected with a password (add a --password switch)?
Debug Information:
[Errno 10061]解决方案:
运行命令(我的问题就是我忘记做端口转发)
adb forward tcp:31415 tcp:31415问题三
与手机端连接失败:
[Errno 10054]解决方案:
1、确保手机端打开
2、确保端口转发正确
问题4:
dz> run app.package.list
unknown module: 'app.package.list'
解决:
出现unknownmodule,这个时候在dz>中输入list,返回结果也是空白。解决方法是在cmd中将当前目录切换到drozer的安装路径下,如d:\drozer,然后再输入"drozerconsole connect"启动drozer。
问题5:
运行 run scanner.provider.injection命令,或者运行 runapp.provider.finduri命令时,提示
C:\Program Files\Java\jdk1.8.0_71\bin\javac.exe-cp D:\drozer\lib\drozer\lib\android.jar ZipUtil.java
。。。。。
之类的信息。。。这个真的没有什么好办法,试了很久,最后的解决方法是:
不用drozer官网提供的windowsinstaller安装包,而是用drozer(Python .egg)安装包,用python的easy_install.exe安装egg文件。安装过程中会提示缺少twisted还有其他安装包,按安装提示做就可以了。
问题6:
还是运行 run scanner.provider.injection命令,或者运行 runapp.provider.finduri命令时,提示
cannot resolve com.mwr.jdiesel.util.Strings
这个貌似是手机上安装的agent.apk出问题了,我的是红米2a。
解决:
不要安装2.3.4版本的agent,用2.3.3就没有问题。
给个2.3.3的链接 http://pan.baidu.com/s/1dDKkNtB
评论 (0)