Bypass Biometric Authentication (Android)
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Deepen your expertise in Mobile Security with 8kSec Academy. Master iOS and Android security through our self-paced courses and get certified:
Skupiamy się tutaj na onAuthenticationSucceeded callback, który jest kluczowy w procesie uwierzytelniania. Badacze z WithSecure opracowali skrypt Frida, umożliwiający ominięcie NULL CryptoObject w onAuthenticationSucceeded(...). Skrypt wymusza automatyczne ominięcie uwierzytelniania odciskiem palca po wywołaniu metody. Poniżej znajduje się uproszczony fragment demonstrujący ominięcie w kontekście Android Fingerprint, a pełna aplikacja jest dostępna na GitHub.
Polecenie do uruchomienia skryptu Frida:
Inny skrypt Frida od WithSecure dotyczy omijania niebezpiecznego użycia obiektu kryptograficznego. Skrypt wywołuje onAuthenticationSucceeded z CryptoObject, który nie został autoryzowany przez odcisk palca. Jeśli aplikacja spróbuje użyć innego obiektu szyfrującego, spowoduje to wywołanie wyjątku. Skrypt przygotowuje się do wywołania onAuthenticationSucceeded i obsługi javax.crypto.IllegalBlockSizeException w klasie Cipher, zapewniając, że kolejne obiekty używane przez aplikację są szyfrowane nowym kluczem.
Polecenie do uruchomienia skryptu Frida:
Po dotarciu do ekranu odcisku palca i rozpoczęciu authenticate()
, wpisz bypass()
w konsoli Frida, aby aktywować obejście:
Ramy instrumentacji, takie jak Xposed lub Frida, mogą być używane do podłączania się do metod aplikacji w czasie rzeczywistym. W przypadku uwierzytelniania za pomocą odcisku palca, te ramy mogą:
Zasymulować Wywołania Uwierzytelnienia: Poprzez podłączenie się do metod onAuthenticationSucceeded
, onAuthenticationFailed
lub onAuthenticationError
klasy BiometricPrompt.AuthenticationCallback
, możesz kontrolować wynik procesu uwierzytelniania za pomocą odcisku palca.
Obejść SSL Pinning: To pozwala atakującemu na przechwycenie i modyfikację ruchu między klientem a serwerem, potencjalnie zmieniając proces uwierzytelniania lub kradnąc wrażliwe dane.
Przykładowe polecenie dla Frida:
Narzędzia do inżynierii wstecznej, takie jak APKTool
, dex2jar
i JD-GUI
, mogą być używane do dekompilacji aplikacji na Androida, odczytywania jej kodu źródłowego i zrozumienia mechanizmu uwierzytelniania. Kroki zazwyczaj obejmują:
Dekompilacja APK: Konwersja pliku APK na bardziej czytelny format (np. kod Java).
Analiza kodu: Szukanie implementacji uwierzytelniania za pomocą odcisku palca i identyfikacja potencjalnych słabości (np. mechanizmy zapasowe lub niewłaściwe kontrole walidacji).
Rekompilacja APK: Po modyfikacji kodu w celu ominięcia uwierzytelniania za pomocą odcisku palca, aplikacja jest rekompilowana, podpisywana i instalowana na urządzeniu do testowania.
Istnieją specjalistyczne narzędzia i skrypty zaprojektowane do testowania i omijania mechanizmów uwierzytelniania. Na przykład:
Moduły MAGISK: MAGISK to narzędzie dla Androida, które pozwala użytkownikom na uzyskanie dostępu do roota ich urządzeń i dodawanie modułów, które mogą modyfikować lub fałszować informacje na poziomie sprzętowym, w tym odciski palców.
Niestandardowe skrypty: Skrypty mogą być pisane w celu interakcji z Android Debug Bridge (ADB) lub bezpośrednio z backendem aplikacji, aby symulować lub omijać uwierzytelnianie za pomocą odcisku palca.
Zgłębiaj swoją wiedzę w Bezpieczeństwie Mobilnym z 8kSec Academy. Opanuj bezpieczeństwo iOS i Androida dzięki naszym kursom w trybie samodzielnym i uzyskaj certyfikat:
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)