iOS取证

ios系统目录结构

ios 系统目录

目录说明
Applications/系统自带应用程序的安装目录,不包括从 App Store 下载的应用程序,例如 AppStore (AppStore.app)、相机 (Camera.app) 等。
Developer/开发者调试使用的目录。
Library/存放系统文件,例如壁纸 (Wallpaper)、铃声 (Ringtones) 等。
System/包含系统组件,存在于 /System/Library 目录下。
private/存放系统配置、应用程序数据文件,包含 /private/var、/private/etc 两个子目录。
etc/系统脚本及配置文件,链接至 /private/etc 目录。
var/存放经常变更的文件,例如应用程序数据、日志、临时文件等,链接至 /private/var 目录。
User/应用程序数据,链接至 /var/mobile/,即 /private/var/mobile/。
tmp/临时目录,链接至 /private/var/tmp/。

取证时主要关注应用数据相关目录

系统配置

/private/var:

Keychains:秘钥信息

wireless:手机网络连接、SIM卡信息等

mobile:用户应用数据

containers:系统应用数据

/private/var/mobile/Library 系统应用数据:

路径说明
/private/var/mobile/Library/Mail自带邮箱信息
/private/var/mobile/Library/Maps自带地图信息
/private/var/mobile/Library/AddressBook通讯录联系人信息
/private/var/mobile/Library/Calendar日历、提醒信息
/private/var/mobile/Library/CallHistoryDB通讯记录信息
/private/var/mobile/Library/SafariSafari浏览器信息
/private/var/mobile/Library/Notes备忘录信息
/private/var/mobile/Library/SMS短信和彩信信息
/private/var/mobile/Library/Accounts账号信息

/private/var/mobile/Media 媒体文件:

路径说明
/private/var/mobile/Media/DCLM相册图片、视频
/private/var/mobile/Media/PhotoData相册信息、缩略图
/private/var/mobile/Media/iTune_ControliTunes同步的音乐和视频
/private/var/mobile/Media/BooksiBooks同步的书籍、PDF
/private/var/mobile/Media/Recording语音备忘录
/private/var/mobile/Media/iTune_ControliTunes同步数据
/private/var/mobile/Media/PhotoSt照片流

应用安装目录

  • 用户应用安装目录:/private/var/containers/Bundle/Application 目录
  • 系统应用安装目录:/Applications 目录

应用数据存储位置

用户应用数据:/private/var/mobile/Container 目录

主要关注 Data 和 Shared 目录:

Data/Application:应用数据目录

Shared/AppGroup:共享目录数据

系统应用数据:/private/var/Container 目录

主要关注 Data 和 Shared 目录:

Data/System:应用数据目录

Shared/SystemGroup:共享目录数据

沙盒机制

ios 系统通过沙盒机制限制应用只能访问自己沙盒中的数据,来确保应用数据的安全性。

应用目录结构

MyApp.app

  • 应用资源
  • 不会被 iTunes 同步

Documents

  • 应用数据
  • 会被 iTunes 同步

Library

  • 应用配置文件、缓存文件
  • 部分被 iTunes 同步

tmp

  • 临时文件,系统空间不足时会被清理
  • 不会被 iTunes 同步

ios软件包名

社交通讯类

应用软件应用包名应用软件应用包名
WhatsAppcom.whatsappTwittercom.twitter.twitter
Facebookcom.facebook.FacebookMessengercom.facebook.Messenger
Instagramcom.burbn.instagramTelegramorg.telegram.messenger
WeChatcom.tencent.xin

浏览器类

应用软件应用包名应用软件应用包名
Safaricom.apple.mobilesafariChromecom.google.chrome.browser
Firefoxorg.mozilla.firefox

办公类

应用软件应用包名应用软件应用包名
Microsoft Wordcom.microsoft.WordMicrosoft Excelcom.microsoft.Excel
Microsoft PowerPointcom.microsoft.PowerPointGoogle Docscom.google.docs
Google Sheetscom.google.sheets

其他

应用软件应用包名应用软件应用包名
Apple Musiccom.apple.MusicApple Mapscom.apple.Maps
Apple Photoscom.apple.mobilesafariYouTubecom.google.youtube

备份文件

iOS 取证最常见的切入点就是 iTunes/Finder 备份:不需要越狱,一台连过该手机的电脑上往往就有完整备份。

备份位置

  • Windows:%APPDATA%\Apple Computer\MobileSync\Backup\
  • macOS:~/Library/Application Support/MobileSync/Backup/

每台设备一个以 UDID 命名的目录。目录下成千上万个无扩展名文件 + 几个 plist/db 元数据文件。

配置文件

image-20241022164805574.png

关键元数据文件(都在 UDID 目录根部):

文件内容
Manifest.plist备份清单:是否加密(IsEncrypted)、备份日期、iOS 版本、设备名、序列号;加密时还存密钥派生参数
Info.plist设备信息:设备名、手机号(Phone Number)、IMEI、ICCID、序列号、iOS 版本、iTunes 版本、最后备份时间
Status.plist备份状态(是否完整、快照状态)
Manifest.dbSQLite 文件索引,见下

Manifest.db 与文件存储结构

备份里的数据文件不保留原始文件名,规则:

  • Manifest.db 的 Files 表记录每个文件的 domain(域)、relativePath(原始路径)、fileID
  • fileID = SHA1(domain + "-" + relativePath)
  • 备份文件落在 UDID 目录下以 fileID 前两位命名的子目录中,文件名即 fileID

常见 domain 与对应的库内文件:

数据domain / relativePath
短信/iMessageHomeDomain → Library/SMS/sms.db
通讯录HomeDomain → Library/AddressBook/AddressBook.sqlitedb
通话记录HomeDomain → Library/CallHistoryDB/CallHistory.storedata(旧版 call_history.db)
Safari 历史HomeDomain → Library/Safari/History.db
微信AppDomain-com.tencent.xin → Documents/<32位哈希>/DB/MM.sqlite(消息内容加密,密钥在 keychain)
相册CameraRollDomain → Media/DCIM/...

加密备份

  • Manifest.plist 中 IsEncrypted = true 时,备份内所有文件用 AES-256 加密,密钥由备份密码经 PBKDF2 派生
  • 用 itunes_backup2hashcat(或 2hashcat 工具链)从 Manifest.plist 提取哈希后爆破:
    • hashcat -m 14700:iOS < 10.2
    • hashcat -m 14800:iOS ≥ 10.2(迭代 10,000,000 次,极慢,纯靠字典质量)
  • 关键性质:加密备份反而包含更多数据(Wi-Fi 密码、健康数据、钥匙串等敏感项只进加密备份)

解析工具

  • iLEAPP:开源,直接解析整个备份目录输出 HTML 报告(比赛首选)
  • iBackup Viewer / 爱思助手:图形化快速浏览
  • 手动:按上表用 Manifest.db 反查 fileID,拷出后改回原名直接用 SQLite 工具打开

iCloud 备份

设备不开本地备份时可能在云端:设置 → Apple ID → iCloud → 管理储存空间。提取需账号凭据/令牌(Elcomsoft Phone Breaker 等),注意会触发 Apple 的登录提醒邮件。