jojin1709/BUG-HUNTER-S-HANDBOOK
GitHub: jojin1709/BUG-HUNTER-S-HANDBOOK
一个面向 Android 移动安全测试的交互式综合指南,整合了工具索引、审计清单、CVSS 估算器及自动化侦察脚本,帮助安全人员系统化执行漏洞挖掘。
Stars: 1 | Forks: 0
# ⚡ Android Bug Hunter 手册



为 Android 安全研究员、Bug Bounty 猎手和渗透测试人员打造的一份交互式、现代化且全面的实战指南与安全门户。
它涵盖了逆向工程、动态插桩、IPC 组件攻击以及结合实战工具的 API 漏洞利用。
**由 [JOJIN JOHN](https://github.com/jojin1709) 开发**
## 目录
- [概述](#overview)
- [核心功能与模块](#key-capabilities--modules)
- [公开的 HackerOne 报告与漏洞分析](#disclosed-hackerone-reports--writeups)
- [22+ 工具仓库](#22-tool-repository)
- [逐步测试方法论路线图](#step-by-step-methodology-roadmap)
- [框架专项测试](#framework-specific-testing)
- [交互式审计清单与 CVSS 估算器](#interactive-audit-checklist--cvss-estimator)
- [快速上手与本地运行](#quick-start--local-usage)
- [PC 硬件与 AVD 建议](#pc-hardware--avd-recommendations)
- [安全、测试范围与边界](#safety-scope-and-boundaries)
- [许可协议与作者](#license-and-author)
## 概述
**Android Bug Hunter 手册**是一个用于移动安全评估的自动化、综合性参考门户。它将反编译工作流、动态 hook、组件攻击向量和 API 评估指南汇聚于一个统一且优质的暗色主题界面中。
### 本手册的初衷
Android 应用安全需要在不同执行环境中掌握多种工具(JADX、APKTool、Frida、Objection、Drozer、Burp Suite)。本手册通过提供结构化的逐步方法论、可复制的终端代码片段、实时计算器以及针对特定框架的 pipeline,简化了这一工作流。
## 公开的 HackerOne 报告与漏洞分析
精心挑选的已公开真实漏洞分析与研究博客,帮助建立漏洞利用思维:
### 硬编码凭证
- [通过硬编码 API secret 泄露所有上传文件](https://hackerone.com/reports/351555)
### WebView 与 Deep Links
- [Android 安全清单:WebView (Oversecured)](https://blog.oversecured.com/Android-security-checklist-webview/)
- [Deeplink 查询参数中的路径遍历 (#2553411)](https://hackerone.com/reports/2553411)
- [通过 DeepLink 实现账户接管 (#855618)](https://hackerone.com/reports/855618)
- [敏感信息泄露 (#401793)](https://hackerone.com/reports/401793)
### RCE / ACE 与代码执行
- [为什么动态代码加载对你的应用很危险 (Oversecured)](https://blog.oversecured.com/Why-dynamic-code-loading-could-be-dangerous-for-your-apps-a-Google-example/)
- [CVE-2020-8913:Google Play Core 库中的持久性任意代码执行](https://blog.oversecured.com/Oversecured-automatically-discovers-persistent-code-execution-in-the-Google-Play-Core-Library/)
- [TikTok:三个持久性任意代码执行漏洞](https://blog.oversecured.com/Oversecured-detects-dangerous-vulnerabilities-in-the-TikTok-Android-app/)
### 文件窃取与 Content Provider
- [Content Provider 中的 SQL 注入 (#291764)](https://hackerone.com/reports/291764)
- [Android 安全清单:任意文件窃取](https://blog.oversecured.com/Android-security-checklist-theft-of-arbitrary-files/)
- [易受本地文件窃取、JavaScript 注入和开放重定向攻击 (#499348)](https://hackerone.com/reports/499348)
- [通过未受保护的 Activity 窃取文件导致的 Token 泄露 (#288955)](https://hackerone.com/reports/288955)
### 认证与绕过
- [一次意外的价值 7 万美元的 Google Pixel 锁屏绕过](https://bugs.xdavidhu.me/google/2022/11/10/accidental-70k-google-pixel-lock-screen-bypass/)
- [生物识别安全功能绕过 (#637194)](https://hackerone.com/reports/637194)
- [由于漏洞 endpoint 导致的双因素认证绕过 (#202425)](https://hackerone.com/reports/202425)
### 会议演讲与课程
- [Android 应用逆向工程 101 (Maddie Stone)](https://maddiestone.github.io/AndroidAppRE/)
- [大规模攻破 Android 应用 (DEF CON)](https://www.youtube.com/watch?v=24MwHjqMjRk)
- [使用 Frida 黑客攻击移动应用 (David Coursey)](https://www.youtube.com/watch?v=xwyXgykedzk)
- [反调试与防篡改保护的采用 (论文)](https://stefanoberlato.it/publications/pdf/JISA20.pdf)
### 在线 APK 扫描器与反编译器
- [Guardsquare AppSweep 移动安全扫描器](https://www.guardsquare.com/appsweep-mobile-application-security-testing)
- [在线 Java APK 反编译器](http://www.javadecompilers.com/apk)
- [BeVigil 移动应用安全 OSINT 扫描器](https://bevigil.com/osint-api)
- [BlackDex - DEX 转储解包工具](https://github.com/CodingGay/BlackDex)
## 核心功能与模块
- **漏洞利用证明命令**:提供可直接执行的 `adb`、`objection`、`frida` 和 `drozer` 命令参数。
- **交互式 CVSS v3.1 与赏金估算器**:实时计算评分、向量字符串,并估算赏金范围($500 — $15,000+)。
- **自动化侦察 pipeline (`recon.sh`)**:提供可下载的 bash 脚本,集成了 `apkid`、`apktool`、`apkleaks` 和 `jadx`。
- **针对特定框架的 pipeline**:为 React Native(Hermes bundle 提取)、Flutter(`blutter` & `reFlutter`)和 Cordova 应用提供专属工作流。
- **交互式审计清单**:包含 12 个漏洞类别,带有 OWASP MASVS 标签,并支持通过 `localStorage` 进行进度追踪。
- **精选视频教程**:提供关于 Frida SSL pinning 绕过、JADX 反编译、Burp CA 证书安装和 Drozer 漏洞利用的 YouTube 实操视频。
## 22+ 工具仓库
| 工具类别 | 收录工具 | 直接操作 |
| --- | --- | --- |
| **静态分析** | JADX, APKTool, MobSF, apkleaks, TruffleHog, QARK | 一键复制安装与运行命令 |
| **动态分析与 Frida** | Frida, Objection, PlayIntegrityFix (Magisk) | Hook 脚本模板与命令 |
| **网络流量** | Burp Suite, mitmproxy | CA 证书安装工作流 |
| **IPC 与组件** | Drozer, ADB | 组件查询与路径遍历 |
| **逆向工程** | Ghidra, radare2/r2frida, blutter, reFlutter | Native ARM64 `.so` 逆向 |
| **实用工具与修补** | scrcpy, apksigner, zipalign, Waydroid, Corellium | 设备控制与 APK 签名 |
## 🛠️ Drozer 高级命令参考
| 命令 | 描述 | 示例 / 备注 |
| --- | --- | --- |
| `help` / `list` | 显示帮助菜单或列出可用模块 | `dz> list` |
| `run app.package.list` | 列出已安装的包 | `run app.package.list` |
| `run app.package.attacksurface -a
` | 显示攻击面(导出的组件) | `run app.package.attacksurface -a com.example.app` |
| `run app.package.info -a ` | 显示包的详细信息 | `run app.package.info -a com.example.app` |
| `run app.activity.info -a ` | 列出应用的 Activity | `run app.activity.info -a com.example.app` |
| `run app.provider.info -a ` | 列出 Content Provider | `run app.provider.info -a com.example.app` |
| `run app.service.info -a ` | 列出服务 | `run app.service.info -a com.example.app` |
| `run app.broadcast.info -a ` | 列出广播接收器 | `run app.broadcast.info -a com.example.app` |
| `run app.activity.start -a -n ` | 启动特定的 Activity | `run app.activity.start -a com.example.app -n MainActivity` |
| `run scanner.provider.injection -a ` | 检查 Content Provider 中的 SQL 注入 | `run scanner.provider.injection -a com.example.app` |
| `run scanner.provider.access -a ` | 检查 Content Provider 的访问问题 | `run scanner.provider.access -a com.example.app` |
| `run scanner.misc.debuggable -a ` | 检查应用是否可调试 | `run scanner.misc.debuggable -a com.example.app` |
| `run scanner.misc.exportedcomponents -a ` | 检查导出的组件 | `run scanner.misc.exportedcomponents -a com.example.app` |
| `run scanner.permissions.findleaks -a ` | 查找权限泄露 | `run scanner.permissions.findleaks -a com.example.app` |
| `run exploit.reinvokeactivity -a -n ` | 利用 Activity 的重新调用 | `run exploit.reinvokeactivity -a com.example.app -n MainActivity` |
| `run exploit.sharedprefs.read -a -p ` | 读取共享偏好设置文件 | `run exploit.sharedprefs.read -a com.example.app -p /data/.../config.xml` |
| `run exploit.sharedprefs.write -a -p ` | 修改共享偏好设置 | `run exploit.sharedprefs.write -a com.example.app -p /data/.../config.xml -k isAdmin -v true` |
| `run file.download -p ` | 从设备下载文件 | `run file.download -p /data/data/com.example.app/databases/db.sqlite` |
| `run scanner.webview.javascript` | 检测存在漏洞的 WebView JavaScript 接口 | `run scanner.webview.javascript` |
## 🔒 Burp Suite 系统 CA 证书与 ADB 命令
### 转换并将 Burp 证书安装到系统证书库 (`/system/etc/security/cacerts/`)
```
# 将 .der 转换为 .pem
openssl x509 -inform DER -in burp.der -out burp.pem
# 获取 subject hash(示例:abcd1234)
openssl x509 -inform PEM -subject_hash_old -in burp.pem | head -1
# 重命名并推送到 system trust store
mv burp.pem abcd1234.0
adb root && adb remount
adb push abcd1234.0 /system/etc/security/cacerts/
adb shell chmod 644 /system/etc/security/cacerts/abcd1234.0
adb reboot
```
### 快速命令参考
| 类别 | 命令 | 描述 |
| --- | --- | --- |
| **Emulator** | `emulator -list-avds` | 列出可用的 Android 虚拟设备 |
| **Emulator** | `emulator -avd Pixel4_API33 -writable-system -no-snapshot` | 启动带有可写系统权限的 emulator |
| **MobSF** | `docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest` | 启动 MobSF 容器 |
| **ADB** | `adb shell pm list packages -3` | 列出第三方包 |
| **ADB** | `adb shell getprop ro.product.cpu.abi` | 获取设备 CPU 架构 |
| **Frida** | `frida-ps -Uia` | 列出 USB 设备上正在运行的应用 |
| **Frida** | `frida --codeshare masbog/frida-android-unpinning-ssl -f -U` | 注入 SSL unpinning 脚本 |
| **Objection** | `objection -g explore` | 探索目标应用 |
| **Objection** | `android sslpinning disable` | 禁用 SSL 证书 pinning |
| **Objection** | `android root disable` | 禁用 root 检测 |
## ⚡ 自动化 Grep 敏感词脚本 (`Grep-Sensitive-Words.sh`)
递归搜索反编译后的 APK 源代码,查找 secret key、token、AES 加密配置和硬编码的 URL,并将结果输出到独立的文件中:
```
#!/usr/bin/env bash
# Grep-Sensitive-Words.sh - 自动化密钥提取
if [ -z "$1" ]; then echo "Usage: ./Grep-Sensitive-Words.sh "; exit 1; fi
SEARCH_DIR="$1"
mkdir -p grep_results
KEYWORDS=("accesskey" "admin" "aes" "api_key" "apikey" "checkClientTrusted" "crypt" "http:" "https:" "password" "pinning" "secret" "SHA256" "SharedPreferences" "superuser" "token" "X509TrustManager" "insert into")
for keyword in "${KEYWORDS[@]}"; do
SAFE_KEY=$(echo "$keyword" | sed 's/[: ]/_/g')
grep -EHirn --include=\*.{smali,xml,java,txt} "$keyword" "$SEARCH_DIR" > "grep_results/${SAFE_KEY}.txt"
done
echo "[+] Scan completed! Results stored in grep_results/"
```
## 📱 PIDCAT 精准 Logcat 过滤
捕获来自单一目标包 ID 的干净、精准的日志:
```
# 克隆 pidcat repository
git clone https://github.com/JakeWharton/pidcat.git
cd pidcat
# 实时过滤 logcat 以获取目标 package
python pidcat.py -s emulator-5554 com.target.app
```
## 逐步测试方法论路线图
```
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ 01. Recon & APKID │ ───► │ 02. Static & Secrets │ ───► │ 03. Dynamic & Frida │
└──────────────────────┘ └──────────────────────┘ └──────────┬───────────┘
│
▼
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ 06. Drozer Component│ ◄─── │ 05. GraphQL & Rate │ ◄─── │ 04. SSL Pinning │
│ Attacks │ │ Limit APIs │ │ Bypass │
└──────────┬───────────┘ └──────────────────────┘ └──────────────────────┘
│
▼
┌──────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐
│ 07. Storage & │ ───► │ 08. Native ARM64 │ ───► │ 09. Submission │
│ WebView Audit │ │ Memory Patching │ │ Report Studio │
└──────────────────────┘ └──────────────────────┘ └──────────────────────┘
```
## 框架专项测试
标准的 Java/Kotlin 反编译在非原生框架上会失效。请使用以下量身定制的 pipeline:
- **React Native**:提取 `assets/index.android.bundle` -> 通过 `hermes-dec` 反编译 Hermes 字节码 -> 使用 `js-beautify` 进行格式化。
- **Flutter (Dart AOT)**:提取 `lib/arm648a/libapp.so` -> 通过 **blutter** 重构 Dart 类 -> 通过 **reFlutter** 修补 SSL pinning。
- **Cordova**:通过 `apktool d` 解包 APK -> 审计 `assets/www/` 下的 HTML5 资产与插件桥接。
## 交互式审计清单与 CVSS 估算器
该门户包含一个涵盖 OWASP Mobile Top 10 核心漏洞的交互式审计清单:
- 没有权限检查的导出组件
- 不安全的本地数据存储 (`/data/data/`)
- WebView JS 接口注入 (`addJavascriptInterface`)
- 可被绕过的 SSL 证书 pinning
- 不安全的 Deep Links 与 Intent 重定向
- 生产环境开启的 `allowBackup` 与 `debuggable` 标志
- 硬编码的 API key 与 secret
- Firebase / Firestore 开放的数据库规则
- 损坏的 API 授权 (IDOR / BOLA)
- 点击劫持与覆盖滥用
- 任务劫持 (StrandHogg)
- 剪贴板数据泄露
## 快速上手与本地运行
### 前置条件
- 任意现代 Web 浏览器(Chrome、Firefox、Edge、Safari)。
- 可选:用于运行本地开发服务器的 Python 3。
### 本地服务器设置
```
# 克隆 repository
git clone https://github.com/jojin1709/BUG-HUNTER-S-HANDBOOK.git
# 导航至目录
cd BUG-HUNTER-S-HANDBOOK
# 本地 serve
python3 -m http.server 8000
```
在 Web 浏览器中打开 `http://localhost:8000`。
## PC 硬件与 AVD 建议
针对中端测试硬件的优化配置(例如:**Intel Core i5-12500H & 16GB RAM**):
- **设备型号**:Pixel 6 或 Pixel 5
- **系统镜像**:Android 13.0 (API Level 33) **Google APIs (x86_64)** — *请勿选择 Google Play 以保留 root 权限 (`adb root`)。*
- **内存分配**:`4096 MB` (4 GB)
- **CPU 核心**:`4 Cores`
- **图形渲染**:`Hardware - GLES 2.0`
## 安全、测试范围与边界
## 许可协议与作者
**由 [JOJIN JOHN](https://github.com/jojin1709) 开发**
采用 [MIT 许可协议](LICENSE)授权。标签:Android安全, 云资产清单, 后端开发, 多模态安全, 安全工具导航, 应用安全, 数据可视化, 移动端渗透测试, 逆向工程