Bypass Biometric Authentication (Android)

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Μέθοδος 1 - Παράκαμψη χωρίς χρήση Crypto Object

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

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: Το MAGISK είναι ένα εργαλείο για Android που επιτρέπει στους χρήστες να ρουτάρουν τις συσκευές τους και να προσθέτουν ενότητες που μπορούν να τροποποιήσουν ή να παραπλανήσουν πληροφορίες σε επίπεδο υλικού, συμπεριλαμβανομένων των δακτυλικών αποτυπωμάτων.

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

Αναφορές

Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Last updated