iTunes 备份包(本篇主要介绍)
我们先看一下备份包解压下来有什么内容:
这些“00”、“cf”、“ff”的文件夹名称看起来像是自动按顺序生成的,但是“0f”后面不应该是“0g”吗?怎么变成了“01”,这就有点让人摸不清头脑了。
当然上面说的只是一句玩笑话,所有的文件夹名称都保存在根目录下的 “ Manifest.db ” 这个数据库中,我们使用Sqlite工具打开它(Android和iOS绝大数都采用的sqlite数据库):
我们打开 Files 表,这里有一个 fileID 字段,那么文件夹名称就是取字段前两位来进行命名的。那 fileID 字段的值是随意生成的Hash吗?并不是。
fileID = SHA1(domain-relativePath)
我们拿 RecNo 为 2 的(第二行数据)来举个例子:
domain 字段的值为 AppDomainPlugin-com.tencent.xin.siriextensionui,relativePath 字段的值为 Library,那么我们将两者的值进行合并就变成了:
AppDomainPlugin-com.tencent.xin.siriextensionui-Library
注意!别忘了中间还有一个“ – ”减号,少了计算的 Hash 可是错误的。我们拿上面合并好的值做 SHA1 加密,再取前两位就是 iTunes 备份包下文件夹的名称了。我们到里面一层再看看有什么?
这些文件都是00开头的,其实大家也能猜到了,苹果只是做了一个分类。这些文件并不是通过记事本或者notepad工具就能查看的,将文件拖入 Winhex 来猜一下,下图的文件是什么?
89 50 4E 47 是 png文件的文件头,那么我们基本判断这个文件是一个 png 图片了。用任意看图软件就能打开查看。
接下来还剩根目录的 plist 文件没有介绍了,iTunes 备份包解压后一共会出现 3 个plist 文件,分别为:Info、Manifest、Status,那么依次来简单介绍一下。
1.1、Info.plist / 主要是保存了设备的基础信息
1)包含了设备的基本信息
2)包含了app的部分信息
我这边仅留了 <key>PlaceholderIcon</key> 的数据做个例子,这里保存的是app的icon图标,下面的 data 数据采用的 base64加密,我们解码来测试一下到底是不是。
将 data 里面的数据全部复制到 https://the-x.cn/base64/ 进行解码:
大家可以看到,解码后就是一个png的图片。
1.2、Manifest.plist / 主要是保存了设备上安装的应用信息
1.3、Status.plist / 保存了备份的状态
接下来就是总结几个简易手动解析的小问题:
1、iOS在数据库中保存的时间格式
我们先用sqlite将根目录下的Manifest.db文件打开,导出成 plist 格式的文件;
我们定位到 <key>Birth</key> 或其他的都可以,下面的值为 1510151431,10位数字标准的Unix时间戳格式,我们可以去时间戳转换网站或者工具进行解析。
也可以用 SQL语句 select from_unixtime(数值) 来转换查询。
2、iOS自带浏览器的历史记录文件格式
首先iOS自带的浏览器是Safari,我们在 Manifest.db 数据库里筛选一下:
出现了一个 ../Logs/xxx.log,那么说明他以文本格式①进行保存。咱们继续查找:
出现了 ../xxx.db 和 ../xxx.plist,那么说明又以 sqlite②、plist③ 格式进行保存。
3、查找备份包中JPEG图片的总数量
JPEG图片不仅仅只是包含后缀为 .JPEG 的文件,Winhex有一个文件头汇总的文档(可以自行百度搜索)
JPEG 文件头为 \xFF\xD8\xFF,我们利用 Winhex 工具自带的文件签名批量检索功能进行查找:
注意!一定要是tar包,如果你拖进去的是 zip、7z 等进行过压缩的包,可能检索不出来。如果是压缩过的数据,先解压再重新打tar包,在用 WinHex 工具解析。
我们最终发现 JPEG图片 全部被 WinHex 统计出来。
4、iTunes备份的备份密码
iTunes备份密码简介
iTunes备份密码是一种用于保护iOS设备备份数据安全的密码。当您启用iTunes备份密码时,备份文件中的数据将被加密,以提供额外的安全层,确保仅有授权的用户能够访问敏感信息。
加密方式
iTunes备份密码使用AES-256(高级加密标准,256位密钥长度)进行加密。这是一种广泛应用且安全性高的对称加密算法。在设置密码时,密码通过密钥派生函数(如PBKDF2)生成一个密钥,该密钥用于生成加密和解密密钥。备份文件中的实际数据使用生成的加密密钥进行AES-256加密,确保数据在存储和传输过程中的保密性。
密码派生和生成过程
1、用户设置iTunes备份密码。
2、密码通过密钥派生函数生成一个密钥。
3、派生的密钥用于生成加密和解密密钥。
4、实际数据通过AES-256加密,生成加密后的备份文件。
破解方式:
1、盘古石手机取证软件工具集自带爆破;
2、Passware自带爆破。
总结:
好了,本文iTunes备份结构基础介绍就到这边,后续会带来更多的取证、溯源相关内容,希望各位读者关注关注!