Drozer是一款综合的安全评估和攻击的android框架,据 产品介绍 里说,Drozer可以全面评估app的安全性,并帮助团队把app的安全风险保持在可控范围内。
在 mwrinfosecurity 公司的这个网页上,提供了社区版本的下载(没错,还有收费的高级版)
使用方法
所需工具:一台手机或安卓模拟器(本人使用模拟器),drozer。
首先是环境的安装:
必须确保JDK、adb都安装好,并且环境设置好。
由于本人JDK已安装,且环境已配置好,所以略过这个。
下载了adb工具包后,配置adb系统变量,添加变量名android和路径,然后在Path中添加%android%。测试android的adb环境是否已经配置好,即cmd中输入adb devices不会报错。
1、在windows上安装好drozer;在模拟器安装下载包中的Agent.apk的包。
2、在PC端开启转发
adb forward tcp:31415 tcp:31415
3、在手机端打开安装好的apk程序,并且启动服务。
4、在PC上开启drozer.bat,开启Drozer console
drozer console connect
此时,出现了没有找到java的错误,经提示加百度,解决方法:新建一个.drozer_config文件,内容如下:
[executables]
java=D:\Java\jdk1.8.0_65\bin\java.exe
javac=D:\Java\jdk1.8.0_65\bin\javac.exe
保存在C:\Users\Administrator中。再次drozer console connect,就进入了 dz> 的console界面,后面就参照说明书一步一步进行测试。
功能介绍
dz> run app.package.list -f example
list命令用以列出所有包含“example”的手机中已安装package名称,记住目标应用的完整名称。
dz> run app.package.info -a com.example
info命令用以通过完整名称,获取该package的详细信息,比如data路径、apk路径、声明的权限等等。
dz> run app.package.attacksurface com.example
attacksurface即攻击面分析,分析Activity/Broadcast Receiver/Content Provider/Service的权限,即是否能被其他的的应用程序调用。会像下列示例一样列出数量:
dz> run app.provider.info -a com.example
获取provider的信息,比如是否需要额外权限来读写app的数据库,等等。如果找到相关漏洞,就可以通过
dz> run scanner.provider.finduris -a com.example
来扫描一些可用的uri,比如userName、password、ID之类的,甚至可以修改值(如SQL注入什么的):
dz> run app.provider.query content://xxxxxx –preinjection “xxx”
dz> run scanner.provider.injection -a com.example
进行简单的SQL注入检查、文件遍历检查之类的。
其他:
service相关
查询service
dz> run app.service.info -a com.example
shell.start
在设备上启动一个可交互的linux shell
tools.file.upload / tools.file.download
在android设备上上传/下载文件
tools.setup.busybox / tools.setup.minimalsu
往设备上安装busybox和minimalsu
其他功能
在收费版本中,Drozer还提供了攻击面的可视化界面,并在多设备支持、模拟传感器输入等方面进行了探索,但是介于收费功能,没有继续看下去。
总结
在测试app的安全性上,Drozer确实可以发挥一些作用,不过关键问题还是要了解Android app的整体结构和安全策略,才能游刃有余,而不是见招拆招,被动的很。
转自:http://blog.csdn.net/Tom_Lang_666/article/details/51090496