बायपास बायोमेट्रिक ऑथेंटिकेशन (एंड्रॉइड)

Reading time: 5 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

विधि 1 – बिना क्रिप्टो ऑब्जेक्ट उपयोग के बायपास करना

यहाँ ध्यान onAuthenticationSucceeded कॉलबैक पर है, जो ऑथेंटिकेशन प्रक्रिया में महत्वपूर्ण है। WithSecure के शोधकर्ताओं ने एक Frida स्क्रिप्ट विकसित की, जो onAuthenticationSucceeded(...) में NULL CryptoObject के बायपास की अनुमति देती है। यह स्क्रिप्ट विधि के आह्वान पर फिंगरप्रिंट ऑथेंटिकेशन का स्वचालित बायपास करने के लिए मजबूर करती है। नीचे एक सरल स्निप्पेट है जो एंड्रॉइड फिंगरप्रिंट संदर्भ में बायपास को प्रदर्शित करता है, पूरी एप्लिकेशन 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 – अपवाद प्रबंधन दृष्टिकोण

Another Frida script by WithSecure addresses bypassing insecure crypto object usage. The script invokes onAuthenticationSucceeded with a CryptoObject that hasn't been authorized by a fingerprint. If the application tries to use a different cipher object, it will trigger an exception. The script prepares to invoke onAuthenticationSucceeded and handle the javax.crypto.IllegalBlockSizeException in the Cipher class, ensuring subsequent objects used by the application are encrypted with the new key.

Command to run the Frida script:

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

फिंगरप्रिंट स्क्रीन पर पहुँचने और authenticate() शुरू करने पर, बायपास सक्रिय करने के लिए Frida कंसोल में bypass() टाइप करें:

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. प्रमाणीकरण कॉलबैक को मॉक करें: BiometricPrompt.AuthenticationCallback के onAuthenticationSucceeded, onAuthenticationFailed, या onAuthenticationError विधियों में हुक करके, आप फिंगरप्रिंट प्रमाणीकरण प्रक्रिया के परिणाम को नियंत्रित कर सकते हैं।
  2. SSL पिनिंग को बायपास करें: यह एक हमलावर को क्लाइंट और सर्वर के बीच ट्रैफ़िक को इंटरसेप्ट और संशोधित करने की अनुमति देता है, संभावित रूप से प्रमाणीकरण प्रक्रिया को बदलने या संवेदनशील डेटा चुराने के लिए।

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 मॉड्यूल: MAGISK एक Android के लिए उपकरण है जो उपयोगकर्ताओं को अपने उपकरणों को रूट करने और मॉड्यूल जोड़ने की अनुमति देता है जो हार्डवेयर-स्तरीय जानकारी, जिसमें फिंगरप्रिंट शामिल हैं, को संशोधित या स्पूफ कर सकते हैं।
  2. कस्टम-निर्मित स्क्रिप्ट: स्क्रिप्ट को Android डिबग ब्रिज (ADB) के साथ बातचीत करने या एप्लिकेशन के बैकएंड के साथ सीधे फिंगरप्रिंट प्रमाणीकरण का अनुकरण या बायपास करने के लिए लिखा जा सकता है।

संदर्भ

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें