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

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

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

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

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

Категории

Все категории
Loading categories
KNX-Bus-Dump — Инструмент для прослушивания шины KNX через TPUART и набор Calimero Project, а также для дампа данных из пакетов в шестнадцатеричный дамп файла, совместимого с Wireshark. | Kitploit
Инструменты/GitHubGitHub/chrism09/knx-bus-dump
Сниффинг и анализ пакетовБезопасность IoTФорензикаСетевая безопасностьЦифровая криминалистикаБезопасность оборудования и IoT
GitHubchrism09/knx-bus-dump

KNX-Bus-Dump

Инструмент для прослушивания шины KNX через TPUART и набор Calimero Project, а также для дампа данных из пакетов в шестнадцатеричный дамп файла, совместимого с Wireshark.

Репозиторий
1244 лет назадЕщё не проверено

Популярное

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

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

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

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

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

KNX Bus Dump

KNX — это популярный протокол автоматизации зданий, используемый для объединения датчиков, исполнительных механизмов и других компонентов «умного» здания. Наш инструмент KNX Bus Dump использует библиотеку Calimero на Java, в которую мы внесли вклад ради этого инструмента, для записи телеграмм, передаваемых по шине KNX. В частности, наш инструмент подключается к шине KNX через соединение TPUART, но может быть изменён для использования других сред передачи. Телеграммы сохраняются в шестнадцатеричный дамп-файл, совместимый с Wireshark. Метки времени предоставляются и нормализуются по UTC с точностью до наносекунд для анализа данных и построения временной шкалы телеграмм. Файл шестнадцатеричного дампа можно импортировать в Wireshark, который можно настроить на разбор KNX-телеграмм с помощью диссектора cEMI из Wireshark.

Наш инструмент можно использовать для анализа протокола датчиков KNX, исполнительных механизмов и других устройств KNX. Например, мы использовали этот инструмент для понимания наших устройств KNX и обнаружили нештатные KNX-телеграммы. Инструмент также идеально подходит для анализа безопасности устройств KNX, поскольку раскрывает все детали используемого протокола и данные, передаваемые по шине KNX.

Tcpdump и Wireshark нельзя использовать для дампа телеграмм, передаваемых по шине KNX, поскольку мы имеем дело с «родными» KNX-телеграммами, а не с TCP/IP-пакетами. Wireshark и tcpdump могут дампить пакеты KNXnet/IP, которые являются TCP/IP-пакетами. KNXnet/IP — это протокол для отправки команд и данных на шину KNX через TCP/IP-сеть.

Предварительные требования

Этот инструмент предназначен для работы с библиотекой Calimero на Java и совместим с Raspberry Pi 3 или 4, а также с HAT-платой Raspberry Pi для соединения TPUART.

Вот несколько руководств по настройке окружения:

  1. Инструкция по использованию KNX Raspberry Pi HAT
  2. Настройка Raspberry Pi и набора Calimero

Примечание: В следующих шагах предполагается, что вы настроили своё окружение в соответствии с этими руководствами.

Использование

Создание шестнадцатеричного дампа

  1. Поместите файл KNXBusDump.java в папку introduction/src/main/java/ набора проектов Calimero.

  2. Перейдите в папку introduction.

  3. Для запуска программы просто выполните:

    root@kitploit:~
    ./gradlew run -Pcalimero.serial.tpuart.maxInterByteDelay=60000 -DmainClass=KNXBusDump
    

    Обратитесь к разделу устранение неполадок ниже для решения распространённых ошибок.

  4. Теперь подождите, пока по шине будут переданы некоторые сообщения; сброшенные телеграммы окажутся в файле KNXBusDump-Telegrams.txt.

  5. Остановите инструмент с помощью Ctrl-C, и файл будет готов к импорту в Wireshark для анализа.

Анализ шестнадцатеричного дампа

