Drozer--AndroidApp安全评估工具

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注入

  用projectionselection参数可以将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 ProviderURI(数据泄露)

  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:参考

  drozer对android应用进行安全评估

posted on 2016-08-22 18:48 7↑top 阅读(...) 评论(...) 编辑 收藏

导航

统计