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

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

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

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

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

Категории

Все категории
Loading categories
mellon — Инструмент для атак на OSDP (и эльфийское слово, означающее «друг») | Kitploit
Инструменты/GitHubGitHub/bishopfox/mellon
Анализ уязвимостейЭксплуатацияКриптографияТестирование на ПроникновениеАппаратная Безопасность
GitHubbishopfox/mellon

mellon

Инструмент для атак на OSDP (и эльфийское слово, означающее «друг»)

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

Популярное

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

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

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

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

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

Уязвимости OSDP, которые использует этот инструмент

Инструмент атаки на OSDP (и эльфийское слово для друга)

Атака №1: Шифрование необязательно

OSDP поддерживает, но строго не требует шифрования. Таким образом, ваше соединение может вообще не быть зашифровано. Атака №1 заключается в пассивном прослушивании, чтобы проверить, можно ли прочитать номера карт в линии.

Атака №2: Атака понижения версии (Downgrade Attack)

То, что контроллер и считыватель поддерживают шифрование, не означает, что они настроены требовать его использования. Злоумышленник может изменить ответное сообщение о возможностях считывателя (osdp_PDCAP), указав, что он не поддерживает шифрование. В этом случае некоторые контроллеры продолжат работу без шифрования.

Атака №3: Атака через режим установки (Install-mode)

OSDP имеет квазиофициальный «режим установки», который применяется как к считывателям, так и к контроллерам. Как следует из названия, он предназначен для использования при первоначальной настройке считывателя. По сути, он позволяет считывателям запрашивать у контроллера базовый ключ шифрования (SCBK). Если контроллер настроен на постоянное нахождение в режиме установки, злоумышленник может появиться в линии и запросить SCBK.

Атака №4: Слабые ключи

Примеры кода OSDP часто содержат жестко закодированные ключи шифрования. Очевидно, что они предназначены для образцов, где пользователь должен самостоятельно генерировать ключи безопасным способом. Однако это не объясняется и не упрощается для пользователя. И любой, кто достаточно долго проработал в сфере безопасности, знает, что настройки по умолчанию, скорее всего, останутся и в рабочей среде.

Таким образом, как вектор атаки, когда канал между считывателем и контроллером зашифрован, стоит попробовать перебрать некоторые распространенные слабые ключи. Это 128-битные ключи AES, поэтому мы не сможем перебрать их все. Или даже сколько-нибудь значимую их часть. Но мы можем проверить некоторые распространенные шаблоны, которые встречаются, когда кто-то жестко кодирует ключ:

  • Все однобайтовые значения. [0x04, 0x04, 0x04, 0x04 …]
  • Все монотонно возрастающие байтовые значения. [0x01, 0x02, 0x03, 0x04, …]
  • Все монотонно убывающие байтовые значения. [0x0A, 0x09, 0x08, 0x07, …]

Атака №5: Перехват набора ключей (Keyset Capture)

OSDP не имеет внутриполосного механизма обмена ключами. Это означает, что злоумышленник может:

  • Внедрить скрытое подслушивающее устройство в линию.
  • Сломать / сбросить до заводских настроек / отключить считыватель.
  • Дождаться, пока кто-то из IT придет и заменит считыватель.
  • Перехватить сообщение с набором ключей (osdp_KEYSET) при первоначальной настройке считывателя.
  • Расшифровать все последующие сообщения.

Настройка тестовой среды (Linux/MacOS)

Вы найдете код доказательства концепции для каждой из этих атак в attack_osdp.py. Ознакомьтесь с командой --help для получения дополнительных сведений об использовании. Это скрипт на Python, предназначенный для запуска с ноутбука с адаптерами USB<-->RS485 например, такими. Так что вам, вероятно, стоит приобрести некоторые из них. Однако это не обязательно должна быть именно эта модель.

Если у вас есть контроллер, который вы хотите протестировать, отлично. Используйте его. Если нет, то у нас есть намеренно уязвимый контроллер OSDP, который вы можете использовать здесь: vulnserver.py.

Некоторые атаки в attack_osdp.py предполагают полное MitM (человек посередине) между работающим считывателем и контроллером. Для их тестирования вам может понадобиться три адаптера USB<-->RS485, соединенных вместе с помощью макетной платы.

Дополнительные проблемы среднего / низкого риска

Эти проблемы по отдельности не являются эксплуатируемыми, но тем не менее представляют собой ослабление протокола, реализации или системы в целом.

  • MAC-адреса усекаются до 32 бит «для снижения накладных расходов». Это очень близко (но не совсем по нашим расчетам) к практически эксплуатируемому диапазону.
  • IV (которые получаются из MAC) также уменьшены до 32 бит энтропии. Это приведет к повторному использованию IV, что является серьезным признаком проблемы для протокола.
  • Сеансовые ключи генерируются только с использованием 48 бит энтропии от случайного числа (nonce) контроллера. Однако, похоже, это не позволяет наблюдающему злоумышленнику перебирать их в автономном режиме. (Если только мы что-то не упускаем, и в этом случае это станет критической проблемой.)
  • Номера последовательностей состоят всего из 2 бит, что не обеспечивает достаточной «живости» (liveness).
  • Используется шифрование в режиме CBC. GCM был бы более современным режимом блочного шифрования, подходящим для сетевых протоколов.
  • Режимы SCS 15 и 16, по сути, являются «нулевыми шифрами» и не должны существовать. Они не шифруют данные.
  • Байт команды OSDP всегда не зашифрован, даже в середине сеанса защищенного канала. Это огромное преимущество для злоумышленников, делающее инструменты атаки гораздо проще в написании. Это означает, что злоумышленник всегда может видеть, какой «тип» пакета отправляется, даже если он в остальном зашифрован. Злоумышленники могут определить, когда люди прикладывают карты, когда загорается светодиод и т. д... Это информация, которая не должна передаваться в открытом виде.
  • SCBK-D (жестко закодированный «стандартный» ключ шифрования) не обеспечивает никакой безопасности и должен быть удален. Он служит только для запутывания и создания ложного чувства безопасности.
Скачать инструмент