KillerBee

Wireless & RF ★ Рекомендуемый v3.0.0-beta.2 · 14.07.2021 не обновлялся >2 лет

Фреймворк для атак на ZigBee/IEEE 802.15.4 сети (умный дом, промышленная автоматика, умные счётчики). Сниффинг, воспроизведение пакетов, атаки на шифрование, идентификация устройств. Поддерживает RZUSBSTICK, APIMote, ATUSB.

v3.0.0-beta.2
14.07.2021 current
Добавлен 25.06.2026 · Обновлён 25.06.2026 · Wireless & RF
Установка
pip install killerbee
# или:
git clone https://github.com/riverloopsec/killerbee
cd killerbee && sudo python setup.py install

# Сканирование ZigBee:
zbstumbler

# Снифинг 802.15.4:
zbdump -w capture.pcap -c 26
переведено ИИ

KillerBee

================

KillerBee — это фреймворк и инструменты для тестирования и аудита сетей ZigBee и IEEE 802.15.4.

Уведомление * Поддержка usb0.x будет прекращена/удалена * Поддержка Apimote v1 будет прекращена/удалена

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

Обновление KillerBee 3.0.0-beta

Привет всем, спасибо за вашу постоянную поддержку и интерес к KillerBee.

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

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

Это также попытка определить компоненты, составляющие KillerBee, стремясь провести более четкие границы между функциями KillerBee и рассматривая его как библиотеку. Подробности об этом и будущих целях смотрите в ARCHITECTURE.md.

РАЗРАБОТЧИКИ/ЛИЦЕНЗИЯ

Распространяется под лицензией BSD, подробности см. в LICENSE.txt. Все права защищены.

Основной набор инструментов был/был создан: + 2009, Joshua Wright jwright@willhackforsushi.com + 2010-2019, Ryan Speers ryan@riverloopsecurity.com + 2010-2011, Ricky Melgares ricky@riverloopsecurity.com

Мы благодарим многих контрибьюторов фреймворка, включая следующих, внёсших вклад: + Анонимные контрибьюторы + Spencer McIntyre (расширение scapy) + Bryan Halfpap Bryanhalf@gmail.com (дополнительные инструменты) + Travis Goodspeed + Mike Kershaw (dragorn) + Chris Wang (aikiba) + Nick DePetrillo + Ed Skoudis + Matt Carpenter + Sergey Bratus (исследовательская поддержка в Dartmouth) + Jeff Spielberg + Scytmo (исправления ошибок и поддержка плат CC2530/1 EMK) + Adam Laurie/rfidiot (реализация шифрования APS, прошивка, DFU и BOOTLOADER, SubGHZ, SiLabs NodeTest) + Steve Martin + Taylor Centers taylor@riverloopsecurity.com (перенос на Python 3) + SecureAB (Python 3) + Jan Rude (Python 3, Sewio) + Damien Cauquil (CC2531 BumbleBee)

ТРЕБОВАНИЯ

KillerBee разрабатывается и тестируется на системах Linux. Использование на MacOS возможно, но не поддерживается.

Мы стремимся использовать минимальное количество программных зависимостей, однако перед установкой необходимо установить следующие модули Python. Установщик обнаружит и подскажет, что именно нужно.

На системах Ubuntu вы можете установить необходимые зависимости следующими командами:

# apt-get install python-usb python-crypto python-serial python-dev libgcrypt-dev

На Mac OS вы можете установить зависимости следующими командами:

# brew install libusb libgcrypt
# pip3 install pyusb scapy

Пакеты python-dev и libgcrypt необходимы для патча расширения Scapy.

Также обратите внимание, что это довольно сложная и не очень дружелюбная платформа для атак. Это не Cain & Abel. Она предназначена для разработчиков и опытных аналитиков, атакующих сети ZigBee и IEEE 802.15.4. Я рекомендую вам сначала получить некоторое понимание протокола ZigBee (книга ZigBee Wireless Networks and Transceivers by Shahin Farahani является приемлемой, хотя и не идеальной) и знакомство с языком Python, прежде чем приступать к использованию этого фреймворка.

УСТАНОВКА

KillerBee использует стандартный установочный файл Python setup.py, после установки зависимостей.

Установите KillerBee следующей командой:

# python3 setup.py install

