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 का उत्तराधिकारी है ऐप attestation के लिए। ऐप API को कॉल करता है, Google Play Services सॉफ़्टवेयर/हार्डवेयर संकेत एकत्र करते हैं, उन्हें googleapis.com पर एन्क्रिप्ट करके भेजते हैं, और Google एक JWT वापस भेजता है जो Google द्वारा signed and encrypted होता है। ऐप टोकन को अपने backend पर भेजता है, जो Google की public key से signature को validate करता है, payload को decrypt करता है, और verdict फील्ड्स के आधार पर पॉलिसी लागू करता है:

  • appIntegrity: APK build/signature match (कोई repack/tamper नहीं)।
  • deviceIntegrity: genuine & certified device, locked bootloader, कोई root/system tamper नहीं।
  • accountDetails: Google Play के माध्यम से installation।

आम तौर पर लागू किए जाने वाले मुख्य verdict flags:

  • MEETS_BASIC_INTEGRITY: token genuine Play Services द्वारा जनरेट किया गया (emulator/tampered transport नहीं)।
  • MEETS_DEVICE_INTEGRITY: genuine/certified device, bootloader locked, कोई root/system tamper नहीं।
  • MEETS_STRONG_INTEGRITY: DEVICE के साथ-साथ सभी partitions (OS + vendor) पर हाल के security patches की आवश्यकता।

Bypass Model

Google के JWT को forge करने की बजाय, उन संकेतों को spoof करें जिन्हें Google evaluate करता है ताकि वे किसी वैध डिवाइस प्रोफ़ाइल के अनुरूप दिखें। attack chain:

  1. root को छुपाएँ ताकि local checks और Play Services probes Magisk/su को न देखें।
  2. key attestation certificate chain (keybox.xml) को किसी genuine डिवाइस के chain से replace करें ताकि Play Integrity certified/locked device देखे।
  3. MEETS_STRONG_INTEGRITY को satisfy करने के लिए security patch level को spoof करें।

Google abused keyboxes को revoke करके mitigate करता है; जब कोई keybox blocked हो जाए तो rotation आवश्यक है।

Prerequisites & Tooling

MEETS_BASIC_INTEGRITY + MEETS_DEVICE_INTEGRITY प्राप्त करना

  1. Modules इंस्टॉल करें & reboot करें: Magisk में TrickyStore और Tricky Addon फ्लैश करें, reboot करें।
  2. TrickyStore को configure करें (KSU Web UI के माध्यम से): TrickyStore चुनें → Select AllDeselect UnnecessarySave
  3. एक valid keybox inject करें: Keybox में, Valid चुनें ताकि नया keybox.xml (vendor attestation credentials) डाउनलोड/apply हो। यह फ़ाइल hardware key attestation को underpin करती है और अब किसी certified/locked device से spoof की गई है।
  4. Verify करें: Play Integrity API Checker चलाएँ → MEETS_BASIC_INTEGRITY और MEETS_DEVICE_INTEGRITY पास होने चाहिए। Key Attestation में bootloader locked दिखाई देता है क्योंकि attestation chain replaced हो चुकी है।

MEETS_STRONG_INTEGRITY प्राप्त करना (Patch-Level Spoof)

STRONG पुराने patch levels पर फेल होता है। TrickyStore सभी partitions के लिए आधुनिक security patch date spoof कर सकता है:

  1. TrickyStore में, Set Security Patch चुनें → Get Security Patch DateSave
  2. फिर से Play Integrity API Checker चलाएँ; MEETS_STRONG_INTEGRITY अब पास हो जाना चाहिए।

Operational Notes

  • Revocation risk: एक ही keybox.xml के साथ API को बार-बार hit करने से वह flag/blocked हो सकता है। अगर blocked हो जाए तो एक नया valid keybox लगाएँ।
  • Arms race: सार्वजनिक रूप से साझा किए गए keyboxes जल्दी burn हो जाते हैं; निजी कॉपी रखें और community module updates (XDA/Telegram/GitHub) को ट्रैक करें नए working chains के लिए।
  • Scope: यह bypass केवल attestation inputs को spoof करता है; backend द्वारा Google के द्वारा signature validation फिर भी सफल रहता है क्योंकि JWT स्वयं genuine है।

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 का समर्थन करें