第86天:APP攻防-资产收集篇&Frida&HOOK&Xposed&证书提取&单向双向&检验抓包
本文发布于463天前,本文最后更新于458 天前,其中的信息可能已经过时,如有错误请留言或评论。

本节知识点

  1. 单向校验-XP框架&Frida&HOOK
    • 这个单向校验上一节讲到过
  2. 双向校验-Frida&HOOK&导入证书
  3. 单项双向-逆向删除反代码重打包

在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
    • 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

测试流程

  1. BP监听网卡及端口
  2. 开启wifi代理后(包括使用app代理),app界面无返回,BP基本无数据包,显示网络异常,关闭后恢复正常
  3. 开启XP开启代理之后发现app界面还是返回不了,显示你的网络出错了,网络异常等
    • 开启某营地进行检测是否配置正确,发现可以正常抓取到数据包,说明XP模块和代理正常
  4. 以上说明该app不是单向验证,是双向验证,解决方案如下三种:(小迪推荐第二种)

前置

  1. 本地安装Frida
    pip install frida
    pip install frida-tools
    pip list #可以查看已经按照的库,查看frida的版本为16.1.11(这里看自己安装的版本)
  2. 模拟器安装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
  3. 转发并启动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
  • 此方案也可以解决单向验证证书
  • 本地执行:
    1. 在模拟器中开启app代理,代理服务器为BP监听的地址端口
    2. 在项目中找到要使用的js文件复制到adb.exe同级目录下,然后在该目录下打开终端后执行以下命令
      这里用到的是SSLUnpinning.js

      frida -U -f 包名 -l .\hookjs文件
    3. 此时就会自动打开该软件,bp能够抓到数据包。

方案3:导入证书

利用场景:能反编译,有证书文件

  1. 直接使用解压工具解压apk文件,然后在其中查找apk的证书文件
    • 小迪说一般在assets和res目录中,后缀通常为cer、bks、p12、crt
    • 提取证书文件路径可以使用mobsf,也可以使用appinfo
  2. 反编译后得到证书文件的密钥
    • apk有加固或者加壳,反编译需要先脱壳
    • 脱壳:
      • 先在使用.\nox_adb.exe shell进入模拟器执行./frida-x86后,执行以下命令:
        这里用到的是DumpDex.js

        frida -U -f 包名 -l .\hookjs文件
      • 然后需要执行一些命令才能脱壳,小迪还没讲
  3. Burp导入证书后实现对应抓包
    • 将提取到的证书安装到BP流程:
      打开BP->settings->搜索tls->Client TLS certificates->add->选择从apk提取到的证书安装->若需要密码,还需从apk反编译源码中找到密钥

➢APP-某游戏-单向证书绕过&XP框架&Frida

方案1:Xposed+SSL模块+BurpSuite

具体参考前一天笔记

  • 逍遥模拟器安装xp已经上节课讲过
  • 夜神模拟器安装xp直接市场下载后激活即可

方案2:Firda+HOOK-JS+BurpSuite

  • 模拟器执行:./frida-server
  • 本地执行:
    • 这里用到的也是SSLUnpinning.js
      frida -U -f 包名 -l hookjs文件

了解

参考

学习内容均来自小迪安全系列课程:http://xiaodi8.com/

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