7.8 KiB
Umgehung der biometrischen Authentifizierung (Android)
Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
- Arbeiten Sie in einem Cybersicherheitsunternehmen? Möchten Sie Ihr Unternehmen in HackTricks bewerben? Oder möchten Sie Zugriff auf die neueste Version von PEASS oder HackTricks im PDF-Format haben? Überprüfen Sie die ABONNEMENTPLÄNE!
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Treten Sie der 💬 Discord-Gruppe oder der Telegramm-Gruppe bei oder folgen Sie mir auf Twitter 🐦@carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an das hacktricks-Repository und das hacktricks-cloud-Repository senden.
Methode 1 - Umgehung ohne Verwendung eines Crypto-Objekts
Der Fokus liegt hier auf dem onAuthenticationSucceeded-Rückruf, der im Authentifizierungsprozess entscheidend ist. Forscher von WithSecure haben ein Frida-Skript entwickelt, das die Umgehung des NULL-CryptoObject in onAuthenticationSucceeded(...) ermöglicht. Das Skript erzwingt eine automatische Umgehung der Fingerabdruck-Authentifizierung bei Aufruf der Methode. Im Folgenden finden Sie ein vereinfachtes Snippet, das die Umgehung in einem Android-Fingerabdruckkontext zeigt. Die vollständige Anwendung ist auf GitHub verfügbar.
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();
}
});
Befehl zum Ausführen des Frida-Skripts:
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js
Methode 2 - Ansatz zur Ausnahmebehandlung
Ein weiteres Frida-Skript von WithSecure behandelt das Umgehen der unsicheren Verwendung von Kryptoobjekten. Das Skript ruft onAuthenticationSucceeded mit einem CryptoObject auf, das nicht von einem Fingerabdruck autorisiert wurde. Wenn die Anwendung versucht, ein anderes Chiffrenobjekt zu verwenden, wird eine Ausnahme ausgelöst. Das Skript bereitet sich darauf vor, onAuthenticationSucceeded aufzurufen und die javax.crypto.IllegalBlockSizeException in der Klasse Cipher zu behandeln, um sicherzustellen, dass nachfolgende von der Anwendung verwendete Objekte mit dem neuen Schlüssel verschlüsselt werden.
Befehl zum Ausführen des Frida-Skripts:
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
Nachdem Sie den Fingerabdruckbildschirm erreicht haben und die Funktion authenticate()
gestartet wurde, geben Sie bypass()
in die Frida-Konsole ein, um den Bypass zu aktivieren:
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()
Methode 3 - Instrumentation Frameworks
Instrumentation-Frameworks wie Xposed oder Frida können verwendet werden, um zur Laufzeit in Anwendungsmethoden einzuhaken. Für die Fingerabdruck-Authentifizierung können diese Frameworks Folgendes tun:
- Die Authentifizierungs-Callbacks fälschen: Durch das Einhaken in die Methoden
onAuthenticationSucceeded
,onAuthenticationFailed
oderonAuthenticationError
desBiometricPrompt.AuthenticationCallback
können Sie das Ergebnis des Fingerabdruck-Authentifizierungsprozesses kontrollieren. - SSL-Pinning umgehen: Dies ermöglicht einem Angreifer, den Datenverkehr zwischen Client und Server abzufangen und zu modifizieren, was potenziell den Authentifizierungsprozess verändern oder sensible Daten stehlen kann.
Beispielbefehl für Frida:
frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
Methode 4 - Reverse Engineering & Code-Änderung
Reverse Engineering-Tools wie APKTool
, dex2jar
und JD-GUI
können verwendet werden, um eine Android-Anwendung zu dekompilieren, ihren Quellcode zu lesen und ihren Authentifizierungsmechanismus zu verstehen. Die Schritte umfassen in der Regel:
- Dekompilieren der APK: Die APK-Datei in ein für Menschen lesbares Format (wie Java-Code) konvertieren.
- Analyse des Codes: Nach der Implementierung der Fingerabdruck-Authentifizierung suchen und potenzielle Schwachstellen identifizieren (wie Ausweichmechanismen oder unzureichende Validierungsprüfungen).
- Rekompilieren der APK: Nach der Modifizierung des Codes zur Umgehung der Fingerabdruck-Authentifizierung wird die Anwendung rekompiliert, signiert und auf dem Gerät zur Überprüfung installiert.
Methode 5 - Verwendung von benutzerdefinierten Authentifizierungstools
Es gibt spezialisierte Tools und Skripte, die entwickelt wurden, um Authentifizierungsmechanismen zu testen und zu umgehen. Zum Beispiel:
- MAGISK-Module: MAGISK ist ein Tool für Android, mit dem Benutzer ihre Geräte rooten und Module hinzufügen können, die Hardware-Ebene-Informationen wie Fingerabdrücke modifizieren oder fälschen können.
- Benutzerdefinierte Skripte: Skripte können geschrieben werden, um mit der Android Debug Bridge (ADB) oder direkt mit dem Backend der Anwendung zu interagieren und die Fingerabdruck-Authentifizierung zu simulieren oder zu umgehen.
Referenzen
Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
- Arbeiten Sie in einem Cybersecurity-Unternehmen? Möchten Sie Ihr Unternehmen in HackTricks bewerben? Oder möchten Sie Zugriff auf die neueste Version des PEASS erhalten oder HackTricks als PDF herunterladen? Überprüfen Sie die ABONNEMENTPLÄNE!
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Holen Sie sich das offizielle PEASS & HackTricks-Merch
- Treten Sie der 💬 Discord-Gruppe oder der Telegramm-Gruppe bei oder folgen Sie mir auf Twitter 🐦@carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an das hacktricks-Repository und das hacktricks-cloud-Repository senden.