【iOS-Flutter逆向】**岛之踩坑记录篇

admin 2024年7月26日12:42:06评论98 views字数 1813阅读6分2秒阅读模式

0

前言

    文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口均已做脱敏处理。
    严正声明禁止用于商业和非法用途,否则由此产生的一切后果与作者本人无关。若有侵权,请在vx【amuncocoL】联系作者。

1

抓包及定位

    样本版本:3.3
    Android的话需要libflutter.so IDA静态分析- 搜索ssl_client关键字-查看交叉引用-hook对应函数的返回值即可。
    iOS该样本使用Shadow***ket开启VPN抓包可以直接抓到请求:

【iOS-Flutter逆向】**岛之踩坑记录篇

图中可见Header中含有signature加密字段长度32位,无脑trace下CC_MD5 看看是否触发~

使用frida-trace:‍‍‍

frida-trace -UF com.xxx.xxx -i CC_MD5

【iOS-Flutter逆向】**岛之踩坑记录篇

上图无论怎么点击都没有触发CC_MD5,考虑该样本可能没使用CC_MD5库 。

ps: 能直接trace到就没必要记录咯 家银们... 

即将开启踩坑之旅

2

脱壳‍‍‍‍‍‍‍‍‍

使用frida-ios-dump对该样本进行脱壳
python dump.py xxxx
将xxx.ipa修改为xx.zip进行解压,Frameworks目录下有App.framework、 Flutter.framework两个框架或者mach-o名为Runner、user-agent含有Dart,基本上可以确定这个App是Flutter开发的。

【iOS-Flutter逆向】**岛之踩坑记录篇

3‍‍

reFlutter重打包

这里参考Yang神的文章,致敬前辈!

[https://bbs.kanxue.com/thread-273545.htm]

reFlutter也很好安装直接pip3 install flutter即可。
使用如下: 

【iOS-Flutter逆向】**岛之踩坑记录篇

我这里没有用到流量拦截,所以BurpSuite透明代理的设置直接略过。

可以从上图看出生成了release.RE.ipa,接着对该ipa进行签名安装。

我这里是直接使用的轻松签,不再赘述。

5‍‍

大坑-reFlutter重打包后app无法正常运行‍‍

排查日志如下:

【iOS-Flutter逆向】**岛之踩坑记录篇

 天塌了啊 家银们...

        遂又使用blutter对Android该样本进行分析

6

记录-blutter放弃

github:

https://github.com/worawit/blutter

macOS按README进行安装即可

注意使用的时候Python别用虚拟环境

brew install llvm@16 cmake ninja pkg-config icu4c capstonepip3 install pyelftools requestspython3 blutter.py xxxx/lib/arm64-v8a ./output/

【iOS-Flutter逆向】**岛之踩坑记录篇

结构如下:

【iOS-Flutter逆向】**岛之踩坑记录篇

asm: 具有符号的libapp.so的汇编代码。ida_script: IDA脚本,用于还原libapp.so的符号。blutter_frida.js: 针对目标应用程序的 Frida 脚本模板。objs.txt: 对象池中 Object 的完整(嵌套)转储。pp.txt: 对象池中所有 Dart 对象的转储。

在IDA中执行还原符号:ida_script/addNames.py脚本

【iOS-Flutter逆向】**岛之踩坑记录篇

【iOS-Flutter逆向】**岛之踩坑记录篇

弹窗直接OK略过 看看最终的效果~

【iOS-Flutter逆向】**岛之踩坑记录篇

【iOS-Flutter逆向】**岛之踩坑记录篇

然鹅还是有很大部分缺失... signature关键字也都没有搜到... 

【iOS-Flutter逆向】**岛之踩坑记录篇

天塌了 家银们...

无奈还是接着继续分析iOS吧

7

iOS-解析dump.dart

又回到了第⑤步

既然reFlutter重打包的ipa无法正常工作,

那就不管了。

signature看着是md5不麻烦,

直接dump出dart文件。

先看看函数名和偏移~说干就干!

    Mac打开活动监视器,手机USB连接Mac:
【iOS-Flutter逆向】**岛之踩坑记录篇

【iOS-Flutter逆向】**岛之踩坑记录篇

【iOS-Flutter逆向】**岛之踩坑记录篇

把dump.dart从手机scp下来分析函数

绝对地址和偏移~

搜索到md5、hash等关键字

【iOS-Flutter逆向】**岛之踩坑记录篇

【iOS-Flutter逆向】**岛之踩坑记录篇

        最终筛出来_MD5Sink、updateHash、startChunkedConversion

        用frida分别hook下看看

        最终hook method: updateHash的入参发现明文的端倪~

【iOS-Flutter逆向】**岛之踩坑记录篇

    明文: 排序后的k+v+salt 进行标准的md5加密

【iOS-Flutter逆向】**岛之踩坑记录篇

8‍‍

总结

本文旨在踩坑记录,大佬轻喷~

文中有错误的地方,还请各位大佬斧正~

撒花~ ✿✿ヽ(°▽°)ノ✿下次再会。

原文始发于微信公众号(逆向与爬虫的故事):【iOS-Flutter逆向】**岛之踩坑记录篇

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月26日12:42:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【iOS-Flutter逆向】**岛之踩坑记录篇https://cn-sec.com/archives/2999872.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息