Παράκαμψη Βιομετρικής Αυθεντικοποίησης (Android)

Reading time: 5 minutes

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

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

Η εστίαση εδώ είναι στο onAuthenticationSucceeded callback, το οποίο είναι κρίσιμο στη διαδικασία αυθεντικοποίησης. Ερευνητές από την WithSecure ανέπτυξαν ένα Frida script, που επιτρέπει την παράκαμψη του NULL CryptoObject στο onAuthenticationSucceeded(...). Το script αναγκάζει μια αυτόματη παράκαμψη της αυθεντικοποίησης δακτυλικού αποτυπώματος κατά την κλήση της μεθόδου. Παρακάτω είναι ένα απλοποιημένο απόσπασμα που δείχνει την παράκαμψη σε ένα περιβάλλον Δακτυλικού Αποτυπώματος Android, με την πλήρη εφαρμογή διαθέσιμη στο GitHub.

javascript
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:

bash
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:

bash
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:

bash
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 της εφαρμογής για να προσομοιώσουν ή να παρακάμψουν την αυθεντικοποίηση με δακτυλικά αποτυπώματα.

Αναφορές

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks