Bypass Biometric Authentication (Android)

рд╕реАрдЦреЗрдВ рдФрд░ рдкреНрд░реИрдХреНрдЯрд┐рд╕ рдХрд░реЗрдВ 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 рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред

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 тАУ рдЕрдкрд╡рд╛рдж рдкреНрд░рдмрдВрдзрди рджреГрд╖реНрдЯрд┐рдХреЛрдг

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.

Frida script рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб:

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 рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рдХрдорд╛рдВрдб:

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) рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЕрдиреБрдХрд░рдг рдпрд╛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдВрджрд░реНрдн

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated