Drozer--AndroidApp安全评估工具

0x00:前言java

  Android中的app其实存在着不少应用缺陷,不少时候都须要对其进行安全评估,drozer就是其中一个很好的工具。这里用到一个app是sieve(一个密码管理器),它自己存在的缺陷就能够做为测试的样本。android

 

0x01:数据库

  安装sieve后进去配置好密码,PIN码后,随便添加一个须要管理密码的信息windows

  

 

0x02:安装drozer安全

  tips:个人平台是windows,安装时有几个坑app

  下载了drozer后安装,跟进到drozer目录下运行drozer.bat,显示以下便是安装成功tcp

  

  接着在下载的drozer文件夹里面有个agent.apk文件,将其安装到手机上并运行以下ide

  

  而后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应用进行安全评估

相关文章
相关标签/搜索