安全测试|移动端安全测试drozer

手机应用的快速增长,手机应用安全成为一个热门的话题,android的安全问题有一大部分的原因是因为android的组件暴露、权限使用不当导致的。

“ 

随着互联网应用的普及和人们对互联网的依赖,互联网的安全问题也日益凸显。接下来的小编将带您进入安全测试。

一、android四大组件

什么是安卓应用组件?安卓主要由四大组件组成,Activity、Service、Content Providers、Broadcast Receivers.

Activity:是一个应用程序的组件,一个activity对应一个界面,是与用户进行交互的。

Activity形态:

Active/Running: 

Activity处于活动状态,此时Activity处于栈顶,是可见状态,可与用户进行交互。

Paused: 

当Activity失去焦点时,或被一个新的非全屏的Activity,或被一个透明的Activity放置在栈顶时,Activity就转化为Paused状态。但我们需要明白,此时Activity只是失去了与用户交互的能力,其所有的状态信息及其成员变量都还存在,只有在系统内存紧张的情况下,才有可能被系统回收掉。

Stopped:

当一个Activity被另一个Activity完全覆盖时,被覆盖的Activity就会进入Stopped状态,此时它不再可见,但是跟Paused状态一样保持着其所有状态信息及其成员变量。

Killed:

当Activity被系统回收掉时,Activity就处于Killed状态。

Activity会在以上四种形态中相互切换,至于如何切换,这因用户的操作不同而异。了解了Activity的4种形态后,我们就来聊聊Activity的生命周期。

ServiceService通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。Service组件需要继承Service基类。Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。

Content Providers:Content Provider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。只有需要在多个应用程序间共享数据是才需要内容提供者。

Broadcast Receivers:广播接收器没有用户界面。然而,它们可以启动一个activity或service来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力,例如闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。

二、环境搭建

android sdk;

adb 安装;

jdk安装,这里需要是哟啊能1.7以下的jdk,使用1.8的会报错,drozer暂不支持1.8的jdk

drozer安装:

Drozer是一个常用的测试框架,它可以分为2个部分,一个是console-它运行在本地的计算机上,一个是server-它运行在android设备上。当你使用console与android设备交互时,基本上就是java代码输入到运行在实际设备上的drozer代理(agent)中。

drozer下载:https://labs.mwrinfosecurity.com/tools/drozer/ 下载drozer(msi)、agent.apk

Drozer安装:windows下点击msi直接安装

agent安装:在测试机上安装agent.apk

sieve安装:下载sieve.apk,该apk是用来作为被测试的app

三、drozer验证

1.打开cmd,运行adb forward tcp:31415 tcp:31415,如图所示 

2.在Android设备上开启Drozer Agent,如图所示: 

此时可以看到enable是绿色的了。

3.在pc端cmd切换到drozer安装目前,然后运行 drozer console connect,如图所示:

四、测试

1.获取要测试应用的包名

dz>run app.package.list -f sieve ,-f它是模糊匹配,匹配包名中的任一字段,会列出包含该字段的所有包名 

2.获取应用的基本信息

dz>run app.package.info -a com.mwr.example.sieve ,查看该apk详细信息,可以看到应用的版本信息,数据存储的目录,用户ID,组ID,是否有共享库,还有权限信息等 

3.确定存在可能被攻击的界面

dz>run app.package.attacksurface com.mwr.example.sieve  


显示了潜在可以被利用的组件个数: “exported”表示组件可以被其他App使用, services is debuggable表示我们可以用adb绑定一个调试器到进程。暴露出来的3个activity,2个content provider,2个可以被adb绑定的service。

4.activity测试

(1)获取activity信息

dz>run app.activity.info -a com.mwr.example.sieve

可以看到有三个界面是可以被利用的。 

(2)启动activity

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

通过app.activity.start命令可以不需要密码直接进入passwordList界面

5.Content Provider测试

(1)获取Content Provider信息

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

(2)Content Providers(数据泄露)

先获取所有可以访问的Uri:

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

获取各个Uri的数据:

dz>run app.provider.query

content://com.mwr.example.sieve.DBContentProvider/Passwords/ --vertical

查询到数据说明存在漏洞

可以看到此时有一条数据,该条数据是之前在app添加的数据。这里暴露了service、username、password、email的信息。

(3)Content Providers(SQL注入)

content provider的具体信息,包括名字,权限,访问路径等

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

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

报错则说明存在SQL注入,我们可以继续查询看看有哪些数据。 

列出所有表:

dz>run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type=‘table';--"

获取某个表(如Key)中的数据:

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

(4)同时检测SQL注入和目录遍历

dz>run scanner.provider.injection -a com.mwr.example.sieve

5.service测试

(1)获取service详情

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

(2)权限提升

dz>run app.service.start --action com.test.vulnerability.SEND_SMS --extra string dest 11111 --extra string text 1111 --extra string OP SEND_SMS

6.broadcast receive测试

(1)查看暴露的广播组件信息:

dz>run app.broadcast.info -a com.package.name

获取broadcast receivers信息

dz>run app.broadcast.send --component 包名 --action android.intent.action.XXX

(2)尝试拒绝服务攻击检测,向广播组件发送不完整intent(空action或空extras):

dz>run app.broadcast.send 通过intent发送broadcast receiver

Drozer之所以称之为框架(framework),因为它允许你编写自己的模块或者插件,扩展你的功能让它试用你的功能。它的另外一个作用是,它本质上市一个不需要任何权限的android app—这实际上是它的组件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,612评论 5 471
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,345评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,625评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,022评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,974评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,227评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,688评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,358评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,490评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,402评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,446评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,721评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,802评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,013评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,504评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,080评论 2 341

推荐阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,674评论 2 59
  • 2.1 Activity 2.1.1 Activity的生命周期全面分析 典型情况下的生命周期:在用户参与的情况下...
    AndroidMaster阅读 3,010评论 0 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,566评论 18 139
  • 在春风得意之际跌下台的人数不胜数,他们摔得很惨。脑浆涂地、血肉模糊。他们用鲜血和脑浆写下的忠告就是——春风得意的时...
    遇见活在当下的自己阅读 154评论 0 0
  • 我们不需要强迫自己改变,只需要从不同的角度发现自己的亮点就好。尽力做好自己能做的事,事情就会在你想不到的时候发生改...
    生如夏花2018阅读 1,169评论 12 11