Bypass Biometric Authentication (Android)

Support HackTricks

Method 1 – Bypassing with No Crypto Object Usage

Η εστίαση εδώ είναι στο onAuthenticationSucceeded callback, το οποίο είναι κρίσιμο στη διαδικασία αυθεντικοποίησης. Ερευνητές από την WithSecure ανέπτυξαν ένα Frida script, που επιτρέπει την παράκαμψη του NULL CryptoObject στο onAuthenticationSucceeded(...). Το script αναγκάζει μια αυτόματη παράκαμψη της αυθεντικοποίησης δακτυλικού αποτυπώματος κατά την κλήση της μεθόδου. Παρακάτω είναι ένα απλοποιημένο απόσπασμα που δείχνει την παράκαμψη σε ένα περιβάλλον Android Fingerprint, με την πλήρη εφαρμογή διαθέσιμη στο 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();
}
});

Εντολή για να εκτελέσετε το σενάριο Frida:

frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass.js

Μέθοδος 2 – Προσέγγιση Διαχείρισης Εξαιρέσεων

Άλλο Frida script από την WithSecure ασχολείται με την παράκαμψη της ανασφαλούς χρήσης αντικειμένων κρυπτογράφησης. Το script καλεί το onAuthenticationSucceeded με ένα CryptoObject που δεν έχει εξουσιοδοτηθεί από ένα δακτυλικό αποτύπωμα. Εάν η εφαρμογή προσπαθήσει να χρησιμοποιήσει ένα διαφορετικό αντικείμενο κρυπτογράφησης, θα προκαλέσει μια εξαίρεση. Το script προετοιμάζεται να καλέσει το onAuthenticationSucceeded και να διαχειριστεί την javax.crypto.IllegalBlockSizeException στην κλάση Cipher, διασφαλίζοντας ότι τα επόμενα αντικείμενα που χρησιμοποιούνται από την εφαρμογή είναι κρυπτογραφημένα με το νέο κλειδί.

Εντολή για να εκτελέσετε το Frida script:

frida -U -f com.generic.insecurebankingfingerprint --no-pause -l fingerprint-bypass-via-exception-handling.js

Μόλις φτάσετε στην οθόνη δακτυλικών αποτυπωμάτων και την εκκίνηση του authenticate(), πληκτρολογήστε bypass() στην κονσόλα Frida για να ενεργοποιήσετε την παράκαμψη:

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()

Μέθοδος 3 – Πλαίσια Εργαλείων

Τα πλαίσια εργαλείων όπως το Xposed ή το Frida μπορούν να χρησιμοποιηθούν για να συνδεθούν με τις μεθόδους εφαρμογής κατά την εκτέλεση. Για την αυθεντικοποίηση δακτυλικών αποτυπωμάτων, αυτά τα πλαίσια μπορούν να:

  1. Μιμηθούν τις Κλήσεις Αυθεντικοποίησης: Συνδέοντας τις μεθόδους onAuthenticationSucceeded, onAuthenticationFailed ή onAuthenticationError του BiometricPrompt.AuthenticationCallback, μπορείτε να ελέγξετε το αποτέλεσμα της διαδικασίας αυθεντικοποίησης δακτυλικών αποτυπωμάτων.

  2. Παρακάμψουν το SSL Pinning: Αυτό επιτρέπει σε έναν επιτιθέμενο να παρεμβαίνει και να τροποποιεί την κίνηση μεταξύ του πελάτη και του διακομιστή, ενδεχομένως αλλάζοντας τη διαδικασία αυθεντικοποίησης ή κλέβοντας ευαίσθητα δεδομένα.

Παράδειγμα εντολής για το Frida:

frida -U -l script-to-bypass-authentication.js --no-pause -f com.generic.in

Μέθοδος 4 – Αντίστροφη Μηχανική & Τροποποίηση Κώδικα

Εργαλεία αντίστροφης μηχανικής όπως το APKTool, dex2jar και JD-GUI μπορούν να χρησιμοποιηθούν για να αποσυμπιέσουν μια εφαρμογή Android, να διαβάσουν τον πηγαίο κώδικα και να κατανοήσουν τον μηχανισμό αυθεντικοποίησης. Τα βήματα περιλαμβάνουν γενικά:

  1. Αποσυμπίεση του APK: Μετατροπή του αρχείου APK σε μια πιο αναγνώσιμη μορφή (όπως ο κώδικας Java).

  2. Ανάλυση του Κώδικα: Αναζήτηση της υλοποίησης της αυθεντικοποίησης δακτυλικών αποτυπωμάτων και αναγνώριση πιθανών αδυναμιών (όπως μηχανισμοί εναλλακτικής αυθεντικοποίησης ή ακατάλληλοι έλεγχοι επικύρωσης).

  3. Επανασυμπίεση του APK: Μετά την τροποποίηση του κώδικα για να παρακαμφθεί η αυθεντικοποίηση δακτυλικών αποτυπωμάτων, η εφαρμογή επανασυμπιέζεται, υπογράφεται και εγκαθίσταται στη συσκευή για δοκιμή.

Μέθοδος 5 – Χρήση Εργαλείων Αυθεντικοποίησης Προσαρμοσμένων

Υπάρχουν εξειδικευμένα εργαλεία και σενάρια σχεδιασμένα για να δοκιμάσουν και να παρακάμψουν μηχανισμούς αυθεντικοποίησης. Για παράδειγμα:

  1. MAGISK Modules: Το MAGISK είναι ένα εργαλείο για Android που επιτρέπει στους χρήστες να αποκτούν πρόσβαση στη ρίζα των συσκευών τους και να προσθέτουν modules που μπορούν να τροποποιήσουν ή να παραποιήσουν πληροφορίες σε επίπεδο υλικού, συμπεριλαμβανομένων των δακτυλικών αποτυπωμάτων.

  2. Προσαρμοσμένα Σενάρια: Μπορούν να γραφούν σενάρια για να αλληλεπιδρούν με την Android Debug Bridge (ADB) ή απευθείας με το backend της εφαρμογής για να προσομοιώσουν ή να παρακάμψουν την αυθεντικοποίηση δακτυλικών αποτυπωμάτων.

Αναφορές

Support HackTricks

Last updated