本文发布于463天前,本文最后更新于458 天前,其中的信息可能已经过时,如有错误请留言或评论。
本节知识点
- 单向校验-XP框架&Frida&HOOK
- 这个单向校验上一节讲到过
- 双向校验-Frida&HOOK&导入证书
- 单项双向-逆向删除反代码重打包
在app资产收集这方面,遇上的大部分都是单向双向校验(是最多的),代理方面的验证(上节课讲的就可以绕过)不是很多
➢APP-综合分析-Mobexler&MobSF识别
了解
- 移动安全框架 (MobSF) 是一种自动化的一体化移动应用程序 (Android/iOS/Windows) 渗透测试、恶意软件分析和安全评估框架,能够执行静态和动态分析。MobSF 支持移动应用程序二进制文件(APK、XAPK、IPA 和 APPX)以及压缩源代码,并提供 REST API 以与您的 CI/CD 或 DevSecOps 管道无缝集成。动态分析器可帮助您执行运行时安全评估和交互式仪器测试。
- 这个用处还是比较大,所以可以安装一下,下面给出了两种安装方式
工具使用
Mobexler
- Mobexler是基于Elementary OS的定制虚拟机,旨在帮助进行Android和iOS应用程序的渗透测试。Mobexler预装了各种开源工具,脚本,黑客必备软件等,这些都是安全测试Android和iOS应用程序所必需的。其中就包含自带了MobSF。
- 官网地址:https://mobexler.com/
- 小迪给的这个镜像16个G,在家家里没wifi,流量顶不住啊,就没下载
fx8
- 还有一个就是之前在信息打点时候讲的一个红队武器库项目,f8x,可以自动化一键部署搭建MobSF
- f8x项目地址:https://github.com/ffffffff0x/f8x
- 功能很强,可以搭建很多环境,详细见项目GitHub地址
- Download
- Download via CF Workers [Recommend]
wget : wget -O f8x https://f8x.io/ curl : curl -o f8x https://f8x.io/
- github raw
wget : wget -O f8x https://raw.githubusercontent.com/ffffffff0x/f8x/main/f8x curl : curl -o f8x https://raw.githubusercontent.com/ffffffff0x/f8x/main/f8x
- Download via CF Workers [Recommend]
- Usage
bash f8x -h bash f8x -mobsf
- 安装好MobSF后
docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
- 就是有一点,这个玩意儿有点吃内存,我kali虽然只分配了2G,但是跑这个直接给我用了1.5G
搭建好之后就可以进行使用,分析apk文件,若能发现有key\pem等证书文件(有的证书还有安装密码,需要知道安装密码),通过反编译将其提取出来安装到BP中的话就可以绕过双向验证。这样在抓包的时候就可以突破双向验证
➢APP-某社交-双向证书绕过&Frida&HOOK
了解
- r0capture仅限安卓平台,测试安卓7、8、9、10、11可用 ;无视所有证书校验或绑定,不用考虑任何证书的事情;通杀TCP/IP四层模型中的应用层中的全部协议;通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等、及它们的SSL版本;通杀所有应用层框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;无视加固,不管是整体壳还是二代壳或VMP,不考虑加固事情
- Firda 是一款易用的跨平Hook工具, Java层到Native层的Hook无所不能,是一种 动态 的插桩工具,可以插入代码到原生App的内存空间中,动态的去监视和修改行为,原生平台包括Win、Mac、Linux、Android、iOS全平台。
测试环境
- Python3 夜神模拟器(夜神安装XP直接在应用商店搜索就能安装,很方便) r0capture frida-server Burpsuite wireshark
测试流程
- BP监听网卡及端口
- 开启wifi代理后(包括使用app代理),app界面无返回,BP基本无数据包,显示网络异常,关闭后恢复正常
- 开启XP开启代理之后发现app界面还是返回不了,显示你的网络出错了,网络异常等
- 开启某营地进行检测是否配置正确,发现可以正常抓取到数据包,说明XP模块和代理正常
- 以上说明该app不是单向验证,是双向验证,解决方案如下三种:(小迪推荐第二种)
前置
- 本地安装Frida
pip install frida pip install frida-tools pip list #可以查看已经按照的库,查看frida的版本为16.1.11(这里看自己安装的版本)
- 模拟器安装Frida
- 注意:版本要与本地Frida一致
- 下载:https://github.com/frida/frida/releases
- 真机:就看ARM版本及位数
- 模拟器:无ARM的位数
- 使用终端模拟器执行下面命令获取是x几,我这里是x86
getprop ro.product.cpu.abi
- 将下载好的文件复制到模拟器的adb.exe(若是夜神则叫nox_adb,exe)同级目录下进行安装,在该目录下打开终端
# 获取开启模拟器的接口,若是开启了模拟器就会有信息 .\nox_adb.exe devices # 将文件传输到模拟器指定目录下 .\nox_adb.exe push .\frida-server-16.1.4-android-x86 /data/local/frida-x86 # 使用命令连接到模拟器(使用exit退出) .\nox_adb.exe shell # 然后进行执行 cd /data/local/ chmod +x ./frida-x86 ./frida-x86 # 然后卡着不动就是没问题的,重新启动一个终端,使用以下命令获取模拟器进程 # 这里是小迪配置了全局变量可以直接这么用,咱们还没有,所以需要找到这个exe的路径进行执行或者添加到全局变量 frida-ps -U ps | grep frida
- 使用终端模拟器执行下面命令获取是x几,我这里是x86
- 转发并启动Frida
没执行下面这个命令前可以使用frida-ps -U
获取模拟器进程(前提是在模拟器执行了./frida-x86),执行后frida-ps -R
也可以adb forward tcp:27042 tcp:27042
连接判断:frida-ps -U frida-ps -R
方案1:Firda+r0capture+WireShark
- GitHub地址:https://github.com/r0ysue/r0capture
- 模拟器执行:./frida-x86
- 获取包名:ls /data/data 或 Apk资源器查看
- 使用r0capture抓包
python r0capture.py -U -f 包名 -p xxxx.pcap
- 然后就会在目录下生成pcap数据包
优点:基本可以通杀,而且不需要安装什么环境,配置好直接用就完了
缺点:数据包是wireshark产生的,后面数据包只能用wireshark查看,不如在BP中方便
方案2:Firda+HOOK-JS+BurpSuite
- GitHub地址:https://github.com/apkunpacker/FridaScripts
- 模拟器执行:./frida-x86
- 此方案也可以解决单向验证证书
- 本地执行:
- 在模拟器中开启app代理,代理服务器为BP监听的地址端口
- 在项目中找到要使用的js文件复制到adb.exe同级目录下,然后在该目录下打开终端后执行以下命令
这里用到的是SSLUnpinning.jsfrida -U -f 包名 -l .\hookjs文件
- 此时就会自动打开该软件,bp能够抓到数据包。
方案3:导入证书
利用场景:能反编译,有证书文件
- 直接使用解压工具解压apk文件,然后在其中查找apk的证书文件
- 小迪说一般在assets和res目录中,后缀通常为cer、bks、p12、crt
- 提取证书文件路径可以使用mobsf,也可以使用appinfo
- appinfo的GitHub地址:https://github.com/kelvinBen/AppInfoScanner
- 反编译后得到证书文件的密钥
- apk有加固或者加壳,反编译需要先脱壳
- 脱壳:
- 先在使用
.\nox_adb.exe shell
进入模拟器执行./frida-x86
后,执行以下命令:
这里用到的是DumpDex.js
frida -U -f 包名 -l .\hookjs文件
- 然后需要执行一些命令才能脱壳,小迪还没讲
- 先在使用
- Burp导入证书后实现对应抓包
- 将提取到的证书安装到BP流程:
打开BP->settings->搜索tls->Client TLS certificates->add->选择从apk提取到的证书安装->若需要密码,还需从apk反编译源码中找到密钥
- 将提取到的证书安装到BP流程:
➢APP-某游戏-单向证书绕过&XP框架&Frida
方案1:Xposed+SSL模块+BurpSuite
具体参考前一天笔记
- 逍遥模拟器安装xp已经上节课讲过
- 夜神模拟器安装xp直接市场下载后激活即可
方案2:Firda+HOOK-JS+BurpSuite
- 模拟器执行:./frida-server
- 本地执行:
- 这里用到的也是SSLUnpinning.js
frida -U -f 包名 -l hookjs文件
- 这里用到的也是SSLUnpinning.js
了解
- IOS端-双向认证-SSL Kill switch 2
- 教程地址:https://testerhome.com/topics/17249
- GitHub:https://github.com/nabla-c0d3/ssl-kill-switch2/releases
- IOS安装好这个就通杀了,就是没有苹果模拟器,所以没演示。
参考
学习内容均来自小迪安全系列课程:http://xiaodi8.com/