7.1 KiB
Bypass Biometric Authentication (Android)
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Metoda 1 – Ominięcie bez użycia obiektu Crypto
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, z pełną aplikacją dostępną na GitHub.
biometricPrompt = new BiometricPrompt(this, executor, new BiometricPrompt.AuthenticationCallback() {
@Override
public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) {
Toast.makeText(MainActivity.this,"Success",Toast.LENGTH_LONG).show();
}
});
Polecenie do uruchomienia skryptu Frida:
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js
Metoda 2 – Podejście do obsługi wyjątków
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 wystąpienie 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:
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
Po dotarciu do ekranu odcisku palca i rozpoczęciu authenticate()
, wpisz bypass()
w konsoli Frida, aby aktywować obejście:
Spawning com.generic.insecurebankingfingerprint...
[Android Emulator 5554::com.generic.insecurebankingfingerprint]-> Hooking BiometricPrompt.authenticate()...
Hooking BiometricPrompt.authenticate2()...
Hooking FingerprintManager.authenticate()...
[Android Emulator 5554::com.generic.insecurebankingfingerprint]-> bypass()
Metoda 3 – Ramy Instrumentacji
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 Uwierzytelniania: Poprzez podłączenie się do metod
onAuthenticationSucceeded
,onAuthenticationFailed
lubonAuthenticationError
klasyBiometricPrompt.AuthenticationCallback
, możesz kontrolować wynik procesu uwierzytelniania 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:
frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
Metoda 4 – Inżynieria wsteczna i modyfikacja kodu
Narzędzia do inżynierii wstecznej, takie jak APKTool
, dex2jar
i JD-GUI
, mogą być używane do dekompilacji aplikacji na Androida, odczytania 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.
Metoda 5 – Użycie niestandardowych narzędzi uwierzytelniających
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 rootowanie swoich 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.
Odniesienia
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się trikami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.