51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1907|回复: 1
打印 上一主题 下一主题

利用Drozer对Android app进行安全测试

[复制链接]
  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 523 天

    连续签到: 5 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-12-10 13:07:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    前期环境的搭建
    Android SDK的安装
    adb的安装
    java jdk的安装
    备注:其中文章中xx.xx.xx是指该应用的包名


    一、安装



    • 打开cmd,运行adb forward tcp:31415 tcp:31415
    • 在Android设备上开启Drozer Agent
    • 在pc端cmd切换到drozer安装目前,然后运行 drozer console connect



    二、测试步骤
      (1)获取要测试应用的包名
    1. dz>run app.package.list -f xxx ,其中xxx代码你应用包名里面的某个字段,它是模糊拼配,会列出包含该字段的所有包名
    复制代码
    (2)获取应用的基本信息
    1. <div><p>run app.package.info -a com.xx.xx   ,info后面跟的是具体包名</p></div><p style="box-sizing: border-box; margin-bottom: 25px; word-break: break-word !important;">可以看到应用的版本信息,数据存储的目录,用户ID,组ID,是否有共享库,还有权限信息等</p>
    复制代码

    (3)确定存在可能被攻击的界面
    1. run app.package.attacksurface xx.xx.xx      xx.xx.xx指具体包名
    复制代码
    (4)获取activity
    1. run app.activity.info -a com.newborntown.android.solo.fitness
    复制代码

    启动activity
    1. run app.activity.start --component com.newborntown.android.solo.fitness com.newborntown.android.solo.fitness.main.SplashActivity
    复制代码

    如果组件存在拒绝服务就会产生异常,导致APP停止运行。
    同样可以通过其他组件的start模块调用相应的组件进行测试
    如果任何模块有疑问的或者不会使用的,可以通过-h(help)来查看相应的帮助信息
    备注:该命令是一条命令component 后面跟的是上一步查出的包名和activity


    (5)获取Content Provide信息
    1、run app.provider.info -a com.newborntown.android.solo.fitness
    content provider的具体信息,包括名字,权限,访问路径等。


    2、获取所有可以访问的Url(数据泄露)
    run scanner.provider.finduris -a com.newborntown.android.solo.fitness

    run app.provider.query content://xx.xx.xx.DBContentProvider/Passwords/ --vertical

    查询到数据说明存在漏洞

    3、同时检测SQL注入和目录遍历

    1. <p>run scanner.provider.injection -a xx.xx.xx</p><p>run scanner.provider.traversal -a xx.xx.xx</p>
    复制代码

    (6)intent组件触发(拒绝服务、权限提升)
    利用intent对组件的触发一般有两类漏洞,一类是拒绝服务,一类的权限提升。拒绝服务危害性比较低,更多的只是影响应用服务质量;而权限提升将使得没有该权限的应用可以通过intent触发拥有该权限的应用,从而帮助其完成越权行为。

    尝试权限提升

    权限提升其实和拒绝服务很类似,只不过目的变成构造更为完整、更能满足程序逻辑的intent。由于activity一般多于用户交互有关,所以基 于intent的权限提升更多针对broadcast receiver和service。与drozer相关的权限提升工具,可以参考IntentFuzzer,其结合了drozer以及hook技术,采用 feedback策略进行fuzzing。以下仅仅列举drozer发送intent的命令:

    (1)获取service详情
    run app.service.info -a xx.xx.xx
    不使用drozer启动service
    am startservice –n 包名/service名

    (2)权限提升
    run app.service.start --action xx.xx.xx.SEND_SMS --extra string dest 11111 --extra string text 1111 --extra string OP SEND_SMS




    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏2
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-11 00:54 , Processed in 0.071056 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表