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

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: wymaga DEVICE plus 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:

  1. Ukryj root, żeby lokalne sprawdzenia i sondy Play Services nie widziały Magisk/su.
  2. Zamień key attestation certificate chain (keybox.xml) na taką z prawdziwego urządzenia, aby Play Integrity widział urządzenie certyfikowane/z zablokowanym bootloaderem.
  3. 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

Uzyskanie MEETS_BASIC_INTEGRITY + MEETS_DEVICE_INTEGRITY

  1. Zainstaluj moduły & reboot: Flashuj TrickyStore i Tricky Addon w Magisk, reboot.
  2. Skonfiguruj TrickyStore (przez KSU Web UI): Wybierz TrickyStoreSelect AllDeselect UnnecessarySave.
  3. Wstrzyknięcie prawidłowego keyboxa: W Keybox wybierz Valid, aby pobrać/zastosować nowy keybox.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.
  4. Weryfikacja: Uruchom Play Integrity API CheckerMEETS_BASIC_INTEGRITY i MEETS_DEVICE_INTEGRITY powinny 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:

  1. W TrickyStore wybierz Set Security PatchGet Security Patch DateSave.
  2. Ponownie uruchom Play Integrity API Checker; MEETS_STRONG_INTEGRITY powinien teraz przejść.

Uwagi operacyjne

  • Ryzyko unieważnienia: Wielokrotne uderzanie w API tym samym keybox.xml moż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

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