移动端渗透测试工具相比丰富的web端真的是少之又少,最近在做app的安全测试,用到了drozer,drozer的安装过程真的是太心酸了,中间报错了有6次才成功安装。。
一.环境准备
首先准备以下环境:
-
Windows10
-
逍遥安卓模拟器
-
Python2.7 (必须用python2.7.。。。用3会报错)https://www.python.org/ftp/python/2.7.14/python-2.7.14.amd64.msi
-
drozer-2.4.4. https://github.com/mwrlabs/drozer (安装时必须选择python2.7)
- Adb AndroidDebugBridge http://adbshell.com/downloads
- jdk1.8 https://blog.csdn.net/weixin_37601546/article/details/88623530
二.创建连接
1.首先用adb创建和你的手机或安卓模拟器的连接,adb具体使用方法见:https://jingyan.baidu.com/article/ce4366494962083773afd3d0.html
然后使用adb将adb agent安装到手机 agent下载链接 https://github.com/mwrlabs/drozer/releases/download/2.3.4/drozer-agent-2.3.4.apk
adb连接实现后,在手机端打开agent,将其开启
三.配置pyhon2环境变量和安装各种支持的库 ,打开dozer
这时你下载的dozer应该在python27Scripts目录下
打开cmd控制到 切到python27,目录下,先为python2 配置临时环境变量(因为我本身有python3的环境变量,所以便只配置临时的)
set path=C:Python27;CPython27Scripts;%path%
随后在 dozer.bat 所在目录,使用命令dozer.bat console connect 打开dozer控制台
四.排错(如果直接能启动无需看这一步)
我这里打开后报错报错1:ImportError: No module named google.protobuf
这里执行 pip install protobuf
然后又报错 2. You are using pip version 19.1, however version 19.2 is available.You should consider upgrading via the ‘python -m pip install –upgrade pip’ command.
这里时pip版本低
然后执行: python -m pip install –upgrade pip 再次报错。。随后在csdn上找到了解决办法,在管理员控制台执行该命令,实现pip的升级
随后再次执行 pip install protobuf 就能成功了
报错3,还需要这两个库,都装上
pip install pyopenssl
pip install pyyaml
再执行 drozer.bat console connect
还没有结束,报错4,还需要 Twisted的依赖,那么再把Twisted库装上
pip install Twisted
然后执行失败一页红
报错5,这里还需要C++环境,安装一个Micorsoft Visual C++ Compiler for Python 2.7 环境 链接: https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266
安装后再安装twisted库就可以了
然后于愉快的打开dozer,发现还有错误??
这里还需要要用adb端口转发一下 adb forward tcp:31415 tcp:31415 (31415为dozer占用的端口号)
终于能打开了
五. drozer使用
可以用help ,list 查看使用方法和功能
我这里用到了drozer的几个功能简单测了下app
1.检测四大组件安全 :
run app.activity.info -a <包名>
run app.broadcast.info -a <包名>
run app.service.info -a <包名>
run app.provider.info -a <包名>
2.检测URI数据泄露风险:
Drozer的scanner模块提供了一些方法去猜测可能存在的content URIs.
run scanner.provider.finduris -a <包名>
3.检测文件遍历漏洞 :
Drozer的Scanner模块提供了一些方法去检测本地Content Provider数据是否有文件遍历漏洞风险的接口.
run scanner.provider.traversal -a <包名>
4.检测是否存在本地sql注入:
Drozer的Scanner模块提供了一些方法去检测本地储存的SQLite数据是否有SQL注入的风险.
run scanner.provider.injection -a <包名>