使用Drozer安卓调试手册
字数 1401 2025-08-22 12:22:36

Drozer安卓调试手册 - 详细教学文档

一、环境准备与工具安装

1. 所需工具

  • Windows 10系统
  • 夜神模拟器
  • Python 2.7环境
  • ADB工具
  • Drozer框架
  • Drozer Agent.apk

2. 安装配置

  1. Python 2.7

    • 安装Python 2.7
    • 设置环境变量:将Python安装目录添加到系统PATH
  2. ADB工具

    • 安装Android SDK或单独下载ADB
    • 设置环境变量:将ADB所在目录添加到系统PATH
  3. Drozer安装

    • 将Drozer安装在Python2的Scripts目录下
  4. Agent.apk安装

    • 将agent.apk安装到模拟器中

二、环境启动与连接

1. 启动模拟器环境

  1. 启动夜神模拟器
  2. 安装并打开agent.apk,点击"Embedded Server"开始监听

2. ADB连接

  1. 检查设备连接:

    adb devices
    
    • 如果找不到设备,需要在模拟器bin目录下启动cmd
  2. 端口转发:

    adb forward tcp:31415 tcp:31415
    
  3. 查看所有包名:

    adb shell pm list package
    

3. 启动Drozer控制台

  1. 设置编码:

    set PYTHONIOENCODING=UTF-8
    
  2. 连接设备:

    drozer console connect
    

三、基础信息收集

1. 包信息查询

  1. 列出所有包:

    run app.package.list
    
  2. 搜索特定包:

    run app.package.list -f 包名
    
  3. 获取包详细信息:

    run app.package.info -a 包名
    
  4. 获取应用清单:

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

2. 攻击面分析

  1. 获取攻击面:
    run app.package.attacksurface com.mwr.example.sieve
    

四、组件分析与利用

1. Activity组件

  1. 检查导出的Activity:

    run app.activity.info -a com.mwr.example.sieve
    
  2. 检查启动意图(主Activity):

    run app.package.launchintent com.mwr.example.sieve
    
  3. 调用导出的Activity:

    run app.activity.start --component <package_name> <full_activity_name>
    

2. Service组件

  1. 获取服务信息:

    run app.service.info -a com.mwr.example.sieve
    
  2. 启动服务:

    run app.service.start --action 服务名 --component 包名 服务名
    
  3. 利用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
    
  4. 利用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组件

  1. 获取广播接收器信息:

    run app.broadcast.info -a com.mwr.example.browser
    
  2. 发送广播:

    run app.broadcast.send --action com.myapp.CORRECT_CREDS
    
  3. 广播嗅探:

    run app.broadcast.sniff --action android.intent.action.BATTERY_CHANGED
    

4. Content Provider组件

  1. 获取内容提供者信息:

    run app.provider.info -a com.mwr.example.sieve
    
  2. 查找内容URI:

    run app.provider.finduri com.mwr.example.sieve
    
  3. 查询内容提供者数据:

    run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords
    
  4. 插入数据:

    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
    
  5. 读取文件:

    run app.provider.read content://com.mwr.example.sieve.FileBackupProvider/system/etc/hosts
    

五、漏洞扫描

1. 扫描暴露的组件

  1. 查找暴露的Activity:

    run scanner.provider.finduris -a 包名
    
  2. 检测注入漏洞:

    run scanner.provider.injection -a com.mwr.example.sieve
    
  3. 检测数据泄露:

    run scanner.provider.finduris -a com.xxx.xzxx
    
  4. 检测目录遍历:

    run scanner.provider.traversal -a com.mwr.example.sieve
    
  5. 自动化遍历检测:

    run scanner.provider.traversal -a content://com.mwr.example.sieve.FileBackupProvider
    

2. 其他扫描

  1. 查找可浏览Activity:

    run scanner.activity.browsable
    
  2. 检查WebView可利用性:

    run scanner.misc.checkjavascriptbridge -a com.vulnerable.js
    

六、高级利用技术

1. 权限相关

  1. 查找具有特定权限的应用:

    run app.package.list -p android.permission.INSTALL_PACKAGES
    
  2. 查找使用特定UID的应用:

    run app.package.list -u 1000
    
  3. 查找处理特定MIME类型的应用:

    run app.activity.forintent --action android.intent.action.VIEW --mimetype application/pdf
    

