当前位置: 首页 > news >正文

移动终端安全:实验3-Drozer关键模块的使用

实验过程

安装Drozer,并确认链接成功

1. 枚举已安装包

列出设备上安装的应用包(基本核查用):

dz> run app.package.list

用途:确认目标包名(package name),后续模块都以包名为参数。


2. 检查包攻击面(导出组件)

列出某个包下所有 导出(exported) 的 activity(通过 PackageManager API):

dz> run app.package.attacksurface <包名>

意义:快速定位那些对外可被外部 Intent 调用的组件(潜在入口)。


3. 枚举 Activity(全设备或指定包)

列出设备上安装并导出的 activity:

dz> run app.activity.info

或只列出某包:

dz> run app.activity.info --package <包名>

从输出可看到每个 Activity 的 exported 与所需权限等信息。


4. 枚举 Content Provider

列出 Content Provider 信息(URI、权限、导出状态等):

dz> run app.provider.info

后续测试思路:若发现 provider 暴露且未做权限控制,可尝试通过 content URI query/insert/update/delete 来判断是否可以读写。

这里太多不好判断,我们依旧列出玩转程序的Content Provider 信息


5. 枚举 Service

列出系统中 service:

dz> run app.service.info

可用于发现可被外部 start/bind 的 service(无权限的 service 可能被滥用)。


6. 枚举 Broadcast Receiver

列出注册并导出的广播接收器:

dz> run app.broadcast.info

若 broadcast receiver 未限制权限或使用 exported="true",可向其发送 crafted intent 触发行为。


7. 使用Drozer运行一个无权限组件

(1)使用 app.activity.info 找到目标包的某个 exported Activity:

dz>  run app.activity.info --package [package name]

(2)构造 Intent 并启动该 Activity(最简单):

dz> run app. activity. start --component [package name] [component name]

发现该程序的FirstActivity 启动成功。

知识补充

一、什么是 drozer(核心概念)

  • drozer 是一个面向 Android 平台的开源安全评估框架,设计目的是让渗透测试人员能“以应用的身份”与目标设备、应用的 IPC(Intent、Content Provider、Service、BroadcastReceiver 等)以及底层运行时(Dalvik/ART)交互,自动化发现组件暴露、权限缺陷和其他漏洞。labs.withsecure.com+1
  • 它最初由 MWR Labs(Mercury/后来并入其它团队)开发,后续社区和相关组织(如 WithSecure/ReversecLabs)维护并发布代码、模块与文档。drozer 在行业内长期被引用为 Android 渗透测试的“标准工具”之一。linuxjournal.com+1

二、drozer 的架构 / 组件

  1. drozer Console(客户端 / 控制台)

    在测试机/宿主机上运行的命令行工具(dz),用来加载模块、发起请求、显示结果并交互式执行命令。GitHub

  2. drozer Agent(运行在 Android 设备上的 APK)

    以应用身份运行在目标设备/模拟器上的代理(agent),接收控制台命令并执行相应操作(列举组件、发送 Intent、访问 Content Provider、执行 exploit 等)。Agent 可通过正常安装、社工或利用其他漏洞部署(注意合法性)。GitHub

  3. 模块(Modules)

    drozer 的功能拆分为大量模块(例如 app.package.listapp.activity.infoscanner.provider.traversal 等),用户通过 run <module> 调用。模块可通过社区/官方仓库扩展,支持分享与复用。GitHub+1

  4. 外部仓库 / 扩展

    新版本支持外部模块仓库(WithSecure/社区仓库),便于分发更新的模块与 exploit。GitHub


三、主要能力与典型模块(功能分类)

  • 信息收集 / 枚举

    • app.package.list — 列出已安装包。

    • app.activity.infoapp.service.infoapp.provider.infoapp.broadcast.info — 枚举并显示导出组件、权限与 intent filters。

      (你在实验里贴出的命令都属这一类。)GitHub

  • 组件测试 / 利用

    • 使用 app.activity.start 向导出 Activity 发送 Intent、用 app.provider.query/insert 等与 Content Provider 交互,测试未授权读写或注入。Gist+1
  • 扫描器与自动化

    • 一些 scanner.* 模块可以对应用进行更系统的检查(比如 provider traversal、intent injection 等),用于批量或自动化测试。GitHub
  • 远程/利用相关

    • drozer 能生成/运用一些已知 exploit 或 payload(例如通过 weasel 或 agent 注入、或构建恶意 APK、网页进行社会工程式部署),用于验证远程利用场景(请注意法律与授权)。GitHub+1

