drozer简介
drozer是一款针对Android系统的安全检测框架,由两部分组成,一部分是运行在计算机上的console,另一部分是安装在Android设备上的agent.apk。事实上,随着当前Android开发技术的不断发展,并且F-Secure 也早已停止进一步开发 drozer 工具,想要直接利用drozer工具进行漏洞挖掘已经很难有成果产出,但是drozer作为一款进行前期准备工作的工具还是可以的,并且drozer也支持自定义脚本,可以自己在drozer的基础上进行扩充。原有的drozer只能在python2.x版本运行,现在带来的是python3.x版本drozer。项目地址
drozer安装
该类工具,一般在window上安装问题还是比较多的,因此,主要介绍一下在windows系统上,drozer-py3(只支持python3.x)的安装。
首先第一步还是
git clone https://github.com/LeadroyaL/drozer-py3.git
将项目git到文件夹下。
之后在drozer文件夹下,运行
python setup.py bdist_msi
之后安装.msi,在新生成的dist目录下直接点击xx.msi文件。

是可以直接选择python 3.x版本的,我已经安装完了,所以找了个网图(上面的x不用理会)。这样console就直接安装完成了。
接下来就是安装agent.apk,需要注意的是,要使用配套的agent。下载地址
直接下载安装即可。

打开将右下角按钮设为开启,在pc上输入
drozer.bat console connect

出现如上图所示,即为成功连接。
drozer常用指令
使用list或者ls命令,可以查看目前可用的所有模块。

常用的测试指令如下:
四大组件指令:
(1)Activity:
app.activity.forintent ``-``-` `找到可以处理已指定的包
app.activity.info ``-``-` `获取activity组件信息
app.activity.start ``-``-` `开启activity组件
scanner.activity.browsable ``-``-` `获取可从web浏览器调用的所有可浏览的activity组件
(2)Service:
app.service.info ``-``-` `获取service组件信息
app.service.send ``-``-` `向服务组件发送消息并显示答复
app.service.start ``-``-` `开启service组件
app.service.stop ``-``-` `停止service组件
(3)Content Provider:
app.provider.columns ``-``-` `在内容提供程序中列出列
app.provider.delete ``-``-` `在内容提供程序中删除
app.provider.download ``-``-` `在内容提供程序中下载支持文件
app.provider.finduri ``-``-` `在包中查找引用的内容URIS
app.provider.info ``-``-` `获取Content Provider组件信息
app.provider.insert ``-``-` `插入到Content Provider组件中
app.provider.query ``-``-` `查询Content Provider组件
app.provider.read ``-``-` `从支持文件的Content Provider读取
app.provider.update ``-``-` `更新Content Provider的记录
scanner.provider.finduris ``-``-` `搜索可从上下文中查询的Content Provider
scanner.provider.injection ``-``-` `测试Content Provider的注入漏洞
scanner.provider.sqltables ``-``-` `查找可通过SQL注入漏洞访问的表
scanner.provider.traversal ``-``-` `测试Content Provider的基本目录遍历漏洞
(4)Broadcast:
app.broadcast.info ``-``-` `获取有关广播接收器的信息
app.broadcast.send ``-``-` `带目的发送广播
app.broadcast.sniff ``-``-` `注册一个能嗅出特定意图的广播接收器
获取APP包相关信息:
app.package.attacksurface-----获取包攻击面
app.package.backup``-``-``-``-``-``-``列出使用备份API的包(在标记“允许备份”时返回true)
app.package.debuggable``-``-``-``-``-``-``查找可调试包
app.package.info``-``-``-``-``-``-``获取有关已安装软件包的信息
app.package.launchintent``-``-``-``-``-``-``获取包的启动意图
app.package.``list``-``-``-``-``-``-``列出程序包
app.package.manifest``-``-``-``-``-``-``获取包的AndroidManifest.xml
app.package.native``-``-``-``-``-``-``查找嵌入在应用程序中的本地库
app.package.shareduid``-``-``-``-``-``-``查找具有共享uid的包
使用姿势
详细信息
连接后,查看APP的详细信息
run app.package.info ``-``a com.xxx.xxxx

查看manifest文件:
run app.package.manifest com.xxx.xxx

查看攻击面:
run app.package.attacksurface com.xxx.xxx

该部分主要是查看导出组件,再进行后续的漏洞研究。
判断app是否可导出:
run app.package.backup
(允许备份会返回true)
该命令可以批量判断是否具有导出漏洞。

Activity测试:
获取activity信息:
run app.activity.info -a com.xxx.xxx

测试activity跳转,这个可以测试是否直接跳过登录界面,或者是进入一些敏感界面。
run app.activity.start ``-``-``component 软件包名 软件包名.对应exported的activtiy
Service测试:
获取service信息:
run app.service.info ``-``a com.xxx.xxxx
发送service服务,可以进行漏洞的快速验证
run app.service.start ``-``-``component 软件包名 软件包名.对应exported的activtiy ``-``-``extra 数据
示例:
run app.service.start ``-``-``component com.example.test com.example.test.Activity ``-``-``extra string phone ``12345678901
-``-``extra string content Hello
Broadcast测试
获取broadcast信息:
run app.broadcast.info ``-``a com.xxx.xxxx
注册一个能嗅出特定意图的广播接收器
app.broadcast.sniff ``-``-``action ``"活动"
发送广播:
run app.broadcast.send ``-``-``action 广播名 ``-``-``extra string name xxx
contentProvider测试
获取contentProvider信息
run app.provider.info ``-``a com.xxx.xxxx
获取所有可访问的Uri:
run scanner.provider.finduris ``-``a com.xxx.xxxx
检测SQL注入:
run scanner.provider.injection ``-``a com.xxx.xxxx

扫不到是常态,扫到说明可以去买彩票了。
检测目录遍历:
run scanner.provider.traversal ``-``a com.xxx.xxxx
SQL注入:
run app.provider.query [``-``-``projection] [``-``-``selection]
总结
drozer在初期扫描上还是具有一定作用的,并且现在也有了支持python3.x版本的项目,操作上对新手白帽也比较友好,大家可以尝试一下,有问题一起交流呀。