В Wireshark есть возможность импортировать пакеты из шестнадцатеричного дампа и указать диссектор для анализа пакета.

  1. После запуска Wireshark дождитесь завершения начальной загрузки. Затем нажмите File -> Import From Hex Dump...

  2. Чтобы правильно разобрать данные, нам нужно задать регулярное выражение (regex) с некоторыми тегами.

    root@kitploit:~
    ^\s*(?<time>\d{4}-\d\d\-\d\dT(\d\d\:){2}\d\d.(\d){6}[Z])\s(?<seqno>\d{6})\s+(?<data>[0-9a-fA-F]*)$
    
  3. Выберите файл шестнадцатеричного дампа в качестве источника.

  4. В новом диалоге перейдите на вкладку Regular Expression и вставьте regex в поле.

  5. Убедитесь, что кодировка данных — Plain hex.

  6. В текстовом поле Timestamp format необходимо указать шаблон, генерируемый инструментом.

    root@kitploit:~
    %Y-%m-%dT%H:%M:%S.%fZ
    

    ПРИМЕЧАНИЕ: Формат метки времени ДОЛЖЕН БЫТЬ ТОЧНО ТАКИМ ЖЕ, как указано. В противном случае метка времени не будет распознана.

  7. В разделе Encapsulation измените Encapsulation Type на Wireshark Upper PDU Export.

  8. Отметьте ExportPDU, чтобы указать диссектор cemi.

  9. Теперь вы можете импортировать файл и анализировать телеграмму.

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

Метка времени Wireshark:

Соответствующий файл шестнадцатеричного дампа

Примечание: Выделенное время — это НОРМАЛИЗОВАННОЕ ВРЕМЯ UTC. Независимо от того, какой часовой пояс указан рядом со временем, это ВСЕГДА будет правильное время в UTC.

Соображения:

  1. Диссектор cemi начинает работу с части кода сообщения (MC) телеграммы. Он не учитывает тип среды передачи.
  2. Причина, по которой TPCI выделен красным, связана с особенностью проектирования. Диссектор видит, что пакет является ненумерованным пакетом данных (UDP), что означает, что порядковый номер, согласно стандарту KNX, обычно устанавливается в 0. Однако иногда некоторые устройства устанавливают его в ненулевое значение. В данном случае он был установлен в 1. Диссектор затем проверяет, равен ли порядковый номер нулю. В данном случае это не так, отсюда сообщение об ошибке о том, что ожидается порядковый номер 0.

Руководство по устранению неполадок

Ниже приведены некоторые распространённые ошибки, которые могут возникнуть при запуске этой программы в соответствии с данным руководством по настройке. Я предоставил решения в надежде, что это исправит ошибку.

Запуск программы Discover KNX Servers вместо Bus Dump

Убедитесь, что вы вводите все команды точно так, как указано. Выполнение команды с "Dmainclass" приведёт к тому, что программа по умолчанию запустит программу Discover KNX Servers. Убедитесь, что используется "DmainClass".

Cannot get the initial state of the TPUART port

Убедитесь, что KNXD (если он у вас установлен в соответствии с этими руководствами) не запущен. Если следовать этому руководству, то KNXD будет использовать тот же порт, а только один процесс может одновременно использовать последовательный порт.

Wireshark: "Can't initialize scanner: Unknown error"

Если вы скопировали и вставили содержимое файлов шестнадцатеричного дампа из приведённых выше, возможно, не хватает дополнительного символа новой строки. Например, в "SampleData1.txt" представление на github показывает 4 строки данных, хотя на самом деле это 4 строки данных плюс символ новой строки. Таким образом, один из возможных вариантов — просто нажать "Enter" после последнего байта данных в импортируемом файле.

Попробовать пример вывода

В этом репозитории я предоставил данные примера файла в Sample-KNXBusDump-Telegrams.txt, который использовался для создания скриншотов. Не стесняйтесь импортировать его в Wireshark, чтобы проверить самостоятельно.

Сценарий тестирования

Инструмент был протестирован на этом локальном KNX-тестовом стенде.

Скачать инструмент