Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
bitcracker — BitCracker — это первый инструмент с открытым исходным кодом для подбора паролей к накопителям, зашифрованным с помощью BitLocker. | Kitploit
Инструменты/GitHubGitHub/e-ago/bitcracker
Взлом паролейИнструменты шифрования/дешифрованияКриптография
GitHube-ago/bitcracker

bitcracker

BitCracker — это первый инструмент с открытым исходным кодом для подбора паролей к накопителям, зашифрованным с помощью BitLocker.

Репозиторий
96520784 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

BitCracker

BitCracker — это первый инструмент с открытым исходным кодом для подбора паролей к зашифрованным устройствам хранения данных (жесткие диски, USB-флешки, SD-карты и т.д.), зашифрованным с помощью BitLocker — функции шифрования, доступной в Windows Vista, 7, 8.1 и 10 (издания Ultimate, Pro и Enterprise). BitLocker предлагает несколько различных методов аутентификации для шифрования устройства хранения, таких как Trusted Platform Module (TPM), Smart Card, пароль восстановления и пароль пользователя.

С помощью атаки по словарю BitCracker пытается найти правильный пароль пользователя или пароль восстановления для расшифровки зашифрованного устройства. Он реализован на CUDA и OpenCL.

Статья

Несколько журналов задерживали публикацию нашей статьи о BitCracker (почти 3 года, с окончательным отклонением после нескольких доработок), в которой объясняются детали нашей атаки, формат тома BitLocker Drive Encryption (BDE) и возможные слабости в процедуре шифрования/расшифровки. Наконец, мы опубликовали статью здесь: https://arxiv.org/abs/1901.01337 . Пожалуйста, не стесняйтесь комментировать и делиться.

Требования

Для запуска BitCracker-CUDA минимальные требования:

  • GPU NVIDIA с CC 3.5 или новее
  • CUDA 7.5 или новее

