Play Integrity Attestation Bypass (SafetyNet Replacement)

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

Play Integrity 的作用

Play Integrity 是 Google 的 SafetyNet 的继任者,用于 app attestation。应用调用 API,Google Play Services 收集软件/硬件信号,并将它们加密后发送到 googleapis.com,Google 返回一个由 Google 签名并加密JWT。应用将该令牌转发到其后端,后端使用 Google 的公钥验证签名、解密负载,并根据判决字段执行策略:

  • appIntegrity:APK 构建/签名匹配(无重打包/篡改)。
  • deviceIntegrity:真实且认证的设备,bootloader 锁定,无 root/系统篡改。
  • accountDetails:通过 Google Play 安装。

常被强制检查的关键判决标志:

  • MEETS_BASIC_INTEGRITY:由真实 Play Services 生成的 token(非模拟器/未被篡改的传输)。
  • MEETS_DEVICE_INTEGRITY:真实/认证设备,bootloader 锁定,无 root/系统篡改。
  • MEETS_STRONG_INTEGRITY:需要 DEVICE所有分区(OS + vendor)具有近期的安全补丁

绕过模型

不是去伪造 Google 的 JWT,而是伪造 Google 所评估的信号,使它们对应另一个合法的设备配置。攻击链:

  1. 隐藏 root,使本地检查和 Play Services 探测看不到 Magisk/su。
  2. 用真实设备的 key attestation certificate chain (keybox.xml) 替换,这样 Play Integrity 会认为设备已认证/bootloader 已锁定。
  3. 伪造 security patch level 以满足 MEETS_STRONG_INTEGRITY

Google 的缓解措施是撤销被滥用的 keyboxes;当 keybox 被封禁时需要轮换。

前提与工具

达成 MEETS_BASIC_INTEGRITY + MEETS_DEVICE_INTEGRITY

  1. 安装模块并重启: 在 Magisk 中刷入 TrickyStoreTricky Addon,重启。
  2. 配置 TrickyStore(通过 KSU Web UI): 选择 TrickyStoreSelect AllDeselect UnnecessarySave
  3. 注入有效 keybox:Keybox 中选择 Valid 以下载/应用新的 keybox.xml(vendor attestation 凭证)。该文件支撑硬件 key attestation,现在被伪装为来自认证/锁定设备。
  4. 验证: 运行 Play Integrity API CheckerMEETS_BASIC_INTEGRITYMEETS_DEVICE_INTEGRITY 应通过。在 Key Attestation 中,bootloader 会显示为 locked,因为 attestation 链已被替换。

达成 MEETS_STRONG_INTEGRITY(补丁级别伪造)

STRONG 会在补丁级别过旧时失败。TrickyStore 可以为所有分区伪造一个较新的 security patch 日期:

  1. 在 TrickyStore 中,选择 Set Security PatchGet Security Patch DateSave
  2. 重新运行 Play Integrity API CheckerMEETS_STRONG_INTEGRITY 应该通过。

操作注意事项

  • 撤销风险: 使用相同的 keybox.xml 反复调用 API 可能会触发封禁。如果被封禁,替换为新的有效 keybox。
  • 军备竞赛: 公开共享的 keybox 很快会被封;保留私有副本并关注社区模块更新(XDA/Telegram/GitHub)以获取新的可用链。
  • 范围: 此绕过仅伪造 attestation 的输入;后端对签名的验证仍由 Google 成功通过,因为 JWT 本身是真实的。

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