Bypass Biometric Authentication (Android)
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Основна увага приділяється зворотному виклику onAuthenticationSucceeded, який є критично важливим у процесі аутентифікації. Дослідники з WithSecure розробили скрипт Frida, що дозволяє обійти NULL CryptoObject у onAuthenticationSucceeded(...). Скрипт примусово викликає автоматичний обхід аутентифікації за відбитком пальця під час виклику методу. Нижче наведено спрощений фрагмент, що демонструє обхід у контексті Android Fingerprint, повна програма доступна на GitHub.
Команда для запуску скрипта Frida:
Ще один Frida script від WithSecure вирішує проблему обходу використання небезпечних криптооб'єктів. Скрипт викликає onAuthenticationSucceeded з CryptoObject, який не був авторизований відбитком пальця. Якщо додаток намагається використовувати інший об'єкт шифру, це викличе виключення. Скрипт готується викликати onAuthenticationSucceeded і обробляти javax.crypto.IllegalBlockSizeException у класі Cipher, забезпечуючи, щоб наступні об'єкти, які використовуються додатком, були зашифровані новим ключем.
Команда для запуску скрипта Frida:
При досягненні екрану відбитка пальця та ініціації authenticate()
, введіть bypass()
у консолі Frida, щоб активувати обхід:
Інструментальні фреймворки, такі як Xposed або Frida, можуть бути використані для підключення до методів додатка під час виконання. Для аутентифікації за відбитком пальця ці фреймворки можуть:
Мокати Виклики Аутентифікації: Підключившись до методів onAuthenticationSucceeded
, onAuthenticationFailed
або onAuthenticationError
класу BiometricPrompt.AuthenticationCallback
, ви можете контролювати результат процесу аутентифікації за відбитком пальця.
Обійти SSL Pinning: Це дозволяє зловмиснику перехоплювати та змінювати трафік між клієнтом і сервером, потенційно змінюючи процес аутентифікації або крадучи чутливі дані.
Приклад команди для Frida:
Інструменти реверс-інжинірингу, такі як APKTool
, dex2jar
та JD-GUI
, можуть бути використані для декомпіляції Android-додатку, читання його вихідного коду та розуміння його механізму аутентифікації. Кроки зазвичай включають:
Декомпіляція APK: Перетворення файлу APK у більш зрозумілий формат (наприклад, Java-код).
Аналіз коду: Пошук реалізації аутентифікації за відбитками пальців та виявлення потенційних вразливостей (наприклад, механізмів резервного копіювання або неналежних перевірок валідації).
Рекомпіляція APK: Після модифікації коду для обходу аутентифікації за відбитками пальців, додаток рекомпілюється, підписується та встановлюється на пристрій для тестування.
Існують спеціалізовані інструменти та скрипти, призначені для тестування та обходу механізмів аутентифікації. Наприклад:
MAGISK Модулі: MAGISK – це інструмент для Android, який дозволяє користувачам рутувати свої пристрої та додавати модулі, які можуть модифікувати або підробляти інформацію на апаратному рівні, включаючи відбитки пальців.
Скрипти на замовлення: Скрипти можуть бути написані для взаємодії з Android Debug Bridge (ADB) або безпосередньо з бекендом додатку для симуляції або обходу аутентифікації за відбитками пальців.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)