ReversecLabs/drozer

GitHub: ReversecLabs/drozer

drozer 是一个用于Android系统的开源安全测试框架,帮助通过代理与控制台交互识别应用与设备的安全漏洞。

Stars: 4501 | Forks: 832

# drozer drozer 是用于 Android 的安全测试框架。 drozer 允许你通过扮演一个应用的角色来搜索应用和设备的安全漏洞,并与 Android 运行时、其他应用的 IPC 端点以及底层操作系统进行交互。 drozer 提供工具,帮助你使用、共享和理解公开的 Android 漏洞利用。 drozer 是开源软件,由 Reversec 维护。入门用户指南可在 [Reversec Labs](https://labs.reversec.com/tools/drozer/) 找到。 ## NOTE 这是一个被重写的 drozer 版本的 BETA 发布;此版本已更新以支持 python3。 目前存在以下已知问题: - 构建自定义代理的功能会导致 drozer 客户端崩溃。此功能在重生的 drozer 项目的 BETA 发布版本中属于范围之外。 ## Docker 容器 为了确保 drozer 可以在所有系统上运行,我们创建了一个包含可运行 drozer 构建的 Docker 容器。 * Docker 容器和基础设置说明请参考[这里](https://hub.docker.com/r/drozerdocker/drozer)。 * 构建你自己的 Docker 容器的说明请参考[这里](https://github.com/ReversecLabs/drozer/tree/develop/docker)。 ## 手动构建和安装 ### 软件前置条件 1. [Python3.8](https://www.python.org/downloads/) 2. [Protobuf](https://pypi.python.org/pypi/protobuf) 4.25.2 或更高版本 3. [Pyopenssl](https://pypi.python.org/pypi/pyOpenSSL) 22.0.0 或更高版本 4. [Twisted](https://pypi.python.org/pypi/Twisted) 18.9.0 或更高版本 5. [Distro](https://pypi.org/project/distro/) 1.8.0 或更高版本 6. [Java Development Kit](https://adoptopenjdk.net/releases.html) 11 或更高版本 ### 安装 你可以使用 `pip` 或 `pipx`(如果可用,优先使用)从 PyPI 安装 drozer 的最新版本: ``` pipx install drozer ``` 或者,你可以从 GitHub 下载单独的 [releases](https://github.com/ReversecLabs/drozer/releases/) 并运行: ``` pipx install ./drozer-*.whl ``` 如果尚未考虑过,建议运行: ``` pipx ensurepath ``` 以确保 `pipx` 安装的程序包出现在你的 `PATH` 中 ## 构建 要从源代码构建 drozer,可以运行: ``` git clone https://github.com/ReversecLabs/drozer.git cd drozer pip install . ``` 要针对特定 SDK 构建 Android 原生组件,可以将 `ANDROID_SDK` 环境变量设置为路径。例如: **Linux/macOS:** ``` export ANDROID_SDK=/home/drozerUser/Android/Sdk/platforms/android-34/android.jar ``` **Windows - PowerShell:** ``` New-Item -Path Env:\ANDROID_SDK -Value 'C:\Users\drozerUser\AppData\Local\Android\sdk\platforms\android-34\android.jar' ``` **Windows - cmd:** ``` set ANDROID_SDK = "C:\Users\drozerUser\AppData\Local\Android\sdk\platforms\android-34\android.jar" ``` 使用的 `d8` 工具的位置也可以通过设置 `D8` 来更改。 ## 用法 ### 安装代理 drozer 可以通过 Android Debug Bridge (adb) 安装。 在此处下载最新的 drozer Agent [这里](https://github.com/ReversecLabs/drozer-agent/releases/latest)。 ``` adb install drozer-agent.apk ``` ### 会话设置 你现在应该已经在 PC 上安装了 drozer 控制台,并在测试设备上运行了代理。现在,你需要将两者连接起来,就可以开始探索了。 我们将使用 drozer 代理中内置的服务器来实现这一点。首先,启动代理,选择“嵌入式服务器”选项,然后点击“启用”以启动服务器。你应该会看到服务器已启动的通知。 然后,按照以下选项之一操作。 #### 选项 1:通过网络连接到手机 默认情况下,drozer 代理监听所有接口上的 31415 端口的传入 TCP 连接。为了连接到代理,请运行以下命令: ``` drozer console connect --server ``` 如果你使用的是 Docker 容器,则等效命令为: ``` docker run --net host -it drozerdocker/drozer console connect --server ``` #### 选项 2:通过 USB 连接到手机 在某些场景下,通过网络连接到设备可能不可行。在这些场景中,我们可以利用 `adb` 的端口转发功能,通过 USB 建立连接。 首先,你需要设置一个合适的端口转发,以便你的 PC 可以连接到代理在模拟器内或设备上打开的 TCP 套接字。默认情况下,drozer 使用端口 31415: ``` adb forward tcp:31415 tcp:31415 ``` 现在,你可以通过连接到 `localhost`(或省略目标 IP)来连接 drozer 代理: ``` drozer console connect ``` ### 确认连接成功 你应该会看到 drozer 命令提示符: ``` Selecting ebe9fcc0c47b28da (Google sdk_gphone64_x86_64 12) .. ..:. ..o.. .r.. ..a.. . ....... . ..nd ro..idsnemesisand..pr .otectorandroidsneme. .,sisandprotectorandroids+. ..nemesisandprotectorandroidsn:. .emesisandprotectorandroidsnemes.. ..isandp,..,rotecyayandro,..,idsnem. .isisandp..rotectorandroid..snemisis. ,andprotectorandroidsnemisisandprotec. .torandroidsnemesisandprotectorandroid. .snemisisandprotectorandroidsnemesisan: .dprotectorandroidsnemesisandprotector. drozer Console (v3.0.0) dz> ``` 该提示符会确认你已连接到的设备的 Android ID,以及制造商、型号和 Android 软件版本。 你现在可以开始探索设备了。 ### 命令参考 | 命令 | 描述 | | ------------- |:-------------| | run | 执行一个 drozer 模块 | list | 显示当前会话中可执行的所有 drozer 模块列表。这会隐藏你没有适当权限运行的模块。 | | shell | 在设备上的代理进程上下文中启动交互式 Linux shell。 | | cd | 将某个命名空间挂载为会话的根目录,以避免反复输入完整的模块名称。 | | clean | 删除 Android 设备上由 drozer 存储的临时文件。 | | contributors | 显示对 drozer 框架和你系统上使用的模块有贡献的人员列表。 | | echo | 将文本打印到控制台。 | | exit | 终止 drozer 会话。 | | help | 显示有关特定命令或模块的帮助。 | | load | 加载包含 drozer 命令的文件并按顺序执行。 | | module | 从 Internet 查找并安装额外的 drozer 模块。 | | permissions | 显示授予 drozer 代理的权限列表。 | | set | 将值存储在变量中,该变量将作为环境变量传递给 drozer 生成的任何 Linux shell。 | | unset | 移除 drozer 传递给其生成的任何 Linux shell 的命名变量。 | ## 许可证 drozer 在 3-clause BSD License 下发布。完整细节请参见 LICENSE。 ## 联系项目 drozer 是开源软件,由社区的贡献使其变得出色。 如需完整的源代码、报告错误、提出功能建议和贡献补丁,请访问我们的 Github 项目: 错误报告、功能请求、评论和问题可在此处提交:[提交反馈](https://github.com/ReversecLabs/drozer/issues)
标签:Android Runtime, Android安全评估, beta发布, Distro, Docker容器, drozer, IPC, Java 11, OS安全, pipx安装, Protobuf, PyOpenSSL, Python3, Reversec Labs, SEO: Android security framework, SEO: mobile security testing, SEO: open source Android security tool, Twisted, 云资产清单, 公开漏洞利用, 多语言支持, 安全测试框架, 容器化安全工具, 开源安全工具, 手动安装, 接口测试, 攻击面发现, 目录枚举, 移动安全, 请求拦截, 逆向工具, 逆向工程, 逆向工程平台