СТРУКТУРА КАТАЛОГОВ

Структура каталогов кода KillerBee описана следующим образом:

  • doc - HTML-документация по библиотеке KillerBee, предоставленная epydoc.
  • firmware - Прошивка для поддерживаемых аппаратных устройств KillerBee.
  • killerbee - Исходный код библиотеки Python.
  • sample - Примеры захваченных пакетов, упомянутые ниже.
  • scripts - Shell-скрипты, используемые при разработке.
  • tools - Инструменты для атак на ZigBee и IEEE 802.15.4, разработанные с использованием данного фреймворка.

ТРЕБУЕМОЕЕ АППАРАТНОЕ ОБЕСПЕЧЕНИЕ

Фреймворк KillerBee расширяется для поддержки различных устройств. В настоящее время поддерживаются River Loop ApiMote, Atmel RZ RAVEN USB Stick, MoteIV Tmote Sky, TelosB mote, Sewino Sniffer, а также различные устройства, работающие на прошивке Silicon Labs Node Test.

Подробную информацию о поддержке аппаратного обеспечения и программировании прошивки см. в firmware/README.md.

Поддержка Freaklab Freakduino с дополнительным аппаратным обеспечением и Arduino-скетч от Dartmouth, а также плат Zigduino доступна, но не перечислена, так как они не поддерживаются. Для их использования необходимо включить поиск этих плат в файле killerbee/config.py и затем переустановить KillerBee.

ИНСТРУМЕНТЫ

KillerBee включает несколько инструментов, предназначенных для атак на сети ZigBee и IEEE 802.15.4, созданных с использованием фреймворка KillerBee. Каждый инструмент имеет собственные инструкции по использованию, документируемые запуском инструмента с аргументом "-h", и кратко описан ниже.

  • zbid - Определяет доступные интерфейсы, которые могут использоваться KillerBee и связанными инструментами.
  • zbwireshark - Аналогичен zbdump, но предоставляет именованный канал для реального времени захвата и просмотра в Wireshark.
  • zbdump - Инструмент, аналогичный tcpdump, для захвата кадров IEEE 802.15.4 в файл захвата пакетов libpcap или Daintree SNA. Не отображает статистику в реальном времени, как tcpdump, при записи не в файл.
  • zbreplay - Реализует атаку повторного воспроизведения (replay), читая из указанного Daintree DCF или libpcap файла захвата пакетов и повторно передавая кадры. Кадры ACK не повторно передаются.
  • zbstumbler - Активный инструмент обнаружения сетей ZigBee и IEEE 802.15.4. Zbstumbler отправляет кадры запросов маяков (beacon request), переключаясь между каналами, записывая и отображая сводную информацию об обнаруженных устройствах. Также может записывать результаты в CSV-файл.
  • zbpanidconflictflood - Требуется два интерфейса KillerBee. Один интерфейс KillerBee слушает пакеты и отмечает их PAN ID. Другой интерфейс постоянно отправляет пакеты-маяки (beacon) с обнаруженными PAN ID. Пакеты-маяки с одинаковым PAN ID заставляют координатор PAN поверить в конфликт PAN ID, и координатор начинает процесс перенастройки сети на новый PAN ID. Процесс повторяется до бесконкости. Обычно сетевые устройства не успевают за быстрыми изменениями, и через несколько секунд сеть разваливается. НЕТ ВСТРОЕННОГО ЦЕЛЕНАПРАВЛЕННОГО ВОЗДЕЙСТВИЯ: Это может уничтожить все сети Zigbee в радиусе действия на канале, на котором вы проводите атаку. Используйте с осторожностью.
  • zborphannotify - Подделывает пакет уведомления об осиротении (orphan notification) от целевого устройства к координатору PAN для проверки поведения координатора.
  • zbrealign - Подделывает кадр перенастройки PAN (PAN Realignment) IEEE 802.15.4 от координатора к целевому устройству. Может сбросить PAN ID или канал устройства.
  • zbfakebeacon - Подделывает кадры-маяки (beacon), либо спамит ими, либо отвечает на обнаруженные запросы-маяки (beacon request).
  • zbopenear - Помогает при захвате данных, когда устройства работают на нескольких каналах или используют быстрое переключение частот. Он последовательно назначает несколько интерфейсов на все каналы.
  • zbassocflood - Многократно подключается к целевому PANID в попытке вызвать сбой устройства из-за слишком большого количества подключенных станций.
  • zbconvert - Конвертирует захват пакетов из формата Libpcap в Daintree SNA, или наоборот.
  • zbdsniff - Перехватывает трафик ZigBee, ища NWK-кадры и предоставление ключей по эфиру. Когда ключ найден, zbdsniff выводит ключ в stdout. Пример захвата пакетов sample/zigbee-network-key-ota.dcf может использоваться для демонстрации этой функциональности.
  • zbfind - GTK-приложение с графическим интерфейсом для отслеживания местоположения передатчика IEEE 802.15.4 путем измерения RSSI. zbfind может работать пассивно при обнаружении (только слушать пакеты) или активно, отправляя кадры Beacon Request и записывая ответы от маршрутизаторов и координаторов ZigBee. Если вы получаете много ошибок после запуска этого инструмента, убедитесь, что переменная DISPLAY установлена правильно.
  • zbgoodfind - Реализует функцию поиска ключа с использованием зашифрованного захвата пакетов и дампа памяти от легитимного устройства ZigBee или IEEE 802.15.4. Этот инструмент сопутствует аппаратному инструменту атак GoodFET от Трэвиса Гудспид или другим двоичным данным, которые могут содержать информацию о ключе шифрования, например, перехват шины со старыми чипами (такими как CC2420). Поисковый файл zbgoodfind должен быть в двоичном формате (hex-файлы obj не поддерживаются). Для конвертации из формата hex-файла в двоичный файл используйте инструмент objcopy: objcopy -I ihex -O binary mem.hex mem.bin
  • zbwardrive - Обнаруживает доступные интерфейсы и использует один для инъекции запросов-маяков и прослушивания ответов на разных каналах. Как только сеть обнаружена на канале, он назначает другое устройство для непрерывного захвата трафика на этом канале в файл PCAP. Для запуска необходимо установить Scapy.
  • zbscapy - Предоставляет интерактивную оболочку Scapy для взаимодействия через интерфейс KillerBee. Для запуска необходимо установить Scapy.
  • kbbootloader - Переводит устройство в режим DFU/BOOTLOADER (если устройство поддерживает)

