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

本页概述了一个针对 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)被放宽时,存在可能被绕过保护的路径:

text
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 解析和转换流程

观察到的解析器接触点(日志):

text
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 控制。示例日志:

text
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 在不弹出用户提示的情况下调用有特权的加密操作。示例日志:

text
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