Для запуска BitCracker-OpenCL минимальные требования — любой GPU или CPU, поддерживающий OpenCL (некоторую помощь можно найти здесь.

BitCracker требует не менее 260 МБ памяти устройства.

Мы настоятельно рекомендуем запускать атаку на GPU, а не на CPU, по причинам производительности (см. раздел Производительность).

Сборка

Запуск скрипта build.sh создаёт 4 исполняемых файла в каталоге build: bitcracker_hash, bitcracker_rpgen, bitcracker_cuda, bitcracker_opencl.

Чтобы собрать bitcracker_cuda в соответствии с вашим GPU NVIDIA и версией CUDA, необходимо изменить src_CUDA/Makefile, выбрав правильную версию SM. Для справки можно использовать следующую таблицу:

Подготовка атаки

Вам нужно создать образ вашего зашифрованного BitLocker устройства хранения, используя, например, команду dd:

root@kitploit:~
sudo dd if=/dev/disk2 of=/path/to/imageEncrypted.img conv=noerror,sync
4030464+0 records in
4030464+0 records out
2063597568 bytes transferred in 292.749849 secs (7049013 bytes/sec)

Затем нужно запустить исполняемый файл bitcracker_hash на вашем imageEncrypted.img, чтобы:

  • проверить, имеет ли образ допустимый формат и может ли быть атакован BitCracker
  • проверить, было ли исходное устройство хранения зашифровано с помощью пароля пользователя или пароля восстановления
  • извлечь хэш, описывающий образ

Если выполнение завершается успешно, bitcracker_hash создаёт 1 или 2 выходных файла:

  • hash_user_pass.txt : если устройство было зашифровано паролем пользователя, этот файл содержит хэш, необходимый для запуска режима атаки по паролю пользователя.
  • hash_recv_pass.txt : хэш, необходимый для запуска режима атаки по паролю восстановления

Зашифрованные тома BDE могут иметь разные форматы для разных методов аутентификации. Если bitcracker_hash не может найти пароль восстановления на вашем зашифрованном образе, пожалуйста, откройте issue или свяжитесь со мной

Пример:

root@kitploit:~
/build/bitcracker_hash -o test_hash -i ./Images/imgWin7

---------> BitCracker Hash Extractor <---------
Opening file ./Images/imgWin7

....

Signature found at 0x02208000
Version: 2 (Windows 7 or later)

VMK entry found at 0x022080bc
VMK encrypted with user password found!
VMK encrypted with AES-CCM

VMK entry found at 0x0220819c
VMK encrypted with Recovery key found!
VMK encrypted with AES-CCM

User Password hash:
$bitlocker$0$16$89a5bad722db4a729d3c7b9ee8e76a29$1048576$12$304a4ac192a2cf0103000000$60$24de9a6128e8f8ffb97ac72d21de40f63dbc44acf101e68ac0f7e52ecb1be4a8ee30ca1e69fbe98400707ba3977d5f09b14e388c885f312edc5c85c2

Recovery Key hash:
$bitlocker$2$16$8b7be4f7802275ffbdad3766c7f7fa4a$1048576$12$304a4ac192a2cf0106000000$60$6e72f6ef6ba688e72211b8cf8cc722affd308882965dc195f85614846f5eb7d9037d4d63bcc1d6e904f0030cf2e3a95b3e1067447b089b7467f86688

Output file for user password attack: "hash_user_pass.txt"
Output file for recovery password attack: "hash_recv_pass.txt"

Атака по паролю пользователя

Этот тип атаки можно использовать, если устройство хранения было зашифровано с помощью пароля, предоставленного пользователем, как показано на следующем изображении. alt text BitCracker выполняет атаку по словарю, поэтому необходимо предоставить список возможных паролей пользователя.

Для запуска атаки вам потребуется:

  • файл hash_user_pass.txt
  • список возможных паролей пользователя (его нужно предоставить самостоятельно)

Пример командной строки:

./build/bitcracker_cuda -f hash_user_pass.txt -d wordlist.txt -t 1 -b 1 -g 0 -u

Где:

  • -f : путь к файлу hash_user_pass.txt
  • -d : путь к вашему словарю
  • -t : количество паролей, обрабатываемых каждым потоком CUDA
  • -b : количество блоков CUDA
  • -g : идентификатор устройства GPU NVIDIA
  • -u : указывает на то, что требуется атака по паролю пользователя

Для получения всех доступных опций введите ./build/bitcracker_cuda -h. Для достижения наилучшей производительности, пожалуйста, обратитесь к таблице в разделе Производительность, чтобы правильно установить параметры t и b в соответствии с вашим GPU NVIDIA.

Те же соображения применимы к исполняемому файлу bitcracker_opencl.

Пример вывода:

root@kitploit:~
====================================
Selected device: GPU Tesla K80 (ID: 0)
====================================
....
Reading hash file "hash_user_pass.txt"
$bitlocker$0$16$0a8b9d0655d3900e9f67280adc27b5d7$1048576$12$b0599ad6c6a1cf0103000000$60$c16658f54140b3d90be6de9e03b1fe90033a2c7df7127bcd16cb013cf778c12072142c484c9c291a496fc0ebd8c21c33b595a9c1587acfc6d8bb9663

====================================
Attack
====================================

Type of attack: User Password
CUDA Threads: 1024
CUDA Blocks: 1
Psw per thread: 1
Max Psw per kernel: 1024
Dictionary: wordlist.txt
Strict Check (-s): No
MAC Comparison (-m): No

CUDA Kernel execution:
	Stream 0
	Effective number psw: 12
	Passwords Range:
		abcdefshhf
		.....
		blablalbalbalbla12
	Time: 28.651947 sec
	Passwords x second:     0.42 pw/sec

================================================
....
Password found: paperino
================================================

В настоящее время BitCracker может обрабатывать входные пароли длиной от 8 до 55 символов.

Атака по паролю восстановления

Во время шифрования устройства хранения (независимо от метода аутентификации) BitLocker предлагает пользователю сохранить где-нибудь пароль восстановления, который можно использовать для восстановления доступа к зашифрованному устройству в случае, если она/он не может нормально разблокировать диск. Таким образом, пароль восстановления — это своего рода универсальный ключ для всех методов аутентификации, и он состоит из 48-значного ключа, например:

236808-089419-192665-495704-618299-073414-538373-542366

См. документацию Microsoft для получения дополнительных сведений.

Как и для пароля пользователя, BitCracker может выполнять атаку по словарю для поиска правильного пароля восстановления, сгенерированного BitLocker для шифрования устройства хранения. Обратите внимание, что в настоящее время мы можем атаковать пароль восстановления, только если устройство хранения не было зашифровано с помощью TPM.

Для запуска атаки вам потребуется:

  • файл hash_recv_pass.txt
  • список возможных паролей восстановления

Генерация и хранение всех возможных паролей — сложная задача. По этой причине мы создали генератор паролей восстановления с именем bitcracker_rpgen. С помощью этого инструмента вы можете создать несколько списков паролей восстановления для использования в атаках. Пример:

./build/bitcracker_rpgen -n 300 -p 10000000 -s 000000-000011-000022-000033-000044-000055-008459-015180

Это генерирует:

  • -n : количество списков паролей
  • -p : количество паролей восстановления в каждом списке
  • -s : начать генерацию паролей восстановления с этого

Вы можете использовать конфигурацию по умолчанию, запустив без параметров:

root@kitploit:~
./build/bitcracker_rpgen

************* BitCracker Recovery Password wordlists generator *************

Running with this configuration:
### Create 100 wordlists
### Recovery Passwords per wordlist=5000000
### Allow duplicates=No
### Generate starting from=000000-000011-000022-000033-000044-000055-000066-000077

Creating wordlist "bitcracker_wlrp_0.txt" with 5000000 passwords
First password=000000-000011-000022-000033-000044-000055-000066-000077
Last password= 000000-000011-000022-000033-000044-000055-000902-217822
...

Обратите внимание, что опцию -s можно использовать для возобновления генерации с последнего сгенерированного пароля восстановления (вместо того чтобы каждый раз начинать с начального). Опция -d позволяет иметь дубликаты в одном и том же пароле восстановления. Например: 000000-000011-000055-000055-000044-000055-000902-217822

Для получения всех доступных опций введите ./build/bitcracker_rpgen -h.

ПРИМЕЧАНИЕ: Обратите внимание, что количество возможных паролей восстановления огромно:
recovery password = 65536 x 65536 x 65536 x 65536 x 65536 x 65536 x 65536 x 65536
Согласно нашим исследованиям, распределение паролей равномерно, и нет способа найти «более вероятные» числа. Пока мы не нашли правила для уменьшения количества возможных кандидатов. Это означает, что атака по паролю восстановления может длиться вечно (атака по паролю пользователя всегда предпочтительнее). В ближайшее время мы изменим инструмент bitcracker_rpgen, чтобы генерировать пароли восстановления случайным образом, а не в упорядоченной последовательности.

Пример командной строки:

./build/bitcracker_cuda -f hash_recv_pass.txt -d bitcracker_wlrp_0.txt -t 1 -b 1 -g 0 -r

Где параметры такие же, как и в случае с паролем пользователя, но вместо -u нужно указать -r. Пример вывода:

root@kitploit:~
====================================
Selected device: GPU Tesla K80 (ID: 0)
====================================

...
Reading hash file "hash_recv_pass.txt"
$bitlocker$2$16$432dd19f37dd413a88552225628c8ae5$1048576$12$a0da3fc75f6cd30106000000$60$3e57c68216ef3d2b8139fdb0ec74254bdf453e688401e89b41cae7c250739a8b36edd4fe86a597b5823cf3e0f41c98f623b528960a4bee00c42131ef


====================================
Attack
====================================

Type of attack: Recovery Password
CUDA Threads: 1024
CUDA Blocks: 1
Psw per thread: 8
Max Psw per kernel: 8192
Dictionary: wordlist.txt
Strict Check (-s): No
MAC Comparison (-m): No

CUDA Kernel execution:
	Effective passwords: 6014
	Passwords Range:
		390775-218680-136708-700645-433191-416240-153241-612216
		.....
		090134-625383-540826-613283-563497-710369-160182-661364
	Time: 193.358937 sec
	Passwords x second:    31.10 pw/sec


================================================
CUDA attack completed
Passwords evaluated: 6014
Password found: 111683-110022-683298-209352-468105-648483-571252-334455
================================================

Ложные срабатывания

По умолчанию BitCracker выполняет быструю атаку (как для режима пароля пользователя, так и для восстановления), которая может возвращать некоторые ложные срабатывания. В этом случае вы можете повторно запустить атаку с опцией -m, которая включает проверку MAC (более медленное решение).

Примеры

Для тестирования BitCracker в вашей системе перед началом реальной атаки мы предоставили несколько образов зашифрованных устройств хранения.

  • imgWin7: BitLocker на ОС Windows 7 Enterprise edition
  • imgWin8: BitLocker на ОС Windows 8 Enterprise edition
  • imgWin10Compat.vhd: BitLocker (совместимый режим) на ОС Windows 10 Pro edition
  • imgWin10NotCompat.vhd: BitLocker (несовместимый режим) на ОС Windows 10 Pro edition
  • imgWin10NotCompatLongPsw.vhd : BitLocker (несовместимый режим) на ОС Windows 10 Pro edition с более длинным паролем пользователя

Вы можете атаковать эти образы как в режиме пароля пользователя, так и восстановления, используя списки слов, хранящиеся в папке Dictionary.

Производительность

Здесь мы приводим лучшие показатели производительности BitCracker в случае быстрой атаки (по умолчанию) на пароль пользователя (-u option).

Производительность:

N.B. Каждый пароль требует около 2.097.152 SHA-256

John The Ripper

Мы выпустили BitCracker как формат OpenCL-BitLocker в John The Ripper (--format=bitlocker-opencl). Файлы хэшей, сгенерированные bitcracker_hash (см. раздел How To), полностью совместимы с форматом John.
На GTV100 скорость подбора паролей составляет около 3150 p/s. Команда JtR разработала CPU-версию этой атаки (--format=bitlocker); на CPU Intel(R) Xeon(R) v4 2.20GHz скорость подбора составляет около 78 p/s.

Hashcat

Это в процессе разработки...

Список изменений

Ноябрь 2021: Код обновлён для работы на GPU NVIDIA Ampere с использованием CUDA 11.x

Что дальше

  • Реализация поддержки нескольких GPU
  • Реализация интерфейса Qt

Ссылки, благодарности и контакты

Пожалуйста, делитесь и тестируйте наш проект: нам нужны ваши отзывы!

Особая благодарность команде John The Ripper, проектам Dislocker и LibBDE.

Это исследовательский проект в сотрудничестве с Национальным исследовательским советом Италии, выпущенный под лицензией GPLv2.
Copyright (C) 2013-2021 Elena Ago (elena dot ago at gmail dot com) и Massimo Bernaschi (massimo dot bernaschi at gmail dot com)
В будущей статье мы предоставим дополнительную информацию об атаке BitCracker.

Хотя мы используем лицензию GPLv2, мы открыты для сотрудничества. Для получения дополнительной информации, сотрудничества или сообщения об ошибках, пожалуйста, свяжитесь с нами или откройте issue.

Скачать инструмент
Архитектура GPUРекомендуемая CUDAMakefile
KeplerCUDA 7.5arch=compute_35,code=sm_35
MaxwellCUDA 8.0arch=compute_52,code=sm_52
PascalCUDA 9.0arch=compute_60,code=sm_60
VoltaCUDA 9.0arch=compute_70,code=sm_70
Сокращение GPUGPUАрхитектураCC# SMЧастотаCUDA
GFTGeForce TitanKepler3.5148357.0
GTK80Tesla K80Kepler3.5138757.5
GFTXGeForce Titan XMaxwell5.22410017.5
GTP100Tesla P100Pascal6.15613288.0
GTV100Tesla V100Volta7.08012909.0
AMDMRadeon Malta-----
ВерсияGPU-t-bПаролей на ядроПаролей/секХэшей/сек
CUDAGFT813106.496303635 MH/s
CUDAGTK80814114.688370775 MH/s
CUDAGFTX824106.6089331.957 MH/s
CUDAGTP10015657.3441.4182.973 MH/s
CUDAGTV10018081.9203.2526.820 MH/s
OpenCLAMDM3264524.288241505 MH/s
OpenCLGFTX824196.6088841.853 MH/s