四、如何与 Android IPC/组件交互(技术细节)

drozer 的核心能力来自对 Android IPC/组件模型的“程序化使用”:

  • PackageManager / PackageInfo 查询(枚举组件)

    • agent 使用 PackageManager 获取目标应用的 PackageInfoActivityInfoServiceInfoProviderInfoReceiverInfo,从中读取 exportedpermissionintent-filters 等字段,从而判断哪些组件对外暴露、是否需要权限。

  • Intent 构造与发送(调用 Activity/Service/Receiver)

    • 构建 Intent(包含 action、data、extras、componentName 等),调用 startActivity()startService()bindService()sendBroadcast() 来触发目标组件,观察行为或利用逻辑缺陷。

  • ContentResolver 访问 Provider

    • 使用 ContentResolver.query/insert/update/delete 对 ContentProvider 发起操作,通过各种 URI、selection、projection 等参数测试是否存在未授权访问或注入问题。

  • Binder/Service 调用

    • 对于导出的 Binder 接口(AIDL 服务或自定义 Binder),drozer 可尝试以 bindService 后通过反射或标准接口调用(如果接口已知)或尝试模糊化调用(更高级模块)。

  • 调用系统/应用 API(敏感操作模拟)

    • agent 作为一个 app,可直接调用 Android API(如读取联系人、发送 SMS、访问文件等)——前提是它拥有相应运行时权限或目标 app 的组件允许执行这些操作。

技战术上,drozer 把“人工用 Android Studio / adb 做的事情”自动化并脚本化,且把构造 Intent / ContentProvider 调用这种容易出错但很有价值的测试变为模块化流程。

五、防护建议(把理解转为防御)

理解 drozer 的原理后,你可以把防护措施总结为:

  • 明确 exported 的值,尽量不导出不必要的组件;对必须导出的组件要求 android:permission 且使用 signature 限制敏感功能。

  • Provider 对敏感数据使用 android:grantUriPermissions 与权限检查;对插入/更新/删除做严格校验。

  • 在组件入口处验证 Intent 的来源(检查 calling UID、action、data、extra 内容是否合法)。

  • 最小化授予权限,避免过度暴露。做静态/动态测试(如使用 drozer、Frida、MobSF)来发现漏失。

http://www.dtcms.com/a/487092.html

相关文章:

  • wordpress批量添加tag重庆网站优化服务
  • 数字化转型下,各类实验室软件如何构建高效合规的智能生态?
  • 网站建设纟金手指下拉壹陆英文网站的建设
  • Linux服务器编程实践26-TCP连接超时重连机制:超时时间计算与重连策略
  • 宁波建站平台网站突然打不开
  • 深圳哪家网站建设网页开发需求定制
  • h5游戏免费下载:避开红点
  • 在actix-web中创建一个提取器
  • 一个CTO的一天:Indie Team Kickoff
  • C++ 链表技巧
  • 贪心:Stall Reservations S(重写)
  • 商城网站有免费建设的吗网站开发的主要内容
  • 泉州企业网站设计招商网站建设网
  • 数据库主从同步原理等信息
  • 广西网站建设公司招聘iapp制作软件
  • 人工智能简史(2)
  • 5 网站建设的基本步骤是申请公司邮箱
  • android 16kb 内存适配
  • 数据安全指南-合规治理 2025 等保2.0测评实施 全球数据保护法规对比 数据分类分级管理 ISO27001与SOC2认证 跨境数据传输合规
  • LongVU论文阅读
  • h5游戏免费下载:开心消消乐
  • 做暖暖网站网站建设公司的市场定位
  • (ACP广源盛)DD3118(S)---USB3.0读卡器,支持双卡单待模式,产品规格介绍
  • 特朗普的比特币战略对加密市场周期的影响:从矿业到 Meme 生态的传导机制
  • 江苏省城乡住房建设厅网站模板出售网站源码
  • 你们的LoRaWAN网关能传多远?
  • 腾讯有服务器如何做网站专业网站建设团队
  • 【K8S】学习(一) 基础概念
  • 网站建设公司广告 晴天娃娃政务网站建设建议
  • iOS八股文之 Runtime