Παράκαμψη Play Integrity Attestation (SafetyNet Replacement)
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Τι κάνει το Play Integrity
Play Integrity είναι ο διάδοχος της Google για το SafetyNet όσον αφορά την app attestation. Η εφαρμογή καλεί το API, τα Google Play Services συλλέγουν σημεία δεδομένων λογισμικού/υλικού, τα στέλνουν κρυπτογραφημένα στο googleapis.com, και η Google επιστρέφει ένα JWT που είναι υπογεγραμμένο και κρυπτογραφημένο από την Google. Η εφαρμογή προωθεί το token στο backend της, το οποίο επικυρώνει την υπογραφή με το δημόσιο κλειδί της Google, αποκρυπτογραφεί το payload και εφαρμόζει πολιτική βάσει των πεδίων του verdict:
appIntegrity: ταίριασμα build/signature του APK (χωρίς repack/tamper).deviceIntegrity: αυθεντική & πιστοποιημένη συσκευή, κλειδωμένος bootloader, χωρίς root/tamper στο system.accountDetails: εγκατάσταση μέσω Google Play.
Κύρια flags απόφασης που εφαρμόζονται συχνά:
MEETS_BASIC_INTEGRITY: token δημιουργήθηκε από αυθεντικά Play Services (όχι emulator/παραποιημένη μεταφορά).MEETS_DEVICE_INTEGRITY: αυθεντική/πιστοποιημένη συσκευή, κλειδωμένος bootloader, χωρίς root/tamper στο system.MEETS_STRONG_INTEGRITY: απαιτείDEVICEσυν πρόσφατες ενημερώσεις ασφαλείας σε όλα τα partitions (OS + vendor).
Μοντέλο παράκαμψης
Αντί να πλαστογραφήσουμε το JWT της Google, παραποιούμε τα σήματα που αξιολογεί η Google ώστε να αντιστοιχούν σε ένα διαφορετικό, νόμιμο προφίλ συσκευής. Η αλυσίδα επίθεσης:
- Απόκρυψη root ώστε οι τοπικοί έλεγχοι και οι διερευνήσεις των Play Services να μην βλέπουν Magisk/su.
- Αντικατάσταση της key attestation certificate chain (
keybox.xml) με μία από αυθεντική συσκευή ώστε το Play Integrity να βλέπει πιστοποιημένη/κλειδωμένη συσκευή. - Ψεύτικη καταχώρηση security patch level για να ικανοποιηθεί το
MEETS_STRONG_INTEGRITY.
Η Google αντιμετωπίζει το πρόβλημα με ανάκληση (revoking) των κακόχρηστων keyboxes· απαιτείται ανανέωση/αντικατάσταση όταν ένα keybox μπλοκάρεται.
Προαπαιτούμενα & Εργαλεία
- Root hiding: ReZygisk (ή ZygiskNext). Απενεργοποιήστε Zygisk, ενεργοποιήστε Magisk Hide, εγκαταστήστε το module, επανεκκίνηση.
- Key attestation spoofing: TrickyStore + Tricky Addon (Magisk modules).
- UI helper: KSU Web UI για έλεγχο του TrickyStore.
- Validation: APKs Play Integrity API Checker και Key Attestation.
- Προαιρετικό υπόβαθρο για το attestation key material: https://tryigit.dev/android-keybox-attestation-analysis
Επιτυχία MEETS_BASIC_INTEGRITY + MEETS_DEVICE_INTEGRITY
- Εγκαταστήστε modules & επανεκκίνηση: Φλασάρετε TrickyStore και Tricky Addon στο Magisk, επανεκκινήστε.
- Configure TrickyStore (via KSU Web UI): Select
TrickyStore→Select All→Deselect Unnecessary→ Save. - Inject a valid keybox: Στο
Keybox, επιλέξτε Valid για να κατεβάσετε/εφαρμόσετε ένα νέοkeybox.xml(vendor attestation credentials). Αυτό το αρχείο στηρίζει την hardware key attestation και τώρα παραποιείται από μια πιστοποιημένη/κλειδωμένη συσκευή. - Verify: Τρέξτε Play Integrity API Checker → τα
MEETS_BASIC_INTEGRITYκαιMEETS_DEVICE_INTEGRITYθα πρέπει να περάσουν. Στο Key Attestation ο bootloader εμφανίζεται locked επειδή η αλυσίδα attestation έχει αντικατασταθεί.
Επιτυχία MEETS_STRONG_INTEGRITY (Patch-Level Spoof)
Το STRONG αποτυγχάνει σε παλιές εκδόσεις security patch. Το TrickyStore μπορεί να πλαστογραφήσει μια σύγχρονη ημερομηνία security patch για όλα τα partitions:
- Στο TrickyStore, επιλέξτε Set Security Patch → Get Security Patch Date → Save.
- Τρέξτε ξανά Play Integrity API Checker; το
MEETS_STRONG_INTEGRITYθα πρέπει τώρα να περάσει.
Λειτουργικές Σημειώσεις
- Κίνδυνος ανάκλησης: Η συνεχής χρήση του API με το ίδιο
keybox.xmlμπορεί να το σημαδέψει και να το μπλοκάρει. Αν μπλοκαριστεί, αντικαταστήστε το με ένα νέο έγκυρο keybox. - Ανταγωνισμός: Τα δημόσια shared keyboxes «καίγονται» γρήγορα· κρατήστε ιδιωτικά αντίγραφα και παρακολουθείτε τις ενημερώσεις της κοινότητας (XDA/Telegram/GitHub) για νέες λειτουργικές αλυσίδες.
- Πεδίο: Αυτή η παράκαμψη μόνο παραποιεί τις εισροές attestation· η επαλήθευση της υπογραφής στο backend από την Google εξακολουθεί να πετυχαίνει επειδή το ίδιο το JWT είναι γνήσιο.
Αναφορές
- 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
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.


