Play Integrity Attestation Bypass (SafetyNet Replacement)
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Cosa fa Play Integrity
Play Integrity è il successore di Google di SafetyNet per l’app attestation. L’app chiama l’API, Google Play Services raccoglie segnali software/hardware, li invia criptati a googleapis.com, e Google restituisce un JWT che è firmato e criptato da Google. L’app inoltra il token al suo backend, che valida la firma con la chiave pubblica di Google, decripta il payload e applica le policy basate sui campi di verdetto:
appIntegrity: corrispondenza build/firma dell’APK (nessun repack/tamper).deviceIntegrity: dispositivo genuino & certificato, bootloader bloccato, nessun root/manomissione del sistema.accountDetails: installazione tramite Google Play.
Flag di verdetto chiave comunemente applicati:
MEETS_BASIC_INTEGRITY: token generato da genuine Play Services (non emulator/trasporto manomesso).MEETS_DEVICE_INTEGRITY: dispositivo genuino/certificato, bootloader bloccato, nessun root/manomissione del sistema.MEETS_STRONG_INTEGRITY: richiedeDEVICEpiù recenti patch di sicurezza su tutte le partition (OS + vendor).
Modello di Bypass
Invece di forgiare il JWT di Google, spoofare i segnali che Google valuta in modo che corrispondano a un diverso profilo dispositivo legittimo. La catena d’attacco:
- Nascondere il root così che i controlli locali e le probe di Play Services non vedano Magisk/su.
- Sostituire la catena di certificati di key attestation (
keybox.xml) con una proveniente da un dispositivo genuino così Play Integrity vede un dispositivo certificato/bloccato. - Spoofare il security patch level per soddisfare
MEETS_STRONG_INTEGRITY.
Google mitiga revocando i keybox abusati; è necessaria la rotazione quando un keybox viene bloccato.
Prerequisiti & Tooling
- Root hiding: ReZygisk (o ZygiskNext). Disable Zygisk, enable Magisk Hide, install module, reboot.
- Key attestation spoofing: TrickyStore + Tricky Addon (Magisk modules).
- UI helper: KSU Web UI to drive TrickyStore.
- Validation: Play Integrity API Checker and Key Attestation APKs.
- Optional background on attestation key material: https://tryigit.dev/android-keybox-attestation-analysis
Ottenere MEETS_BASIC_INTEGRITY + MEETS_DEVICE_INTEGRITY
- Installare i moduli & reboot: Flash TrickyStore e Tricky Addon in Magisk, reboot.
- Configurare TrickyStore (via KSU Web UI): Select
TrickyStore→Select All→Deselect Unnecessary→ Save. - Iniettare un keybox valido: In
Keybox, scegliere Valid per scaricare/applicare un nuovokeybox.xml(credenziali di attestation vendor). Questo file sostiene la key attestation hardware ed è ora spoofato da un dispositivo certificato/bloccato. - Verificare: Eseguire Play Integrity API Checker →
MEETS_BASIC_INTEGRITYeMEETS_DEVICE_INTEGRITYdovrebbero passare. In Key Attestation il bootloader appare locked perché la catena di attestation è stata sostituita.
Ottenere MEETS_STRONG_INTEGRITY (Patch-Level Spoof)
STRONG fallisce su patch level obsoleti. TrickyStore può spoofare una data di security patch moderna per tutte le partition:
- In TrickyStore, scegliere Set Security Patch → Get Security Patch Date → Save.
- Rieseguire Play Integrity API Checker;
MEETS_STRONG_INTEGRITYdovrebbe ora passare.
Note Operative
- Rischio di revoca: Colpire ripetutamente l’API con lo stesso
keybox.xmlpuò segnalarlo e bloccarlo. Se bloccato, sostituire con un keybox valido nuovo. - Arms race: I keybox condivisi pubblicamente si esauriscono in fretta; mantenere copie private e seguire gli aggiornamenti dei moduli della community (XDA/Telegram/GitHub) per nuove catene funzionanti.
- Scope: Questo bypass spoofa solo gli input di attestation; la verifica della firma sul backend da parte di Google continua a riuscire perché il JWT stesso è genuino.
Riferimenti
- Play Integrity API: How It Works & How to Bypass It
- ReZygisk
- TrickyStore
- Tricky Addon
- KSU Web UI
- Play Integrity API Checker
- Key Attestation
- Android keybox attestation analysis
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.


