iOS 获取与分析
提取并分析 iOS 数据。
iOS 获取与分析 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。
iOS 安全模型
iOS 取证受到紧密集成的硬件安全模型影响。
- 安全隔区(SEP) — 保存密钥材料的隔离协处理器;硬件会限制密码尝试频率。
- 数据保护 — 每个文件的加密密钥都与密码和设备 UID 相关联。
- 沙箱机制 — 每个应用都被限制在自己的容器中。
这意味着密码暴力破解会受到 SEP 的限制,而原始闪存转储得到的是密文。合法访问通常依赖于设备已在用户配合下解锁,或处于 AFU 状态。
数据保护类别
每个文件都会被分配一个保护类别,用于控制其密钥何时可用。
- 完全保护 — 设备锁定后不久密钥便会被清除(保护级别最高)。
- 首次用户认证前完全保护 — 首次解锁后密钥可用(常见的 AFU 默认类别)。
- 无保护 — 密钥始终可用(很少见)。
这就是 AFU 在 iOS 上很重要的原因:首次认证前类别中的文件会变得可读,从而解锁大部分用户数据。
iTunes/Finder 备份获取
最易获取的逻辑方法,是通过主机配对关系进行备份获取(机制与 iTunes/Finder 相同)。
- 需要有效的配对记录(lockdown 证书),而创建配对记录需要一台已解锁的设备。
- 加密备份(已设置备份密码)实际上包含更多数据:钥匙串、健康数据和已保存的密码。
请使用 libimobiledevice 并提供适当授权来创建备份:
idevice_id -l # list connected UDIDs
ideviceinfo -k ProductVersion # confirm iOS version
idevicebackup2 backup --full ./ios_backup/备份结构与清单
iOS 备份不会按名称存储文件,而是对路径进行哈希处理并以扁平方式存储,再由 Manifest.db SQLite 文件建立索引。
- Manifest.db 将域和相对路径映射到磁盘上的哈希文件名。
- Info.plist / Status.plist 保存设备和备份元数据。
- 加密备份还需要使用备份密码解包钥匙串密钥。
请通过清单定位已知痕迹:
sqlite3 -readonly Manifest.db \
"SELECT fileID, domain, relativePath FROM Files
WHERE relativePath LIKE '%sms.db%';"完整文件系统提取
完整文件系统(FFS)提取超出备份允许的数据范围,覆盖整个用户分区,包括应用缓存、知识相关痕迹和系统数据库。
- 需要代理程序或漏洞利用(例如针对易受攻击的旧款芯片使用基于 checkm8 的方案)以及一台处于 AFU 状态的设备。
- 可以获取备份排除的痕迹:knowledgeC.db、interactionC.db、位置缓存。
在能够依法取得的情况下,FFS 是现代 iOS 分析的黄金标准,因为它能显示标准备份看不到的系统行为数据库。
iOS 核心数据库
iOS 会在知名的应用域中使用 SQLite 数据库存储用户活动。
- sms.db — iMessage 和 SMS(数据表:message、handle)。
- CallHistory.storedata — 通话记录。
- AddressBook.sqlitedb — 联系人。
- Photos.sqlite — 媒体元数据和资产链接。
请以只读方式从提取结果中查询 iMessage 内容:
sqlite3 -readonly sms.db
sqlite> SELECT datetime(date/1000000000 + 978307200,'unixepoch') ts,
...> h.id, m.text
...> FROM message m JOIN handle h ON m.handle_id=h.ROWID
...> ORDER BY m.date DESC LIMIT 20;Apple(Mac/Cocoa)时间戳
iOS 经常使用Apple/Cocoa 纪元时间:它表示自 2001-01-01 UTC 起经过的秒数,而不是自 1970 年起的秒数。某些数据库会将其存储为纳秒。
- 与 Unix 纪元的偏移量是978307200 秒。
- iMessage 的
date是自 2001 年起的纳秒数;请先除以 1e9,再加上该偏移量。
误读纪元会导致日期相差 31 年。转换方式如下:
-- Cocoa seconds -> UTC
SELECT datetime(ZDATE + 978307200, 'unixepoch') FROM ZRECORD;
-- iMessage nanoseconds -> UTC
SELECT datetime(date/1000000000 + 978307200, 'unixepoch') FROM message;行为数据库
iOS 会为系统功能保留丰富的行为遥测数据,这些数据对于建立时间线非常有价值。
- knowledgeC.db — 应用使用情况、专注模式、设备锁定/解锁和 Siri 事件。
- interactionC.db — 跨应用的联系人通信记录。
- routined / cache_encryptedB.db — 重要地点。
这些数据仅存在于 FFS 提取中(不在标准备份中),可以确定用户在特定时刻的行为,但需要谨慎解读,因为某些事件由系统生成,并非用户主动触发。
钥匙串恢复
钥匙串保存 Wi-Fi 密码、令牌、应用凭据和证书。它使用由密码派生的类别密钥进行加密。
- 可以从加密的 iTunes 备份(需要备份密码)或 FFS 提取结果中恢复。
- 每个项目都有自己的保护类别;其中一些项目只有在 AFU 状态下才可用。
钥匙串内容可以揭示账户访问情况和横向关联线索—请像处理任何凭据材料一样,以同等程度的法律审慎对待它们。
使用 iLEAPP 自动解析
iLEAPP 会将 iOS 备份和 FFS 提取结果解析为结构化报告,涵盖数百种痕迹类型。
- 解码 knowledgeC、sms、Safari 历史记录、应用状态等内容。
- 请用它进行初步筛查,然后针对原始 SQLite 数据库核验关键发现。
请针对备份或提取结果运行 iLEAPP:
python3 ileapp.py -t fs -i ./ios_filesystem/ -o ./ileapp_report/
# Or -t itunes for a Finder/iTunes backup folderiCloud 与交叉验证
从设备中删除的数据可能仍会保留在 iCloud 中(备份、照片、iCloud 中的信息和应用数据)。
- 访问 iCloud 需要单独的法律授权以及适当的凭据或令牌。
- 请将设备上的发现与云端副本以及第二个工具的结果进行交叉验证。
一如既往,请在分析前后确认提取结果的哈希值,并记录工具版本和命令,以便其他检查人员复现您的结果。
快速检查
您将 iMessage 时间戳解码为 Unix 纪元时间后,日期早了 31 年。哪里出错了?
回顾:iOS 获取与分析
您现在可以掌握 iOS 取证体系。
- 安全隔区 + 数据保护类别使 AFU 状态成为关键。
- 加密备份包含钥匙串和健康数据;FFS提取还会增加行为数据库。
- 备份通过带有哈希文件名的 Manifest.db 建立索引。
- 核心证据包括:sms.db、CallHistory、AddressBook、knowledgeC.db。
- 解码Apple/Cocoa 时间戳(2001 年纪元,加上 +978307200)。
- 使用iLEAPP进行初步筛查,手动验证,并在获得适当授权的情况下考虑使用 iCloud。
下一步:解析应用痕迹并生成报告。
常见问题解答
「iOS 获取与分析」课时是免费的吗?
是的 — 「iOS 获取与分析」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。
「iOS 获取与分析」这节课中我会学到什么?
提取并分析 iOS 数据。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cyber Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「iOS 获取与分析」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cyber Security Academy 课中编写并运行代码吗?
能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 移动设备取证基础
- Android 获取与分析
- iOS 获取与分析
- 应用、痕迹与报告