2. 调试与备份

  1. 检查应用是否允许备份:

    run app.package.backup -f com.mwr.example.sieve
    
  2. 检查应用是否可调试:

    run app.package.debuggable -f sieve
    
  3. 以应用身份运行命令:

    run-as com.mwr.example.sieve
    

3. 剪贴板操作

  1. 查看剪贴板内容:
    run post.capture.clipboard
    

七、APK分析与修改

1. 反编译与重打包

  1. 使用apktool反编译:

    java -jar apktool.jar d com.joeykrim.rootcheck.apk rootcheck
    
  2. 重新编译应用:

    java -jar apktool.jar b rootcheck/ rootcheck-modified.apk
    
  3. 签名APK:

    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mykey.keystore rootcheck-modified.apk alias_name
    

2. 签名验证

  1. 基本验证:

    jarsigner.exe -verify APK文件路径
    
  2. 详细验证:

    jarsigner.exe -verify -verbose -certs APK文件路径
    

八、其他安全检测

1. 敏感信息检测

  1. 使用ApkAnalyser提取敏感信息

2. 常见漏洞检测

  1. 劫持检测:HijackActivity
  2. 二次打包风险:检查allowBackup值
  3. 应用调试风险:检查allowBackup值
  4. 二次签名漏洞测试
  5. 边信道信息泄漏:观察adb logcat输出
  6. 代码反编译风险分析

九、总结

本手册详细介绍了使用Drozer进行Android应用安全测试的全过程,从环境搭建到各种组件的测试方法,涵盖了Activity、Service、Broadcast Receiver和Content Provider四大组件的安全检测技术,以及APK反编译、重打包和签名验证等高级技术。通过本手册,安全研究人员可以全面了解Android应用的安全测试方法,发现潜在的安全漏洞。

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连接 检查设备连接: 如果找不到设备,需要在模拟器bin目录下启动cmd 端口转发: 查看所有包名: 3. 启动Drozer控制台 设置编码: 连接设备: 三、基础信息收集 1. 包信息查询 列出所有包: 搜索特定包: 获取包详细信息: 获取应用清单: 2. 攻击面分析 获取攻击面: 四、组件分析与利用 1. Activity组件 检查导出的Activity: 检查启动意图(主Activity): 调用导出的Activity: 2. Service组件 获取服务信息: 启动服务: 利用AuthService: 利用CryptoService: 3. Broadcast Receiver组件 获取广播接收器信息: 发送广播: 广播嗅探: 4. Content Provider组件 获取内容提供者信息: 查找内容URI: 查询内容提供者数据: 插入数据: 读取文件: 五、漏洞扫描 1. 扫描暴露的组件 查找暴露的Activity: 检测注入漏洞: 检测数据泄露: 检测目录遍历: 自动化遍历检测: 2. 其他扫描 查找可浏览Activity: 检查WebView可利用性: 六、高级利用技术 1. 权限相关 查找具有特定权限的应用: 查找使用特定UID的应用: 查找处理特定MIME类型的应用: 2. 调试与备份 检查应用是否允许备份: 检查应用是否可调试: 以应用身份运行命令: 3. 剪贴板操作 查看剪贴板内容: 七、APK分析与修改 1. 反编译与重打包 使用apktool反编译: 重新编译应用: 签名APK: 2. 签名验证 基本验证: 详细验证: 八、其他安全检测 1. 敏感信息检测 使用ApkAnalyser提取敏感信息 2. 常见漏洞检测 劫持检测:HijackActivity 二次打包风险:检查allowBackup值 应用调试风险:检查allowBackup值 二次签名漏洞测试 边信道信息泄漏:观察adb logcat输出 代码反编译风险分析 九、总结 本手册详细介绍了使用Drozer进行Android应用安全测试的全过程,从环境搭建到各种组件的测试方法,涵盖了Activity、Service、Broadcast Receiver和Content Provider四大组件的安全检测技术,以及APK反编译、重打包和签名验证等高级技术。通过本手册,安全研究人员可以全面了解Android应用的安全测试方法,发现潜在的安全漏洞。