学习使用drozer审计安卓app
字数 1425 2025-08-22 12:22:24

Drozer安卓应用安全审计框架使用指南

一、Drozer简介

Drozer是一个专门用于审计Android应用程序四大组件(Activity、Service、Broadcast Receiver和Content Provider)安全性的漏洞检测框架。它能够帮助安全研究人员发现Android应用中的各种安全漏洞,如组件暴露、权限绕过、拒绝服务等。

二、环境搭建

1. 系统要求

  • Python 2.7环境
  • JDK(Java开发工具包)安装

2. 软件下载

  • 官网下载:https://labs.f-secure.com/tools/drozer/
  • 备用下载(包含所有必要文件):
    • 链接:http://pan.baidu.com/s/1gfI0hLT
    • 密码:c78h

3. 安装步骤

电脑端安装

  1. 运行setup.exe(Windows)或相应平台的安装包
  2. 按照向导完成安装(一路Next即可)

移动端安装

  1. 安装agent.apk到Android设备(真机或模拟器)
  2. 推荐使用雷电模拟器进行测试

配置文件设置

  1. 在用户目录下(C:\Users\用户名)创建.drozer_config文件
  2. 添加以下内容:
[executables]
java=C:\Java\jdk1.8.0\bin\java.exe
javac=C:\Java\jdk1.8.0\bin\javac.exe

注意:根据实际JDK安装路径修改上述路径

4. 环境验证

  1. 在Android设备上运行Drozer Agent
  2. 点击右下角的"关闭"按钮开启服务(按钮会变为"开启")
  3. 确保ADB环境变量已配置
  4. 执行以下命令进行端口转发:
adb forward tcp:31415 tcp:31415
  1. 连接Drozer控制台:
drozer console connect

三、Drozer常用命令

1. 查找攻击面

run app.package.attacksurface <包名>

2. Activity组件审计

  • 查看Activity组件信息:
run app.activity.info -a <包名>
  • 调用Activity组件(用于检测登录绕过):
run app.activity.start --component <包名> <组件名>

3. Broadcast Receiver审计

  • 查看Broadcast组件:
run app.broadcast.info -a <包名>
  • 检测拒绝服务漏洞:
    • 发送空action:
    run app.broadcast.send --component <包名> <广播名>
    
    • 发送空extras:
    run app.broadcast.send --action <广播名>
    

4. Service组件审计

  • 查看Services组件:
run app.service.info -a <包名>
  • 调用服务组件:
run app.service.start --action <服务名> --component <包名> <服务名>

5. Content Provider审计

  • 检测可访问的URL:
run scanner.provider.finduris -a <包名>
  • 查询URL的数据:
run app.provider.query <url>
  • 查找SQL注入点:
run scanner.provider.injection -a <包名>
  • 检测目录遍历漏洞:
run scanner.provider.traversal -a <包名>

四、实践案例

案例1:利用暴露的Activity实现登录绕过

  1. 使用命令检测暴露的Activity:
run app.activity.info -a <包名>
  1. 调用可疑的Activity组件:
run app.activity.start --component <包名> <组件名>
  1. 观察是否绕过认证直接进入应用

案例2:组件拒绝服务漏洞

  1. 检测暴露的Broadcast组件:
run app.broadcast.info -a <包名>
  1. 向暴露的组件发送空action:
run app.broadcast.send --component <包名> <广播名>
  1. 观察应用是否崩溃

五、修复建议

  1. 组件导出控制

    • 将不必要导出的组件设置为不导出
    • 在AndroidManifest.xml中,将组件的android:exported属性设置为false
  2. 输入验证

    • 对所有接收的Intent数据进行严格验证
    • 处理异常情况,避免应用崩溃
  3. 权限控制

    • 为导出的组件设置适当的权限保护
    • 使用签名级权限保护敏感组件
  4. 安全配置

    • 避免在组件中使用android:permission属性为"null"
    • 对Content Provider实现适当的URI权限控制

六、注意事项

  1. 使用真机测试时:

    • 确保开启USB调试模式
    • 使用数据线连接电脑
  2. 测试前应获得应用所有者授权

  3. 某些操作可能导致应用崩溃,测试前做好数据备份

  4. 对于商业应用,建议在测试环境中进行审计

通过本指南,您可以全面了解Drozer框架的基本使用方法和常见漏洞检测技术。实际应用中,还需要结合具体应用的特点和安全需求进行深入分析。

Drozer安卓应用安全审计框架使用指南 一、Drozer简介 Drozer是一个专门用于审计Android应用程序四大组件(Activity、Service、Broadcast Receiver和Content Provider)安全性的漏洞检测框架。它能够帮助安全研究人员发现Android应用中的各种安全漏洞,如组件暴露、权限绕过、拒绝服务等。 二、环境搭建 1. 系统要求 Python 2.7环境 JDK(Java开发工具包)安装 2. 软件下载 官网下载:https://labs.f-secure.com/tools/drozer/ 备用下载(包含所有必要文件): 链接:http://pan.baidu.com/s/1gfI0hLT 密码:c78h 3. 安装步骤 电脑端安装 运行 setup.exe (Windows)或相应平台的安装包 按照向导完成安装(一路Next即可) 移动端安装 安装 agent.apk 到Android设备(真机或模拟器) 推荐使用雷电模拟器进行测试 配置文件设置 在用户目录下( C:\Users\用户名 )创建 .drozer_config 文件 添加以下内容: 注意:根据实际JDK安装路径修改上述路径 4. 环境验证 在Android设备上运行Drozer Agent 点击右下角的"关闭"按钮开启服务(按钮会变为"开启") 确保ADB环境变量已配置 执行以下命令进行端口转发: 连接Drozer控制台: 三、Drozer常用命令 1. 查找攻击面 2. Activity组件审计 查看Activity组件信息: 调用Activity组件(用于检测登录绕过): 3. Broadcast Receiver审计 查看Broadcast组件: 检测拒绝服务漏洞: 发送空action: 发送空extras: 4. Service组件审计 查看Services组件: 调用服务组件: 5. Content Provider审计 检测可访问的URL: 查询URL的数据: 查找SQL注入点: 检测目录遍历漏洞: 四、实践案例 案例1:利用暴露的Activity实现登录绕过 使用命令检测暴露的Activity: 调用可疑的Activity组件: 观察是否绕过认证直接进入应用 案例2:组件拒绝服务漏洞 检测暴露的Broadcast组件: 向暴露的组件发送空action: 观察应用是否崩溃 五、修复建议 组件导出控制 : 将不必要导出的组件设置为不导出 在AndroidManifest.xml中,将组件的 android:exported 属性设置为 false 输入验证 : 对所有接收的Intent数据进行严格验证 处理异常情况,避免应用崩溃 权限控制 : 为导出的组件设置适当的权限保护 使用签名级权限保护敏感组件 安全配置 : 避免在组件中使用 android:permission 属性为"null" 对Content Provider实现适当的URI权限控制 六、注意事项 使用真机测试时: 确保开启USB调试模式 使用数据线连接电脑 测试前应获得应用所有者授权 某些操作可能导致应用崩溃,测试前做好数据备份 对于商业应用,建议在测试环境中进行审计 通过本指南,您可以全面了解Drozer框架的基本使用方法和常见漏洞检测技术。实际应用中,还需要结合具体应用的特点和安全需求进行深入分析。