Play Integrity Attestation Bypass (SafetyNet Replacement)
Tip
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Co robi Play Integrity
Play Integrity jest następcą Google SafetyNet dla app attestation. Aplikacja wywołuje API, Google Play Services zbiera sygnały software/hardware, wysyła je zaszyfrowane do googleapis.com, a Google zwraca JWT, który jest podpisany i zaszyfrowany przez Google. Aplikacja przekazuje token do swojego backendu, który weryfikuje podpis za pomocą klucza publicznego Google, odszyfrowuje payload i egzekwuje politykę na podstawie pól werdyktu:
appIntegrity: zgodność build/signature APK (brak repack/tamper).deviceIntegrity: urządzenie oryginalne i certyfikowane, zablokowany bootloader, brak roota/modyfikacji systemu.accountDetails: instalacja przez Google Play.
Kluczowe flagi werdyktu często egzekwowane:
MEETS_BASIC_INTEGRITY: token wygenerowany przez oryginalne Play Services (nie emulator/zmodyfikowany transport).MEETS_DEVICE_INTEGRITY: urządzenie oryginalne/certyfikowane, bootloader zablokowany, brak roota/modyfikacji systemu.MEETS_STRONG_INTEGRITY: wymagaDEVICEplus najnowsze poprawki bezpieczeństwa na wszystkich partycjach (OS + vendor).
Bypass Model
Zamiast fałszować JWT Google, sfałszuj sygnały oceniane przez Google tak, aby odpowiadały profilowi innego, legalnego urządzenia. Łańcuch ataku:
- Ukryj root, żeby lokalne sprawdzenia i sondy Play Services nie widziały Magisk/su.
- Zamień key attestation certificate chain (
keybox.xml) na taką z prawdziwego urządzenia, aby Play Integrity widział urządzenie certyfikowane/z zablokowanym bootloaderem. - Podszyj się pod security patch level, aby spełnić
MEETS_STRONG_INTEGRITY.
Google przeciwdziała poprzez unieważnianie nadużywanych keyboxów; konieczna jest rotacja, gdy keybox zostanie zablokowany.
Wymagania wstępne & narzędzia
- Root hiding: ReZygisk (lub ZygiskNext). Wyłącz Zygisk, włącz Magisk Hide, zainstaluj moduł, reboot.
- Key attestation spoofing: TrickyStore + Tricky Addon (moduły Magisk).
- UI helper: KSU Web UI do sterowania TrickyStore.
- Validation: Play Integrity API Checker oraz Key Attestation APK.
- Opcjonalne tło na temat materiału klucza attestation: https://tryigit.dev/android-keybox-attestation-analysis
Uzyskanie MEETS_BASIC_INTEGRITY + MEETS_DEVICE_INTEGRITY
- Zainstaluj moduły & reboot: Flashuj TrickyStore i Tricky Addon w Magisk, reboot.
- Skonfiguruj TrickyStore (przez KSU Web UI): Wybierz
TrickyStore→Select All→Deselect Unnecessary→ Save. - Wstrzyknięcie prawidłowego keyboxa: W
Keyboxwybierz Valid, aby pobrać/zastosować nowykeybox.xml(poświadczenia vendor attestation). Ten plik leży u podstaw hardware key attestation i jest teraz sfałszowany z urządzenia certyfikowanego/z zablokowanym bootloaderem. - Weryfikacja: Uruchom Play Integrity API Checker →
MEETS_BASIC_INTEGRITYiMEETS_DEVICE_INTEGRITYpowinny przejść. W Key Attestation bootloader będzie widoczny jako locked, ponieważ łańcuch attestation został podmieniony.
Uzyskanie MEETS_STRONG_INTEGRITY (Patch-Level Spoof)
STRONG pada na przestarzałych poziomach patcha. TrickyStore potrafi sfałszować nową datę security patch dla wszystkich partycji:
- W TrickyStore wybierz Set Security Patch → Get Security Patch Date → Save.
- Ponownie uruchom Play Integrity API Checker;
MEETS_STRONG_INTEGRITYpowinien teraz przejść.
Uwagi operacyjne
- Ryzyko unieważnienia: Wielokrotne uderzanie w API tym samym
keybox.xmlmoże oznaczyć go i zablokować. Jeśli zostanie zablokowany, podmień na świeży, prawidłowy keybox. - Wyścig: Publicznie udostępniane keyboxy szybko się wypalają; trzymaj prywatne kopie i śledź aktualizacje modułów społeczności (XDA/Telegram/GitHub) w poszukiwaniu nowych działających łańcuchów.
- Zakres: Ten bypass tylko sfałszowuje wejścia attestation; weryfikacja podpisu po stronie backendu przez Google nadal się powiedzie, ponieważ sam JWT jest oryginalny.
References
- 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
Ucz się i ćwicz Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.


