作者:Tony,主攻方向:iOS、Android、windows逆向分析
苹果iOS提权
Telegram实战
Telegram(简称TG、电报)是一款端对端加密跨平台的即时通信软件,创办于2013年8月,其客户端是开源软件,服务端是专有软件。用户可以相互交换加密及自毁消息,发送照片、视频等类型文件。官方目前提供手机版(iOS图1、Android、Windows Phone)、桌面版(Windows、macOS、Linux)和网页版等多种平台客户端;同时官方开放应用程序接口(API),衍生许多第三方客户端可供选择,如Telegram X、Telegram中文版、Potato、币用BiYong、Nicegram等。
Telegram主打隐私安全,用户不需要实名认证、即可私密聊天,更为厉害的是它几乎不做限制即可创建频道以及20W人的群组,对比国内的聊天软件你无需担心隐私被泄露或者封号等风险,正因如此该平台滋生了许多恐怖组织(本拉登、ISIS等)和色情内容等违法犯罪行为。

本文围绕Ios Telegram Messenger为啥需要通过提权获取原始数据、以及如何解析原始数据进行展开讲解。
沙盒是一种进程容器,它可以将进程的系统调用限制在一个允许的子集内免受恶意三方程序攻击。在沙盒机制下,每个应用只能访问自身的文件夹和文件,如需要访问系统公用目录如相册需要申请。对于iOS应用程序一经安装便会创建自己的沙盒文件夹,如果应用开发商开发的app比较多的话还可能会创建一个“应用组“目录用于共享数据,如下图所示

沙盒目录与应用组
开发商lx开发了lx_sandbox1、lx_sandbox2、lx_sandbox3、…、lx_sandboxN这N个应用,其中lx_AppGroup是用于这N个应用共享数据。
通常来说沙盒根目录是存放在机身的”/private/var/mobile/Containers/Data/Application“

每个应用都会随机的被分配个UUID,UUID目录下就是Documents、Library、Tmp这些目录用途如下:
| 目录 | 用途 |
| Documents | 用于存储应用程序数据,该路径可以通用配置来实现共享,该目录的内容可以配置是否被iTunes、iCloud备份。 |
| Library | 该目录有两个子目录,其中 Preferences主要用于保存应用程序的偏好设置文件,常见的包名.plist就在此目录下,如ph.telegra.Telegraph.plist Caches主要用于存放缓存文件 除Caches,其他目录的内容可支持配置是否被iTunes、iCloud备份。 |
| Tmp | 该目录主要用于保存临时数据,目录的内容不会被备份。 |
常见的应用如微信、QQ、支付宝等数据都是存放在沙盒数据目录下。
应用组的数据是存放在机身的“/private/var/mobile/Containers/Shared/AppGroup”目录下

同样应用组也会被随机分配个UUID,哪些应用被分配到同一组中通常是在开发者中心的App Groups栏添加的。应用组主要的用处就是同一个开发者多个app之间的数据共享。
目前发现WhatsApp等应用数据就是存放在应用组中。
通过提权我们发现Telegram沙盒目录下并没有我们需要的聊天数据,推理可得iTunes备份中的AppDomain-ph.telegra.Telegraph肯定也没有。

机身中的Telegram沙盒
分析镜像中应用组数据,发现telegram-data数据

机身中Telegram应用组数据
分析iTunes备份中应用组的数据,对比发现并没有telegram-data目录。

iTunes备份中telegram应用组
查阅iOS开发文档发现一篇《iOS数据存储指南》中提到“do not backup“可以通过相关属性设置。

iOS数据存储指南
继续深挖,我们发现可以通过代码isExcludedFromBackup属性设置(true即表示该目录不允许备份)

isExcludedFromBackup属性
由于Telegram是开源的(https://github.com/TelegramMessenger/Telegram-iOS),于是我们可以对其进行验证,在代码中搜索isExcludedFromBackup进行定位

至此我们知道为啥iTunes备份不出来的原因了,也就是说对于机身的Telegram数据只能通过提权获取。
目前龙信iOS提权和钥匙串支持列表如下:
| 设备 | iPhone5S, iPhone6,iPhone6P,iPhoneSE, iPhone6S,iPhone6SP,iPhone7,iPhone7P, iPhone8,iPhone8P,iPhone X,iPhone XR,iPhone XS,iPhone XS Max,iPhone 11,iPhone 11 Pro,iPhone 11 Pro Max, iPhone SE2, iPhone 12, iPhone 12 Pro | ||
| iOS版本 | 镜像 | 备份 | 备份密码 |
| 9.0-14.3 | ✔ | ✔ | ✔ |
| 14.4-15.0 | ✔ | ||
用龙信提权获取的数据我们可以通过A200或者A203进行数据解析,如下所示



以上就是本期苹果iOS提权获取原始数据的相关技术的全部讲解了, 感谢大家观看,我们下期见。
苏州龙信不忘初心,以专业的技术水准为各级行政执法部门打击违法犯罪活动提供更快速全面的技术问题解决方案。
如有需要请联系我们或您所在地我们的合作伙伴。


