iMessage Media Parser Zero-Click → CoreAudio RCE → PAC/RPAC → Kernel → CryptoTokenKit Abuse
Reading time: 10 minutes
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
本页概述了一个针对 iOS 的现代 zero-click 攻击面以及一个被观察到的端到端利用链,该链滥用 iMessage 的自动媒体解析来攻破 CoreAudio、绕过 BlastDoor、通过 RPAC 路径击败 Pointer Authentication (PAC)、升级到 kernel,并最终滥用 CryptoTokenKit 进行未授权的密钥使用。
警告:这是一个教育性摘要,旨在帮助防御者、研究人员和红队了解这些技术。请勿用于攻击性用途。
高层链
- 投递载体:通过 iMessage/SMS 发送的恶意音频附件(例如 .amr / MP4 AAC)。
- 自动处理:iOS 在无用户交互的情况下自动解析媒体以生成预览和进行转换。
- 解析器漏洞:畸形结构触发 CoreAudio 的 AudioConverterService 并破坏堆内存。
- 媒体上下文中的代码执行:在媒体解析进程内获得 RCE;据报道在特定路径(例如 “known sender” framing path)可绕过 BlastDoor 隔离。
- PAC/RPAC 绕过:一旦获得任意读写,RPAC 路径中的 PAC 绕过可以在 arm64e PAC 下实现稳定的控制流。
- 内核提权:该链将用户态执行转换为内核态执行(例如通过 wireless/AppleBCMWLAN 代码路径和日志中可见的 AMPDU 处理)。
- 利用后:获得内核后,滥用 CryptoTokenKit 使用由 Secure Enclave 支持的密钥进行签名,读取敏感数据路径(Keychain 上下文),拦截消息/2FA,静默授权操作,并在无需提示的情况下启用隐蔽监视(mic/camera/GPS)。
iMessage/BlastDoor 攻击面说明
BlastDoor 是一个用于解析不受信任消息内容的强化服务。然而,观测到的日志表明,在消息以“known sender”构造并且附加过滤器(例如 Blackhole)被放宽时,存在可能被绕过保护的路径:
IDSDaemon BlastDoor: Disabled for framing messages
SpamFilter Blackhole disabled; user has disabled filtering unknown senders.
Takeaways:
- Auto-parsing still represents a remote, zero-click attack surface.
- Policy/context decisions (known sender, filtering state) can materially change the effective isolation.
CoreAudio: AudioConverterService heap corruption (userland RCE)
受影响的组件:
- CoreAudio → AudioConverterService → AAC/AMR/MP4 解析和转换流程
观察到的解析器接触点(日志):
AudioConverterService ACMP4AACBaseDecoder.cpp: inMagicCookie=0x0, inMagicCookieByteSize=39
Technique summary:
- 畸形的 container/codec 元数据(例如,无效/过短/NULL magic cookie)会在 decode 设置期间导致 memory corruption。
- 可在 iMessage 媒体转换路径中触发,无需用户点击。
- 在媒体解析进程中导致代码执行。写作指出在观察到的投递路径中这可绕过 BlastDoor,从而启用下一阶段。
Practical tips:
- 在针对 AudioConverterService 的转换时,对 AAC/AMR 的 magic cookie 和 MP4 的 codec atoms 进行模糊测试。
- 重点关注 heap overflows/underflows、OOB reads/writes,以及围绕 decoder initialization 的大小/长度混淆。
PAC bypass via RPAC path (CVE-2025-31201)
arm64e Pointer Authentication (PAC) 阻止劫持返回地址和函数指针。该链条报告在获得任意 R/W 后,使用 RPAC 路径击败 PAC。
Key idea:
- 通过任意 R/W,攻击者可以构造有效的、重新签名的指针,或将执行 pivot 到对 PAC 友好的路径。所谓的 “RPAC path” 使得在 PAC 约束下仍能控制流程,将 userland RCE 转换为可靠的 kernel exploit 设定。
Notes for researchers:
- 收集 info leaks 以对抗 KASLR 并在 PAC 下稳定 ROP/JOP 链。
- 针对以可控方式生成或验证 PAC 的调用点(例如,在攻击者控制的值上生成的签名、可预测的 上下文密钥,或重新签名指针的 gadget 序列)。
- 预期 Apple 在不同 SoC/OS 上的强化会有差异;可靠性取决于 leaks、entropy 和稳健的 primitives。
Kernel escalation: wireless/AMPDU path example
在观测到的链中,一旦在 userland 获得 memory corruption 和 PAC bypass 原语,就通过 Wi‑Fi 栈(AppleBCMWLAN)中对畸形 AMPDU 处理的代码路径获得了 kernel 控制。示例日志:
IO80211ControllerMonitor::setAMPDUstat unhandled kAMPDUStat_ type 14
IO80211ControllerMonitor::setAMPDUstat unhandled kAMPDUStat_ type 13
通用方法:
- 使用 userland primitives 构建 kernel R/W 或受控的 call paths。
- 滥用可访问的 kernel surfaces(IOKit、networking/AMPDU、media shared memory、Mach interfaces)以实现 kernel PC 控制或任意内存访问。
- 通过构建 read/write primitives 并在适用时绕过 PPL/SPTM 约束来稳定利用。
Post-exploitation: CryptoTokenKit and identity/signing abuse
一旦 kernel 被攻破,像 identityservicesd 这样的进程可以被冒充,并且可以通过 CryptoTokenKit 在不弹出用户提示的情况下调用有特权的加密操作。示例日志:
CryptoTokenKit operation:2 algo:algid:sign:ECDSA:digest-X962:SHA256
CryptoTokenKit <sepk:p256(d) kid=9a86778f7163e305> parsed for identityservicesd
影响:
- 利用 Secure Enclave 支持的密钥进行未授权签名(令牌、消息、付款),即使密钥未导出也会破坏信任模型。
- 静默拦截 2FA 代码/消息;授权付款/转账;启用隐蔽的麦克风/相机/GPS。
防御角度:
- 将内核后完整性破坏视为灾难性:对 CTK 使用者强制 runtime attestation;最小化 ambient authority;在使用点验证 entitlements。
重现与遥测提示(仅限实验室)
- Delivery: 通过 iMessage/SMS 向目标设备发送精心构造的 AMR/MP4-AAC 音频。
- 监测遥测以查找解析和无线栈反应周围的上述日志行。
- 确保设备已完全打补丁;仅在隔离的实验室环境中测试。
缓解与加固建议
- Patch level: 据报 iOS 18.4.1 修复了该链;保持设备为最新版本。
- Parser hardening: 对 codec cookies/atoms 和长度进行严格校验;在解码路径中增加带边界检查的防御性处理。
- iMessage isolation: 避免在 “known sender” 上下文中为媒体解析放宽 BlastDoor/Blackhole。
- PAC hardening: 减少 PAC-gadget 的可用性;确保签名绑定到不可预测的上下文;移除对 PAC 容忍且可绕过的模式。
- CryptoTokenKit: 要求 post-kernel attestation 和调用时的强 entitlements 用于与密钥绑定的操作。
- Kernel surfaces: 加固无线 AMPDU/status 处理;在被攻陷后尽量减少来自用户态的攻击者可控输入。
受影响版本(据报道)
- iOS 18.x,iOS 18.4.1 之前(2025-04-16)。
- 主要:CoreAudio → AudioConverterService(通过 iMessage/SMS 的媒体自动解析路径)。
- 连锁:PAC/RPAC 路径以及通过 AppleBCMWLAN AMPDU 处理的内核升级。
References
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。