金融类IOS APP端渗透测试实战分享
2024-3-2 23:0:4 Author: www.freebuf.com(查看原文) 阅读量:49 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

前言

金融类APP的测试始终是一项挑战,尤其是在Android应用的防护策略日益完善,加壳和加固机制多样化的背景下,这种情况更突显了iOS APP测试的重要性。本文将以作者对金融类iOS App的一次渗透测试实践为基础,分享一些iOS App安全测试的方法和经验。

测试工具:越狱iPhone  Frida BurpSuite Mitmproxy

绕过越狱检测

通过App Store安装APP,运行APP发现提示处于越狱状态并闪退。

1709387605_65e32f5546284d5d8ed25.png!small?1709387605807

这里有两个解决思路:

  1. 屏蔽越狱插件 or frida hook写绕过越狱脚本
  2. 通过AppstorePlus下载低版本APP程序

这里通过两种方式结合,下载安装安装低版本APP并加载屏蔽越狱插件成功运行该APP。

绕过证书固定

运行APP,设置BurpSuite代理发现抓不到包。

尝试启用SSL Kill Switch 2 插件以绕过该APP的证书固定。

1709388088_65e3313809e7d6f7c82dd.png!small?1709388088981

重新点击运行APP并点击功能,通过设置代理成功抓到数据包。

1709388220_65e331bcec61cae6212f8.png!small?1709388221520

追踪加解密函数

多次请求数据包发现请求和响应均为乱码,考虑传输数据包进行了加密。

解决思路:

  1. 砸壳,反编译源二进制程序,查找分析发包/加密函数
  2. frida-trace跟踪 sm2/sm3/sm4/aes/rsa等含有加密关键字的函数

这里使用了frida-trace跟踪,通过多次点击功能按钮确认使用了AES加密

frida-trace -UF -m "*[* *aes*:*]"

1709388632_65e33358bd049de599d2a.png!small?1709388633479

编写frida-trace脚本

1709388814_65e3340eb240888cf7f2a.png!small

打印参数值以获得其AES加密的key和iv

1709388763_65e333db42a7a2fe2484e.png!small?1709388765118

复制BurpSuite中数据包的HEX数据使用该key和iv进行解密尝试。

1709388926_65e3347e3b9002d88c10f.png!small?1709388926854

成功解密出明文数据。

Mitmproxy+BurpSuite 交互式数据传输

由于请求包与响应包均为加密数据包,使用Mitmproxy编写脚本,以方便BurpSuite进行测试。

1709389300_65e335f411432aa680520.png!small?1709389300530

Mitmproxy脚本调试通过后,即可结合BurpSuite进行双向加解密。

IPhone 设置代理7070端口

mitmdump -p 7070 -s up.py --mode upstream:http://127.0.0.1:8080 -k --ssl-insecure --no-http2

mitmdump -p 9090 -s down.py -k --ssl-insecure

BurpSuite监听8080端口,设置上游代理为9090端口

1709389155_65e33563c74b02abb4c84.png!small?1709389156481

成功实现请求响应均为明文数据,可进行常规测试。

出洞

最后就是猎杀的时刻~

1709389814_65e337f6e4af843cd873c.png!small?1709389815289


文章来源: https://www.freebuf.com/articles/mobile/393147.html
如有侵权请联系:admin#unsafe.sh