Брутфорс пароля или PIN-кода Android с использованием oclHashcat
Брутфорс пароля или PIN-кода Android с использованием oclHashcat
Для восстановления пароля или PIN-кода Android возможно применение техники перебора паролей — брутфорс (англ. brute force — метод «грубой силы»). Чтобы осуществить брутфорс атаку необходимо получить хеш пароля/PIN-кода и соль. Хеш пароля хранится в файле /data/system/password.key. Соль находится в базе данных формата SQlite — /data/data/com.android.providers.settings/databases/settings.db или /data/system/locksettings.db (зависит от версии Android). Чтение базы данных можно осуществить с помощью sqlite3 на самом устройстве или на компьютере с помощью дополнения к Firefox — SQLite Manager. Также потребуется файл /data/system/device_policies.xml, который содержит информацию о количестве символов в пароле и типе символов (цифры, буквы, спец.символы). Это поможет уменьшить набор комбинаций символов и использовать атаку по маске.
Чтобы получить доступ в раздел /data, потребуется установка кастомного рекавери, например, ClockworkMod Recovery (CWM). После этого можно осуществить доступ с компьютера через интерфейс Android Debug Bridge (ADB) в режиме рекавери и примонтировать раздел /data (это можно сделать и через меню CWM). Еще лучше, если на устройстве имеется root-доступ (хотя это и не обязательно). Подробное описание затрагивает слишком много деталей, зависит от конкретного устройства и требуют отдельной статьи.
Если осуществлять доступ к устройству через ADB с запущенной ОС Android, то должна быть включена отладка USB (в разделе «Настройки» — «Параметры разработчика») на взламываемом устройстве, которая на многих телефонах по умолчанию отключена, но даже если отладка включена, то в большинстве случаев нет доступа на запуск adb root:
Существует много разных программ для брутфорса паролей. Я предпочитаю использовать пакет oclHashcat, который содержит 32- и 64-разрядные версии программ, использующих GPU (графический процессор), как для Linux, так и для Windows. OclHashcat поддерживает большое количество алгоритмов, среди которых Samsung Android Password/PIN, TrueCrypt, 1Password, Oracle и т.д. Позволяет задействовать до 128 GPU. На сайте разработчика доступен пакет Hashcat, который использует только CPU. Для Hashcat и oclHashcat имеется графический интерфейс.
Итак, скачиваем последнюю версию oclHashcat (на момент написания данной статьи — v1.00). Распаковываем в любую папку, например, C:\oclHashcat-1.00. Для Windows систем запускаем командную строку Пуск -> Выполнить -> cmd. Перемещаемся в директорию, в которую распаковали oclHashcat — cd С:\oclHashcat-1.00. Если используется оборудование NVIDIA, то необходимо запускать файлы, название которых начинается с «cuda». В системе должен быть установлен драйвер ForceWare версии 319.37 или выше. Если используется оборудование AMD, то необходимо запускать файлы, название которых начинается с «ocl». В случае с AMD требуется драйвер Catalyst версии 13.4 или выше.
В Android минимальная длина пароля на экран блокировки (PIN-код), который может задать пользователь, составляет 4 символа. Подбор пароля, состоящего из 4-х символов (3 цифры и 1 буква), на компьютере под управлением 64-разрядной ОС Windows 7 на процессоре Intel Хeon E5-2620 c 32 Гб оперативной памяти на борту и видеокартой AMD Radeon HD 7900 с помощью программы oclHashcat составляет 1 секунду. Подбор пароля из 8 цифр на данном оборудовании занял 33 секунды. Подбор 6-х символьного пароля, состоящего из 3-х букв и 3-х цифр, составил 1 минуту 47 секунд.
Брутфорс пароля из 6 символов
Рассмотрим пример брутфорса пароля/PIN-кода в Android 4.1, состоящий из 6 символов — 3 буквы и 3 цифры. Узнаем хеш пароля в файле /data/system/password.key — 3989E1BE85F17D31A8261593B97342A88DA9CA5C.
Извлекаем соль из базы данных /data/system/locksettings.db (SELECT * FROM locksettings where name=’lockscreen.password_salt’), в данном случае соль — 5733049674662994238. В некоторых версиях Android соль находится в /data/data/com.android.providers.settings/databases/settings.db (SELECT * FROM secure WHERE name =’lockscreen.password_salt’).
Преобразуем соль в hex в нижнем регистре: 4f8fe24dd9f4e13e.
Узнаем длину и тип символов в файле /data/system/device_policies.xml:
Запускаем oclHashcat64.exe со следующими параметрами:
oclHashcat64.exe -a 3 -n 160 -u 1024 -m 5800 -1 ?d?l 3989e1be85f17d31a8261593b97342a88da9ca5c:4f8fe24dd9f4e13e ?1?1?1?1?1?1
«-a 3» — режим атаки, в данном случае режим 3 означает брутфорс;
«-n 160» — gpu-accel, может принимать значения: 1, 8, 40, 80, 160. Опция «-n» указывает степень загрузки GPU. Значение по умолчанию равно 80.
«-u 1024» — gpu-loops, может принимать значения: 8 — 1024;
Значения gpu-accel и gpu-loops индивидуальны для каждой карты. Вы должны экспериментировать с ними и подобрать оптимальные значения, чтобы повысить производительность перебора, оставив при этом ресурсы для стабильной работы остальных приложений. Следует помнить, что чем выше значения, тем сильнее нагрев GPU. Использование максимальных значений для пользователей Windows Vista и Windows 7 может привести к перезагрузке графического драйвера. Это связано с внедрением WDDM (Windows Display Driver Model) — архитектуры графических драйверов для видеокарты под управлением Microsoft Windows, начиная с Windows Vista. Если драйвер WDDM зависнет, то графический стек перезапустит драйвер. Эта полезная особенность предотвращает замораживание, однако процесс перебора в таком случае прерывается. Для пользователей Vista и Windows 7 существует патч, который отключает восстановление WDDM.
«-m 5800» — тип хеша, 5800 — Samsung Android Password/PIN;
«-1 ?d?l» — собственный набор символов, который можно определить с помощью параметра «-1» (или «-2″,»-3″,»-4″). Доступны следующие предустановленные наборы символов:
?l = буквы в нижнем регистре (a-z);
?u = буквы в верхнем регистре (A-Z);
?d = все цифры (0-9);
?a = ?l?u?d?s;
?s = спец.символы( !»#$%&'()*+,-./:; ?@[\]^_`
При использовании нескольких карточек их нужно указывать в опции «-d» (gpu-devices) через запятую, например, «-d 1,2». Если хотите задействовать только вторую карту , то указывайте «-d 2».
В данном случае искомый пароль «mnm890». Время перебора составило 1 минуту 47 секунд. Полное количество вариантов перебора составляет 36 6 = 2176782336, где 36 это сумма цифр и букв в нижнем регистре, 6 — длина пароля.
При нажатии «s» (статус) можно наблюдать за процессом брутфорса: скорость перебора (Speed), количество перебранных вариантов (Progress), время перебора и другие значения. О степени использовании GPU информирует строка HWMon.GPU.
Для того, чтобы взломать пароль на экран блокировки в Android существуют и другие методы, например, изменение параметров системы, но они зависят от конкретного устройства. Метод брутфорса является универсальным, а с помощью OclHashcat можно осуществить подбор и расшифровку различных паролей с высокой эффективностью.
Источник
Android pin bruteforce code
Android PIN Bruteforce
Unlock an Android phone or device
by bruteforcing the lockscreen PIN.
Turn any Kali Nethunter phone into
bruteforce PIN cracker of Android!
To learn about the commands and other usage details Click Here.
It uses a USB OTG cable to connect the locked phone to the Nethunter device.
It emulates a keyboard, automatically tries PINs, and waits after trying too many wrong guesses.
[Nethunter phone] ⇌ [USB cable] ⇌ [USB OTG adaptor] ⇌ [Locked Android phone]
The USB HID Gadget driver provides emulation of USB Human Interface Devices (HID).
This enables an Android Nethunter device to emulate keyboard input to the locked phone.
It’s just like plugging a keyboard into the locked phone and pressing keys.
⏳ This takes a bit over 16.6 hours to try all possible 4 digit PINs,
but with the optimised PIN list it should take you much less time.
- A locked Android phone
- A Nethunter phone (or any rooted Android with HID kernel support)
- USB OTG (On The Go) cable/adapter (USB male Micro-B to female USB A),
and a standard charging cable (USB male Micro-B to male A).
- Turn your NetHunter phone into an Android PIN cracking machine
- Unlike other methods, you do not need ADB or USB debugging enabled on the locked phone
- You don’t need to buy special hardware, e.g. Rubber Ducky, Teensy, Cellebrite, XPIN Clip, etc.
- You can easily modify the backoff time to crack other types of devices
- It works!
- Optimised PIN list
- Bypasses phone pop-ups including the Low Power warning
- Detects when the phone is unplugged or powered off, and waits while retrying every 5 seconds
- Configurable delays of N seconds after every X PIN attempts
- Log file gets created for further debugging
Optimised PIN list
pinlist.txt is an optimised list of all possible 4 digit PINs,
sorted by order of likelihood. pinlist.txt is from the following:
https://github.com/mandatoryprogrammer/droidbrute
This list is used with permission from Justin Engler & Paul Vines from Senior Security Engineer, iSEC Partners, and was used in their Defcon talk, Electromechanical PIN Cracking with Robotic Reconfigurable Button Basher (and C3BO)
🎭 Cracking with Masks
Masks use regular expressions with the standard grep extended format.
./android-pin-bruteforce crack —mask «. [45]» —dry-run
- To try all years from 1900 to 1999, use a mask of 19..
- To try PINs that have a 1 in the first digit, and a 1 in the last digit, use a mask of 1..1
- To try PINs that end in 4 or 5, use . [45]
Executing the script
If you installed the script to /sdcard/, you can
execute it with the following command.
Note that Android mounts /sdcard with the noexec flag. You can verify this with mount .
Check the cables
The OTG cable should be connected to the locked Android phone.
The regular USB cable should be connected to the Nethunter phone.
Use the diagnostic command.
bash ./android-pin-bruteforce diag
Note that Nethunter USB HID support was inconsistent during testing and development.
However after it starts working, it should continue working until you crack the PIN.
If you receive this message when the USB cable is plugged in then try taking
the battery out of the locked Android phone and power cycling it.
[FAIL] HID USB device not ready. Return code from /system/xbin/hid-keyboard was 5.
- This cannot detect when it unlocks
- Try powering off the phone and taking out the battery
- Try sending keys to your PC or laptop
- Note that the Device not Found messages
are not as important as sending keys successfully.
This works from an Android phone because the USB ports
are not bidirectional, unlike the ports on a laptop.
Keys are sent using /system/xbin/hid-keyboard .
To test this and send the key 1 you can use the following:
echo 1 | /system/xbin/hid-keyboard dev/hidg0 keyboard
Before each PIN, we send the escape and enter keys. This is to keep the Android responsive and dismiss any popups about the number of incorrect PIN attempts or a low battery warning. My original motivation to develop this was to unlock a Samsung S5 Android phone. It had belonged to someone who had passed away, and their family needed access to the data on it. As I didn’t have a USB Rubber Ducky or any other hardware handy, I tried using a variety of methods, and eventually realised I had to develop something new.
Work: Andrew Horton designed the Bruteforce tool
which helped me a lot to design my piece of Bash Script
Click here to visit his Bruteforce Bash Script Repository.
Work: The optimised PIN list is from Justin Engler & Paul Vines
from Senior Security Engineer, iSEC Partners and was used in their
Defcon talk, Electromechanical PIN Cracking with Robotic
Reconfigurable Button Basher and C3BO.
About
Turn your Kali Linux PC or Kali Nethunter phone into a brute-force PIN cracker of Android devices!
Источник
На GitHub появилась утилита для подбора PIN-кода к одному смартфону через другой
Практически любой смартфон на Android можно использовать для разблокировки другого устройства на этой же операционной системе. Так утверждает автор утилиты Android-PIN-Bruteforce, которая может превратить Android-гаджет в инструмент взлома.
Для работы утилиты понадобится кабель USB OTG, чтобы подключиться к заблокированному устройству, а также смартфон с Kali Nethunter (оптимизированной платформой с открытым исходным кодом на базе Kali Linux для тестирования на проникновение) или любое другое устройство на Android с ROOT-доступом и поддержкой HID-подсистемы ядра Linux. Android-PIN-Bruteforce имитирует клавиатуру, автоматически перебирает PIN-коды и делает паузу после того, как неправильных попыток оказывается слишком много.
Драйвер USB HID Gadget обеспечивает эмуляцию USB-устройств, таких как клавиатура, мышь или игровой контроллер. В частности, это позволяет имитировать ввод на другом смартфоне подобно тому, как подключить клавиатуру напрямую к заблокированному гаджету и нажимать клавиши. Автор утверждает, что ему потребовалось около 17 часов на перебор всевозможных вариантов четырёхзначного PIN-кода на смартфоне Samsung Galaxy S5. Но с оптимизированным списком PIN-кодов это должно занять гораздо меньше времени.
В отличие от других методов подбора пароля, это решение не требует специального оборудования, а также ROOT-доступа, отладки по ADB или USB на заблокированном смартфоне. Утилита была успешно протестирована на различных смартфонах, включая Galaxy S5, S7, Motorola G4 Plus и G5 Plus. Она может разблокировать Android 6.0.1-10, а возможность выполнить брутфорс зависит от экрана блокировки, которые могут отличаться у производителей смартфонов. Дополнительные сведения про Android-PIN-Bruteforce можно узнать на GitHub.
Источник