hacktricks/mobile-pentesting/android-app-pentesting/bypass-biometric-authentication-android.md

87 lines
7.8 KiB
Markdown
Raw Normal View History

2024-02-10 15:36:32 +00:00
# Umgehung der biometrischen Authentifizierung (Android)
2022-10-26 09:06:33 +00:00
2024-02-08 03:06:37 +00:00
2022-10-26 09:06:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-10-26 09:06:33 +00:00
2024-02-10 15:36:32 +00:00
* 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**](https://github.com/sponsors/carlospolop)!
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* **Treten Sie der** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegramm-Gruppe**](https://t.me/peass) bei oder **folgen** Sie mir auf **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an das [hacktricks-Repository](https://github.com/carlospolop/hacktricks) und das [hacktricks-cloud-Repository](https://github.com/carlospolop/hacktricks-cloud) senden**.
2022-10-26 09:06:33 +00:00
</details>
2024-02-10 15:36:32 +00:00
## **Methode 1 - Umgehung ohne Verwendung eines Crypto-Objekts**
2022-10-26 09:06:33 +00:00
2024-02-10 15:36:32 +00:00
Der Fokus liegt hier auf dem *onAuthenticationSucceeded*-Rückruf, der im Authentifizierungsprozess entscheidend ist. Forscher von WithSecure haben ein [Frida-Skript](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass.js) 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](https://github.com/St3v3nsS/InsecureBanking) verfügbar.
2022-10-26 09:06:33 +00:00
```javascript
biometricPrompt = new BiometricPrompt(this, executor, new BiometricPrompt.AuthenticationCallback() {
2024-02-10 15:36:32 +00:00
@Override
public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) {
Toast.makeText(MainActivity.this,"Success",Toast.LENGTH_LONG).show();
}
2022-10-26 09:06:33 +00:00
});
```
2024-02-10 15:36:32 +00:00
Befehl zum Ausführen des Frida-Skripts:
2024-02-03 14:45:32 +00:00
```bash
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js
2022-10-26 09:06:33 +00:00
```
2024-02-10 15:36:32 +00:00
## **Methode 2 - Ansatz zur Ausnahmebehandlung**
2022-10-26 09:06:33 +00:00
2024-02-10 15:36:32 +00:00
Ein weiteres [Frida-Skript](https://github.com/WithSecureLABS/android-keystore-audit/blob/master/frida-scripts/fingerprint-bypass-via-exception-handling.js) 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.
2022-10-26 09:06:33 +00:00
2024-02-10 15:36:32 +00:00
Befehl zum Ausführen des Frida-Skripts:
2024-02-03 14:45:32 +00:00
```bash
frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js
2022-10-26 09:06:33 +00:00
```
2024-02-10 15:36:32 +00:00
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:
2022-10-26 09:06:33 +00:00
```
2024-02-03 14:45:32 +00:00
Spawning com.generic.insecurebankingfingerprint...
[Android Emulator 5554::com.generic.insecurebankingfingerprint]-> Hooking BiometricPrompt.authenticate()...
2022-10-26 09:06:33 +00:00
Hooking BiometricPrompt.authenticate2()...
Hooking FingerprintManager.authenticate()...
2024-02-03 14:45:32 +00:00
[Android Emulator 5554::com.generic.insecurebankingfingerprint]-> bypass()
2022-10-26 09:06:33 +00:00
```
2024-02-10 15:36:32 +00:00
## **Methode 3 - Instrumentation Frameworks**
2022-10-26 09:06:33 +00:00
2024-02-10 15:36:32 +00:00
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:
2024-02-03 14:45:32 +00:00
2024-02-10 15:36:32 +00:00
1. **Die Authentifizierungs-Callbacks fälschen**: Durch das Einhaken in die Methoden `onAuthenticationSucceeded`, `onAuthenticationFailed` oder `onAuthenticationError` des `BiometricPrompt.AuthenticationCallback` können Sie das Ergebnis des Fingerabdruck-Authentifizierungsprozesses kontrollieren.
2. **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.
2024-02-03 14:45:32 +00:00
2024-02-10 15:36:32 +00:00
Beispielbefehl für Frida:
2024-02-03 14:45:32 +00:00
```bash
frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in
```
2024-02-10 15:36:32 +00:00
## **Methode 4 - Reverse Engineering & Code-Änderung**
2024-02-03 14:45:32 +00:00
2024-02-10 15:36:32 +00:00
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:
2024-02-03 14:45:32 +00:00
2024-02-10 15:36:32 +00:00
1. **Dekompilieren der APK**: Die APK-Datei in ein für Menschen lesbares Format (wie Java-Code) konvertieren.
2. **Analyse des Codes**: Nach der Implementierung der Fingerabdruck-Authentifizierung suchen und potenzielle Schwachstellen identifizieren (wie Ausweichmechanismen oder unzureichende Validierungsprüfungen).
3. **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.
2024-02-03 14:45:32 +00:00
2024-02-10 15:36:32 +00:00
## **Methode 5 - Verwendung von benutzerdefinierten Authentifizierungstools**
2024-02-03 14:45:32 +00:00
2024-02-10 15:36:32 +00:00
Es gibt spezialisierte Tools und Skripte, die entwickelt wurden, um Authentifizierungsmechanismen zu testen und zu umgehen. Zum Beispiel:
2024-02-03 14:45:32 +00:00
2024-02-10 15:36:32 +00:00
1. **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.
2. **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.
2024-02-03 14:45:32 +00:00
2024-02-10 15:36:32 +00:00
## Referenzen
2024-02-03 14:45:32 +00:00
* [https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/](https://securitycafe.ro/2022/09/05/mobile-pentesting-101-bypassing-biometric-authentication/)
2022-10-26 09:06:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-10-26 09:06:33 +00:00
2024-02-10 15:36:32 +00:00
* 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**](https://github.com/sponsors/carlospolop)!
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* **Treten Sie der** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegramm-Gruppe**](https://t.me/peass) bei oder **folgen** Sie mir auf **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an das [hacktricks-Repository](https://github.com/carlospolop/hacktricks) und das [hacktricks-cloud-Repository](https://github.com/carlospolop/hacktricks-cloud) senden**.
2022-10-26 09:06:33 +00:00
</details>