Дополнительные инструменты для специальных случаев или нестабильные хранятся в репозитории проекта Api-Do: http://code.google.com/p/zigbee-security/ и на https://github.com/riverloopsec/beekeeperwids.

ФРЕЙМВОРК

KillerBee разработан для упрощения процесса перехвата пакетов из эфира или поддерживаемого файла захвата пакетов (libpcap), а также для инъекции произвольных пакетов. Также доступны вспомогательные функции, включая декодеры пакетов IEEE 802.15.4, ZigBee NWK и ZigBee APS.

API KillerBee задокументирован в формате epydoc, с HTML-документацией в каталоге doc/ данного дистрибутива. Если у вас установлен epydoc, вы можете также сгенерировать удобный PDF для печати, при необходимости, следующим образом:

$ cd killerbee
$ mkdir pdf
$ epydoc --pdf -o pdf killerbee/

В каталоге pdf/ будет файл "api.pdf", который включает документацию по фреймворку.

Чтобы начать использовать фреймворк KillerBee, посмотрите на включенные инструменты (zbdump и zbreplay — хорошие примеры для начала).

Поскольку KillerBee является библиотекой Python, он хорошо интегрируется с другим программным обеспечением на Python. Например, библиотека Sulley — это фреймворк для тестирования на выносливость (fuzzing), написанный на Python Педрамом Амини. Используя функции мутации Sulley и функции инъекции пакетов KillerBee, легко создать механизм для генерации и передачи искаженных данных ZigBee на цель.

ВОПРОСЫ / КОММЕНТАРИИ / ЗАМЕЧАНИЯ

Пожалуйста, используйте систему отслеживания задач по адресу https://github.com/riverloopsec/killerbee/issues.

Оригинальная версия была написана: jwright@willhackforsushi.com. Текущая версия, исправления и т.д. обрабатываются: killerbee@riverloopsecurity.com. (Полный список контрибьюторов/авторов приведен выше.)

Для контрибьюторов/разработчиков подробную информацию и руководства см. в DEVELOPMENT.md.

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