使用Drozer进行安全测试(Drozer github上开源项目)

来源:互联网 发布:程序员求职成功 编辑:程序博客网 时间:2024/05/20 19:47

在前面的文章中,我们已经介绍了Android的多种安全漏洞,在继续学习其他漏洞之前,我们先来学习一个非常NB的工具:Drozer.

DrozerMWR Labs开发的一款Android安全测试框架。是目前最好的Android安全测试工具之一。

其官方文档说道:“Drozer允许你一一个普通android应用的身份与其他应用和操作系统交互。”

Web世界已经有了许多安全测试工具了,我们只需要给出一个目标,这些工具就会自动为我们安全测试报告。但Drozer与这样的自动化扫描器不同,Drozer是一种交互式的安全测试工具。使用Drozer进行安全测试,用户在自己的工作站上输入命令,Drozer会将命令发送到Android设备上的代理程序执行。

实验准备

实验器材

1.工作站(本文使用Ubuntu),并安装软件:

a)JRE或者JDK

b)Android SDK

2.运行Android2.1以后版本的Android设备或者模拟器

下载DrozerAgent.apk

https://www.mwrinfosecurity.com/products/drozer/community-edition/

这个链接也可以下载到MWR Labs提供的一份用户手册,但本文只对Drozer的安装和使用做简单介绍,以后涉及其他漏洞的时候再详细介绍Drozer的用户手册。

本文假设读者使用的是与我类似的环境,其他用户请下载对应版本的Drozer安装。

在安装Drozer之前,记得需要安装依赖。

Windows用户直接像安全其他软件一样安装就好了。

检查安全是否成功,在终端中输入命令:”drozer”:

t01537b5782b0bc6169.png

现在在设备或者模拟器上安装先前下载的agetn.apk

可以使用adb安装,命令如下:

1
#adb install agent.apk


t016a3db00955edc1e2.png

然后我们需要链接工作站上的Drozer控制台和设备上的代理程序。

首先运行设备上的Drozer代理并启动守护服务,然后运行下面的命令做端口转发:

1
#adb forward tcp:31415 tcp:31415


t014c9ecc05a50fadce.png

使用下面的命令建立链接:

#drozer console connect

如下图:

t01a2943bfb8c5160d5.png

使用Drozer进行安全测试

下面来见识下Drozer的魔力,使用Drozer对应用进行安全测试。

本系列的第一篇文章中介绍过如何攻击暴露的Activity,现在我们把当时用的的测试应用安装到设备上,当然,像本文一样使用模拟器也是可以的。

t013d7ed8b345cdef42.png

在正式开始之前,先来熟悉下Drozer的命令。

列出所有模块

1
#dz>list


该命令列出了当前可用的所有模块:

t01450134eb3137a34e.png

获取包信息

使用下面的命令列出安装的所有应用包名:

1
#dz> run app.package.list


t017e5e53822a255fe2.png

上图中中有两个高亮的应用,都是我们之前用过的。

使用”-f”选项搜索特定的包名:

1
#dz> run app.package.list –f (string to be searched)


t017fc7c1edb22d6f75.png

输出如下:

com.isi.testapp

使用以下命令查看制定包的信息:

1
#dz> run app.package.info –a (package name)


比如:

1
#dz> run app.package.info –a com.isi.testapp


t01bc32d6b6de261d50.png

输出了应用数据目录,apk的路径,是否有Shared User ID等。

识别攻击面

这一节是Drozer中比较有趣的部分,我们只用一条命令就可用识别出应用的攻击面,Drozer会告诉我们应用是否有暴露的组件,是否可调试等。

我们使用Drozer来检查testapp.apk的攻击面,下面是一条典型的命令:

1
dz>run app.package.attacksurface (package name)


我们的包名是testapp.apk

1
dz>run app.package.attacksurface com.isi.testapp


t014ae6f3751b4df604.png

如上图,testapp中有两个暴露的activity。现在我们需要找出暴露activity的名字并检查是否有敏感信息,如果有的话就可以用Drozer的其他模块进行攻击。如果应用可调试,我们就可以用调试器附加到进程单步执行指令或执行特定的代码,关于调试我们在之前的两篇文章有过讨论。

使用Drozer攻击App漏洞

基于上一节的结果发起攻击。

攻击暴露的Activity

本节深入testapp.apk的漏洞比进行攻击。

上一节中我们已经发现testapp.apk中存在暴露的activity,使用以下命令查看appactivity

1
      Dz> run app.activity.info –a (package name)


比如我们的包名是com.isi.testapp

1
dz>run app.activity.info –a com.isi.testapp


t015a03801247fd0d2a.png

上图中列出了应用中暴露的activity

com.isi.testapp.MainActivity很显然是主界面,需要能启动,所有是暴露的。

Com.isi.testapp.Welcome看名字像是登录后的界面。使用如下命令启动。

1
dz> run app.activity.start --component (package name) (component name)


比如我们我们的testapp

1
dz> run app.activity.start –component com.isi.testapp com.isi.testapp.Welcome


t01ae835b51600e8eb9.png

该命令会生成一个合适的intent来启动activity,其实更我们之前见到过的使用activity管理工具(am)来启动activity一样。

t019f75b912aca99479.png

如上图,我们成功绕过了登录认证。

这是什么原因造成的呢?

这其实在我们第一篇文章中提到过,是因为AndroidManifest.xml中,activity”android:exported”属性被设置为”true”

t018d546db6f924fbe9.png

总结

本文对DrozerAndroid应用渗透测试做了简要介绍。以后的文章中会介绍其他的漏洞及其利用,还会介绍怎样对Drozer进行扩展。

目录

安卓Hacking Part 1: 应用组件攻防(连载) 

安卓Hacking Part 2: Content Provider攻防(连载)

安卓Hacking Part 3:Broadcast Receivers攻防(连载) 

安卓Hacking Part 4:非预期的信息泄露(边信道信息泄露)

安卓Hacking:Part 5:使用JDB调试Java应用 

安卓Hacking Part 6:调试Android应用 

安卓 Hacking Part7:攻击WebView

安卓Hacking Part 8:Root的检测和绕过

安卓hacking Part9: 不安全的本地存储:Shared Preferences 

安卓Hacking Part 10:不安全的本地存储

安卓Hacking Part 11:使用Introspy进行黑盒测试 

安卓Hacking Part 12: 使用第三方库加固Shared Preferences 

安卓Hacking Part 13:使用Drozer进行安全测试 

安卓Hacking Part 14:在没有root的设备上检测并导出app特定的数据



本文由 360安全播报 翻译,转载请注明“转自360安全播报”,并附上链接。
原文链接:http://resources.infosecinstitute.com/android-hacking-security-part-13-introduction-drozer/

0 0
原创粉丝点击