0Pricing
Cyber Security Academy · 课时

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 folder

iCloud 与交叉验证

从设备中删除的数据可能仍会保留在 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 移动设备取证基础
  2. Android 获取与分析
  3. iOS 获取与分析
  4. 应用、痕迹与报告
← 返回 Cyber Security Academy