学习使用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. 安装步骤
电脑端安装
- 运行
setup.exe(Windows)或相应平台的安装包 - 按照向导完成安装(一路Next即可)
移动端安装
- 安装
agent.apk到Android设备(真机或模拟器) - 推荐使用雷电模拟器进行测试
配置文件设置
- 在用户目录下(
C:\Users\用户名)创建.drozer_config文件 - 添加以下内容:
[executables]
java=C:\Java\jdk1.8.0\bin\java.exe
javac=C:\Java\jdk1.8.0\bin\javac.exe
注意:根据实际JDK安装路径修改上述路径
4. 环境验证
- 在Android设备上运行Drozer Agent
- 点击右下角的"关闭"按钮开启服务(按钮会变为"开启")
- 确保ADB环境变量已配置
- 执行以下命令进行端口转发:
adb forward tcp:31415 tcp:31415
- 连接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实现登录绕过
- 使用命令检测暴露的Activity:
run app.activity.info -a <包名>
- 调用可疑的Activity组件:
run app.activity.start --component <包名> <组件名>
- 观察是否绕过认证直接进入应用
案例2:组件拒绝服务漏洞
- 检测暴露的Broadcast组件:
run app.broadcast.info -a <包名>
- 向暴露的组件发送空action:
run app.broadcast.send --component <包名> <广播名>
- 观察应用是否崩溃
五、修复建议
-
组件导出控制:
- 将不必要导出的组件设置为不导出
- 在AndroidManifest.xml中,将组件的
android:exported属性设置为false
-
输入验证:
- 对所有接收的Intent数据进行严格验证
- 处理异常情况,避免应用崩溃
-
权限控制:
- 为导出的组件设置适当的权限保护
- 使用签名级权限保护敏感组件
-
安全配置:
- 避免在组件中使用
android:permission属性为"null" - 对Content Provider实现适当的URI权限控制
- 避免在组件中使用
六、注意事项
-
使用真机测试时:
- 确保开启USB调试模式
- 使用数据线连接电脑
-
测试前应获得应用所有者授权
-
某些操作可能导致应用崩溃,测试前做好数据备份
-
对于商业应用,建议在测试环境中进行审计
通过本指南,您可以全面了解Drozer框架的基本使用方法和常见漏洞检测技术。实际应用中,还需要结合具体应用的特点和安全需求进行深入分析。