7.5 KiB
Ominięcie uwierzytelniania biometrycznego (Android)
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Pracujesz w firmie zajmującej się cyberbezpieczeństwem? Chcesz zobaczyć swoją firmę reklamowaną w HackTricks? A może chcesz mieć dostęp do najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF? Sprawdź PLAN SUBSKRYPCJI!
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do repozytorium hacktricks i hacktricks-cloud.
Metoda 1 - Ominięcie bez użycia obiektu kryptograficznego
Skupiamy się tutaj na wywołaniu zwrotnym onAuthenticationSucceeded, które jest kluczowe w procesie uwierzytelniania. Badacze z WithSecure opracowali skrypt Frida, umożliwiający ominięcie pustego obiektu CryptoObject w onAuthenticationSucceeded(...). Skrypt wymusza automatyczne ominięcie uwierzytelniania odciskiem palca podczas wywołania tej metody. Poniżej znajduje się uproszczony fragment kodu demonstrujący ominięcie w kontekście odcisku palca w systemie Android, a pełna aplikacja jest dostępna na GitHubie.
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 obsługi wyjątków
Inny skrypt Frida autorstwa WithSecure zajmuje się omijaniem 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 wyjątek. 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 uruchomieniu authenticate()
, wpisz bypass()
w konsoli Frida, aby aktywować bypass:
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 - Frameworki Instrumentacyjne
Frameworki instrumentacyjne, takie jak Xposed lub Frida, mogą być używane do podłączania się do metod aplikacji w czasie wykonywania. Dla uwierzytelniania odciskiem palca, te frameworki mogą:
- Podrobić wywołania uwierzytelniania: Podłączając się do metod
onAuthenticationSucceeded
,onAuthenticationFailed
lubonAuthenticationError
w klasieBiometricPrompt.AuthenticationCallback
, można kontrolować wynik procesu uwierzytelniania odciskiem palca. - Ominięcie SSL Pinning: Pozwala to atakującemu przechwycić i modyfikować ruch między klientem a serwerem, potencjalnie zmieniając proces uwierzytelniania lub kradnąc wrażliwe dane.
Przykładowe polecenie dla Fridy:
frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
Metoda 4 – Reverse Engineering i Modyfikacja Kodu
Narzędzia do reverse engineeringu, takie jak APKTool
, dex2jar
i JD-GUI
, mogą być używane do dekompilacji aplikacji Android, odczytania jej kodu źródłowego i zrozumienia mechanizmu uwierzytelniania. Ogólne kroki obejmują:
- Dekompilacja pliku APK: Konwersja pliku APK na bardziej czytelną dla człowieka formę (np. kod Java).
- Analiza kodu: Szukanie implementacji uwierzytelniania odciskiem palca i identyfikowanie potencjalnych słabości (np. mechanizmów fallback lub nieprawidłowych sprawdzeń walidacji).
- Rekompilacja pliku APK: Po zmodyfikowaniu kodu w celu ominięcia uwierzytelniania odciskiem palca, aplikacja jest rekompilowana, podpisywana i instalowana na urządzeniu w celu przetestowania.
Metoda 5 – Użycie Niestandardowych Narzędzi do Uwierzytelniania
Istnieją specjalistyczne narzędzia i skrypty przeznaczone do testowania i omijania mechanizmów uwierzytelniania. Na przykład:
- Moduły MAGISK: MAGISK to narzędzie dla systemu Android, które umożliwia użytkownikom zrootowanie swoich urządzeń i dodawanie modułów, które mogą modyfikować lub podszywać się pod informacje na poziomie sprzętu, w tym odciski palców.
- Niestandardowe skrypty: Można napisać skrypty do interakcji z Android Debug Bridge (ADB) lub bezpośrednio z backendem aplikacji w celu symulowania lub omijania uwierzytelniania odciskiem palca.
Referencje
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Czy pracujesz w firmie zajmującej się cyberbezpieczeństwem? Chcesz zobaczyć swoją firmę reklamowaną na HackTricks? A może chcesz mieć dostęp do najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF? Sprawdź PLAN SUBSKRYPCJI!
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi trikami hakerskimi, przesyłając PR-y do repozytorium hacktricks i hacktricks-cloud.