crackle

Wireless & RF v0.1 · 15.02.2013 не обновлялся >2 лет

Инструмент для взлома шифрования BLE (Bluetooth Low Energy). Взламывает ключ сессии TK (Temporary Key) при использовании Legacy Pairing — позволяет расшифровать захваченный BLE-трафик, если в захвате присутствует фаза сопряжения устройств.

v0.1
15.02.2013 current
Добавлен 25.06.2026 · Обновлён 06.07.2026 · Wireless & RF
Установка
git clone https://github.com/mikeryan/crackle
cd crackle && make

# Взлом захваченного BLE pcap:
./crackle -i capture.pcap -o decrypted.pcap
переведено ИИ

crackle

crackle взламывает шифрование BLE (также известного как Bluetooth Smart).

crackle использует уязвимость в процессе сопряжения BLE, которая позволяет атакующему угадать или очень быстро перебрать методом полного перебора TK (Временный ключ). С помощью TK и других данных, собранных в процессе сопряжения, можно получить STK (Краткосрочный ключ) и позже LTK (Долгосрочный ключ).

Имея STK и LTK можно расшифровать все communications между master и slave.

Перед попыткой использовать crackle, ознакомьтесь с Часто задаваемыми вопросами, чтобы определить, является ли этот инструмент подходящим для вашей ситуации.

crackle был написан Майком Райаном mikeryan@lacklustre.net Дополнительную информацию можно найти на сайте: http://lacklustre.net/projects/crackle/

Содержание

  • Режимы работы
    • Взлом TK
    • Расшифровка с помощью LTK
  • Запуск crackle
  • Примеры файлов
  • Часто задаваемые вопросы
  • Смотрите также
  • Благодарности

Режимы работы

crackle имеет два основных режима работы: Взлом TK и Расшифровка с помощью LTK.

Взлом TK

Это режим по умолчанию, который используется при предоставлении crackle входного файла с помощью флага -i.

В режиме «Взлом TK» crackle перебирает методом полного перебора TK, использованный во время события сопряжения BLE. crackle эксплуатирует тот факт, что TK в методах Just Works(tm) и 6-значного PIN-кода является значением в диапазоне [0,999999], дополненным до 128 бит.

crackle использует несколько методов для выполнения этого перебора: очень быстрый метод, если все пакеты сопряжения присутствуют во входном файле, и медленный метод, если присутствует минимальный набор пакетов.

Чтобы использовать этот режим, запустите crackle с входным файлом PCAP или PcapNG, содержащим одно или несколько соединений с диалогом сопряжения BLE. crackle проанализирует все соединения, определит, возможно ли взломать данное соединение, и автоматически выберет лучшую стратегию для взлома каждого из них.

Если TK будет успешно взломан, crackle выведет остальные ключи, используемые для шифрования остальной части соединения, и расшифрует любые зашифрованные пакеты, которые последуют. Если LTK будет обменян (обычно это первое действие после установления шифрования), crackle выведет это значение в stdout. LTK можно использовать для расшифровки будущих communications между двумя конечными точками.

Укажите crackle выходной файл с помощью флага -o, чтобы создать новый файл PCAP, содержащий расшифрованные данные (в дополнение к уже незашифрованным данным).

Пример использования:

$ crackle -i input.pcap -o decrypted.pcap

Расшифровка с помощью LTK

В режиме «Расшифровка с помощью LTK» crackle использует LTK, предоставленный пользователем, для расшифровки communications между master и slave. Этот режим идентичен части расшифровки в режиме «Взлом TK».

Пример использования:

$ crackle -i encrypted.pcap -o decrypted.pcap -l 81b06facd90fe7a6e9bbd9cee59736a7

Запуск crackle

Режим «Взлом TK»

В режиме «Взлом TK» crackle требует файл PCAP, содержащий событие сопряжения BLE. Лучший способ создать такой файл — использовать Ubertooth для захвата события сопряжения между master и slave.

Чтобы проверить, содержит ли ваш файл PCAP все необходимые пакеты, запустите crackle с опцией -i:

crackle -i <file.pcap>

crackle проанализирует каждое соединение во входном файле и выведет результаты своего анализа в stdout. Если у вас есть все компоненты диалога сопряжения, вывод будет выглядеть примерно так:

Analyzing connection 0:
  xx:xx:xx:xx:xx:xx (public) -> yy:yy:yy:yy:yy:yy (public)
  Found 13 encrypted packets

  Cracking with strategy 0, 20 bits of entropy

  !!!
  TK found: 412741
  !!!

  Decrypted 12 packets
  LTK found: 81b06facd90fe7a6e9bbd9cee59736a7

Specify an output file with -o to decrypt packets!

Чтобы расшифровать все пакеты, добавьте опцию -o:

crackle -i <file.pcap> -o <output.pcap>

Выходной файл будет содержать расшифрованные версии всех зашифрованных пакетов из исходного PCAP, а также все незашифрованные пакеты. Обратите внимание, что CRC не пересчитываются, поэтому CRC расшифрованных пакетов будут некорректными.

Расшифровка с помощью LTK

В режиме «Расшифровка с помощью LTK» crackle требует файл PCAP, содержащий как минимум пакеты LL_ENC_REQ и LL_ENC_RSP, а также LTK, использованный для шифрования communications.

Формат LTK — 128-битное шестнадцатеричное число без пробелов или разделителей, от старшего октета к младшему. Пример:

-l 81b06facd90fe7a6e9bbd9cee59736a7

Чтобы проверить, содержит ли ваш файл PCAP все необходимые пакеты, запустите crackle с опциями -i и -l:

crackle -i <file.pcap> -l <ltk>

Если у вас есть оба требуемых пакета, программа должна выдать вывод, подобный этому:

Analyzing connection 0:
  xx:xx:xx:xx:xx:xx (public) -> yy:yy:yy:yy:yy:yy (public)
  Found 9 encrypted packets
  Decrypted 6 packets

Specify an output file with -o to decrypt packets!

Чтобы расшифровать все пакеты, добавьте опцию -o:

crackle -i <file.pcap> -o <out.pcap> -l <ltk>

Выходной файл будет создан аналогично выходному файлу, описанному выше.

Примеры файлов

Тестовые файлы, включенные в директорию tests, служат интересным входным материалом для игры с crackle. Ознакомьтесь с файлами README, включенными в подкаждого теста.

Загрузите некоторые примеры файлов для взлома с помощью crackle. Обратитесь к README внутри архива для получения дополнительной информации:

https://lacklustre.net/bluetooth/crackle-sample.tgz

Часто задаваемые вопросы

Мы составили список Часто задаваемых вопросов.

Смотрите также

  • Ubertooth: http://ubertooth.sourceforge.net/
  • libbtbb: http://libbtbb.sourceforge.net/
  • ubertooth на irc.freenode.net

Благодарности

Огромная благодарность Майку Оссману и Доминику Спиллу из проекта Ubertooth. Ничего из этого было бы невозможно без них.

Особая благодарность Майку Кершоу/dragorn из Kismet за помощь в создании и работе с файлами PCAP.

Благодарности также всем участникам #ubertooth на irc.freenode.net.

Комментарии
Войдите, чтобы оставить комментарий