drozer-Android安全测试基本使用教程(Windows
简介
drozer的基本功能就是通过分析AndroidManifest.xml,看四大组件中有没有可export的
本教程第一大节讲安装,第二大节讲使用drozer连接手机,第三大节讲通过drozer检测app安全性。
一、安装
1.1 环境要求
1)jdk1.6以上
2)python2.7 (drozer使用python2.7编写不支持python3.x,所以只能装python2.7)
3)添加python其他库(pip install protobuf pyOpenSSL Twisted service_identity)
4)adb(Android Debug Bridge,一般在Android SDK安装目录下的platform-tools文件夹下就有,也可以另外下载安装)
确保配置了adb、java环境变量
PS:要是已经安装了python3.0以上的,可以通过设置环境变量指向python2.7的安装路!
径
1.2 电脑下载安装drozer
下载链接:https://labs.mwrinfosecurity.com/tools/drozer/
具体下载文件选择如下图-1所示
双击下载的安装程序:
安装步骤如下:图-2 图-3 图-4 图-5 所示
图-2
图-3
图-4
图-5
1.3 电脑安装python第三方库
在cmd命令输入框中运行如下命令
pip install protobuf pyOpenSSL Twisted service_identity
如果没有报错提示,那就不用管我下面的描述了。我运行次python命令遇到Twisted安装失败的错误提示。解决方法就是手动去下载:
1.3.1).安装twisted
下载地址:https://pypi.python.org/simple/twisted
找对应版本和对应系统版本,下载exe安装即可
1.3.2).安装zope.interface
下地址:https://pypi.python.org/simple/zope.interface/
一样是找对应版本和对应系统版本,下载exe安装即可
两个安装成功之后,在C:\Python27\Lib\site-packages目录下看到对应的文件夹,如图-6所示:
至此,你会发现twist模块安装成功了
1.4 下载安装手机agent
使用usb线将手机连接到电脑(或开启一个模拟设备),使用adb将agent安装到手机。
agent下载地址:https://github.com/mwrlabs/drozer/releases/download/2.3.4/drozer-agent-2.3.4.apk
到手机打开启agent,如下图-7确保右下角按钮显示为“开启”(如果显示为关闭,在其上点击将其切换为开启即可)
图-7二、连接
2.1切换到drozer安装目录
如果cmd的当前路径和drozer.bat如果不在同一驱动器(比如cmd当前在c盘,drozer.bat在d盘),那么虽然使用drozer.bat console connect也可以进入drozer控制台,但是执行run时会报错“unknown module: 'app.package.list'”,如下图-8所示:
图-8
处理这个问题,只要将cmd路径切换到drozer.bat同驱动器下即可(比如我这里需要做的就是切换到C盘)。
2.2 使用drozer连接手机
adb forward tcp:31415 tcp:31415
drozer.bat console connect
三、使用drozer对app进行测试
3.1 使用app.package.info模块查看apk基本信息(package_name指的是你需要检测的APP包名)
run app.package.info -a package_name
3.2 使用app.package.attacksurface模块识别攻击面
所谓攻击面,应该就是指可export的安卓四大组件(activaty、broadcast receiver、content provider、service)
run app.package.attacksurface package_name
3.3使用app.activity.info模块查看activity组件信息
run app.activity.info -a package_name
3.4 使用app.activity.info模块查看broadcast 组件信息
run app.broadcast.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