常用工具
信息收集:AppinfoScanner
https://github.com/kelvinBen/AppInfoScanner [1]
一款适用于以HW行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具,可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态 WEB 站点中关键的资产信息并提供基本的信息输出,如:Title、Domain、CDN、指纹信息、状态信息等。
-
下载
git clone https://github.com/kelvinBen/AppInfoScanner.git
cd AppInfoScanner
python -m pip install -r requirements.txt
-
运行
python app.py android|ios|web -i APK|DEX|IPA|Mach-o|web File
评估框架:MobSF
https://github.com/MobSF/Mobile-Security-Framework-MobSF [2]
移动安全框架(MobSF)是 Android、iOS 和 Windows Mobile 中移动应用程序的安全研究平台。MobSF 可用于各种用例,如移动应用安全、渗透测试、恶意软件分析和隐私分析。静态分析器支持流行的移动端二进制文件,如 APK、IPA、APPX 和源码。同时,动态分析器支持双端应用程序,并为交互式仪器测试、运行时数据和网络全流量分析产品提供平台。
docker pull opensecurity/mobile-security-framework-mobsf:latest
docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:lates
# Default username and password: mobsf/mobsf
移动端渗透系统:mobexler
https://mobexler.com [3]
Mobexler 是基于 Elementary OS 的定制虚拟机,旨在帮助进行 Android 和 iOS 应用程序的渗透测试。Mobexler 预装了各种开源工具、脚本等黑客必备软件,这些都是安全测试 Android 和 iOS 应用程序所必需的。
解析工具:AppMessenger
https://github.com/sulab999/AppMessenger [4]
一款适用于以 APP 病毒分析、APP 漏洞挖掘、APP 开发、HW 行动/红队/渗透测试团队为场景的移动端(Android、iOS、鸿蒙)辅助分析工具,可以帮助 APP 开发工程师、病毒分析师、漏洞/安全研究员提高工作效率,帮助渗透测试工程师、攻击队成员/红队成员快速收集到移动端中关键的资产信息并提供基本的信息输出,如:包名(packageName)、版本(versionNameversionCode)、应用签名(Signature)、文件MD5、SDK、URL、APP 漏洞等信息。
插桩工具:Frida
https://github.com/frida/frida [5]
Firda 是一款易用的跨平 Hook 工具, Java 层到 Native 层的 Hook 无所不能,是一种动态的插桩工具,可以插入代码到原生 App 的内存空间中,动态的去监视和修改行为。
注意事项:与 Xposed 无法共存。
-
本地安装 frida、frida-tools、frida-dexdump
pip install frida frida-tools frida-dexdump
-
移动设备安装 frida-server 并运行
$ adb devices
$ adb root
$ adb push frida-server /data/local/tmp/
$ adb shell "chmod 755 /data/local/tmp/frida-server"
$ adb shell "/data/local/tmp/frida-server &"
$ adb shell ps | grep frida-server
-
端口转发
adb forward tcp:27042 tcp:27042
-
获取进程
frida-ps -U
frida-ps -R
获得模拟器位数:getprop ro.product.cpu.abi
脱壳脚本:frida-dexdump
https://github.com/hluwa/frida-dexdump [6]
frida-dexdump 是一种 FRIDA 工具,用于查找 DEX 并将其转储到内存中,以支持安全工程师分析恶意软件。
-
本地安装
pip install frida-dexdump
-
脱壳命令
frida-dexdump -U -f 包名称 -d -o /tmp/dexdump
脱壳脚本:BlackDex
https://github.com/CodingGay/BlackDex [7]
BlackDex 是一个运行在 Android 上的脱壳工具,支持 5.0~12,无需依赖任何环境,任何手机都可以使用,包括模拟器。只需几秒,即可对已安装包括未安装的 APK 进行脱壳。
抓包利器:r0capture
https://github.com/r0ysue/r0capture?tab=readme-ov-file [8]
仅限安卓平台,无视所有证书校验或绑定、通杀 TCP/IP 四层模型中应用层的全部协议、通杀所有应用层框架、无视加固。
-
Spawn 模式
python3 r0capture.py -U -f com.coolapk.market -v
-
Attach 模式,抓包内容保存成 pcap 文件供后续分析
python3 r0capture.py -U com.qiyi.video -v -p iqiyi.pcap
老版本 Frida 使用包名,新版本 Frida 使用 APP 名。 APP 名必须是点开应用后,frida-ps -U 显示的那个应用名字。
抓包环境搭建
模拟器:MuMu 12
第一步:Burp 导出证书
文件名以.der
结尾。
第二步:转换 pem 证书
需要用到openssl
(以 kali 为例),将der
证书复制到 kali 中,用openssl
进行处理:
openssl x509 -inform der -in burp.der -out bp.pem
openssl x509 -subject_hash_old -in bp.pem
mv bp.pem 9a5ba575.0
也可以使用在线转换网站:http://web.chacuo.net/netsslcer2pem [9]
将pem
格式的证书复制到 Windows 下。
第三步:修改 MuMu 配置
在“设置中心”将“磁盘共享”设置为“可写系统盘”。
开启手机 Root 权限。
重新启动。
第四步:ADB 传输证书
在 MuMu 安装目录的 shell 文件夹下,存在adb.exe
。
D:ProgramsMuMuPlayer12shell>adb.exe devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
连接:
D:ProgramsMuMuPlayer12shell>adb.exe connect 127.0.0.1:16384
connected to 127.0.0.1:16384
D:ProgramsMuMuPlayer12shell>adb root
切换到模拟器点击允许。
传输pem
证书:
D:ProgramsMuMuPlayer12shell>adb.exe push D:/tools/Burp证书/9a5ba575.0 /system/etc/security/cacerts/
D:/tools/Burp证书/9a5ba575.0: 1 file pushed, 0 skipped. 3.7 MB/s (1326 bytes in 0.000s)
进入交互环境,查看文件是否存在:
D:ProgramsMuMuPlayer12shell>adb.exe shell
ishtar:/ # cd /system/etc/security/cacerts
ishtar:/ # ls
发现传输的文件是没有后缀的,进行修改:
ishtar:/system/etc/security/cacerts # cp 9a5ba57 9a5ba575.0
ishtar:/system/etc/security/cacerts # rm 9a5ba57
第五步:抓包测试
模拟器上修改网络配置。
可以正常抓包,也没有弹窗警告。
抓不到数据包原因
抓不到数据包有情况两种,一种是代理的原因,另一种是证书的原因。
代理原因
APP 在启动的时候检测是否开启了代理模式,如果开启了代理模式,就会出现无法连接的情况。
证书原因
APP 接收数据是利用抓包软件的证书来进行交互,但是服务端去校验证书的时候发现和 APP 的证书不一致。
如果数据走的 HTTPS 协议,那么数据包有三种验证情况:
-
无检验,客户端不存在证书校验,服务器也不存在证书校验。 -
单项校验,客户端存在校验服务端证书,服务器也不存在证书校验。 -
双向校验,客户端存在证书校验,服务器也存在证书校验。
绕过反代理
通过 proxifier 对模拟器进行代理转发。
绕过证书校验
Xposed + JustTrustMe + JustMePlush
Xposed 是一个可以改变系统行为的框架,通过在 Android 应用程序中插入自己的代码来实现。
注意事项:与 Frida 无法共存。
JustTrustMe 是一个 Xposed 模块,用于绕过 Android 应用中的 SSL 证书检查。
JustMePlus 是一个 Xposed 模块,它扩展了 JustTrustMe 的功能,提供了更多的选项和更好的用户体验。
先安装 Xposed 框架,然后在 Xposed 安装器中激活 JustTrustMe 和 JustMePlus 模块。以下是如何操作的基本步骤:
-
下载安装 Xposed 框架 -
重启设备以激活 Xposed -
安装 JustTrustMe 和 JustMePlus -
重启设备 -
开启代理 -
在 Xposed 中启用 JustTrustMe 和 JustMePlus 模块 -
重启设备(其实就是利用这两个模块,把 APP 里面的检测功能屏蔽掉) -
打开 JustMePlush,选择要抓包的 APP
Xposed 框架只是解决单向证书校验,如果是双向验证还是需要用 Frida 来解决。
安装 Magisk
https://mumu.163.com/help/20240202/35044_1136675.html [10]
第一步:下载 Kitsune Mask
下载链接:https://github.com/HuskyDG/magisk-files/releases [11]
安装后点击完成。
重启模拟器,启动 Kitsune Mask。
第二步:安装 Magisk
在 Kitsune Mask 界面,点击 Magisk 栏目右侧的安装。
选择“直接安装(直接修改/system)”。
出现 ALL done! 说明安装成功,重启模拟器。
再次打开 Kitsune Mask。
安装 LSPosed 框架
项目地址:https://github.com/LSPosed/LSPosed [12]
第一步:开启 Zygisk
点击“设置”。
开启“Zygisk”。
第二步:推送 LSPosed 框架
将下载的 LSPosed-v1.9.2-7024-zygisk-release.zip 传到/sdcard/Download
目录下。
D:ProgramsMuMuPlayer12shell>adb.exe push D:/tools/APP渗透工具/LSPosed
-v1.9.2-7024-zygisk-release.zip /sdcard/Download/LSPosed-v1.9.2-7024-zygisk-release.zip
D:/tools/APP渗透工具/LSPosed-v1.9.2-7024-zygisk-releas...ile pushed, 0 skipped. 33.3 MB/s (2462055 bytes in 0.071s)
第三步:安装 LSPosed 框架
从本地安装。
选择框架所在目录。
安装框架。
出现下图内容说明安装成功。
重启模拟器。
虽然显示安装成功,但在桌面上找不到 LSPosed 图标,因为 LSPosed 是寄生到系统,默认隐藏的。
第三步:安装 manager.apk
解压 LSPosed-v1.9.2-7024-zygisk-release.zip。
将 manager.apk 拖到模拟器,直接安装。
安装 JustTrustMe++
项目地址:https://github.com/JunGe-Y/JustTrustMePP/tree/master/app/release [13]
直接推拽安装即可。
引用链接
[1]
: https://github.com/kelvinBen/AppInfoScanner[2]
: https://github.com/MobSF/Mobile-Security-Framework-MobSF[3]
https://mobexler.com: https://mobexler.com/[4]
: https://github.com/sulab999/AppMessenger[5]
: https://github.com/frida/frida[6]
: https://github.com/hluwa/frida-dexdump[7]
: https://github.com/CodingGay/BlackDex[8]
: https://github.com/r0ysue/r0capture?tab=readme-ov-file[9]
: http://web.chacuo.net/netsslcer2pem[10]
: https://mumu.163.com/help/20240202/35044_1136675.html[11]
https://github.com/HuskyDG/magisk-files/releases: about:blank[12]
: https://github.com/LSPosed/LSPosed[13]
: https://github.com/JunGe-Y/JustTrustMePP/tree/master/app/release
原文始发于微信公众号(走在网安路上的哥布林):APP 渗透抓包环境
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论