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

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

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

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

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

Категории

Все категории
Loading categories
RustyInjector — Реализация на Rust proof-of-concept инъекции нажатий клавиш Марка Ньюлина (CVE-2023-45866). | Kitploit
Инструменты/GitHubGitHub/xg3nesis/rustyinjector
Безопасность BluetoothЭксплуатацияБезопасность беспроводных сетейТестирование на ПроникновениеОбучение и Образование
GitHubxg3nesis/rustyinjector

RustyInjector

Реализация на Rust proof-of-concept инъекции нажатий клавиш Марка Ньюлина (CVE-2023-45866).

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

Популярное

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

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

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

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

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

⚠️ Отказ от ответственности: только для исследовательских и образовательных целей
Этот проект — Proof of Concept (PoC), демонстрирующий инъекцию нажатий клавиш Bluetooth, переписанный на Rust. Он предназначен строго для образовательных и исследовательских целей в области безопасности.

  • Не используйте этот код для взлома систем без явного разрешения.
  • Любое несанкционированное, незаконное или неэтичное использование этого проекта строго запрещено.
  • Автор не несёт ответственности за неправильное использование или ущерб, причинённый этим кодом.

Загружая, клонируя или используя этот код, вы соглашаетесь использовать его ответственно и в соответствии со всеми применимыми законами и нормативными актами.


🦀 Rusty Injector !

Rust Injector logo.

Добро пожаловать в Rusty Injector — реализацию на Rust, вдохновлённую PoC-инъекцией нажатий клавиш Bluetooth Марка Ньюлина, связанную с CVE-2023-45866, CVE-2024-21306 и CVE-2024-0230.

В настоящее время этот репозиторий реализует только CVE-2023-45866, который использует уязвимости инъекции нажатий клавиш в BlueZ в операционной системе Linux.

Ниже приведён скриншот описания NIST, включая оценку CVSS :

Описание NIST для CVE-2023-45866

Снимок 1 : Описание NIST для CVE-2023-45866.

1. Как это работает ?

Прежде чем вдаваться в детали, я рекомендую посмотреть презентацию Марка Ньюлина на конференции NullCon 2024, так как она даёт ясное и полное объяснение этих уязвимостей : Hi, My Name Is keyboard by Marc Newlin.. Я также подготовил видео, популяризирующее эту уязвимость. Вы найдёте его здесь : How a Simple Bluetooth Hack Can Hijack Your Device - Hi, my name is keyboard.

📌 Если вы заметите пропущенные моменты, области, которые можно упростить, или возможные ошибки в приведённом ниже объяснении, пожалуйста, не стесняйтесь изменять его и отправлять запрос на слияние. Я буду рад рассмотреть ваши правки и включить их в репозиторий.

Поскольку мы рассмотрели только уязвимость CVE-2023-45866, действующую для операционных систем Linux, мы объясним только процесс достижения этой конкретной эксплуатации, нацеленной на библиотеку BlueZ.

Прежде всего, вы должны понять, что эта уязвимость используется только на Bluetooth BR/EDR, поскольку она нацелена на профиль HID, основанный на этой технологии. Возможно, вы знаете, что архитектурная реализация Bluetooth разделена на несколько уровней, как модель OSI для протокола Ethernet, и это можно наблюдать на нашей схеме ниже.

Стек Bluetooth HID

Диаграмма 1 : Упрощённый стек Bluetooth BR/EDR (Basic Rate - Enhanced Data Rate). Самый нижний уровень стека представляет физический уровень с выделенной антенной, а верхний уровень соответствует прикладному уровню, который иногда называют операционной системой. Когда два устройства хотят связаться друг с другом, они проходят через эти разные уровни: сверху вниз для исходящих пакетов и снизу вверх для входящих bluetooth-пакетов.

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

Спецификация Bluetooth предлагает разные уровни аутентификации и безопасности. В зависимости от механизма, используемого для аутентификации, уровень безопасности связи может варьироваться. Устройства могут аутентифицироваться на основе периферийных устройств ввода и вывода, которыми они обладают, — эта концепция называется моделями сопряжения. Вы, вероятно, сталкивались с этим при сопряжении двух устройств, например, когда требовалось ввести PIN-код, отображаемый на другом устройстве.

Существует четыре модели сопряжения, определяемые возможностями ввода/вывода (I/O) устройств:

  • Just Works (без аутентификации)
  • Numeric Comparison (с аутентификацией)
  • Passkey Entry (с аутентификацией)
  • Out of Band (с аутентификацией) – опирается на другую технологию для облегчения процесса сопряжения.

Ниже приведена таблица, показывающая, какая модель сопряжения используется в зависимости от возможностей наших IoT-устройств.

Модели сопряжения Bluetooth.

Диаграмма 2 : Таблица, иллюстрирующая модели сопряжения Bluetooth BR/EDR, вдохновлённая Bluetooth Core Specification v5.3 - 2.3.5.1 Selecting key generation method Table 2.8 : Mapping of IO cacpabilities to key generation method (page 1573). Для получения дополнительной информации о режимах безопасности и моделях сопряжения, пожалуйста, ознакомьтесь с этой интересной статьёй в блоге Thyrasec : Bluetooth Security : Classic & BLE !

Я уверен, вас заинтриговал метод 'Just Works', и именно здесь кроется наша уязвимость. Вот в чём проблема: этот метод устанавливает сопряжение без запроса подтверждения или взаимодействия с пользователем, не оставляя возможности проверить подлинность сопрягаемого устройства. В Linux-системах стек BlueZ по умолчанию принимал входящие запросы на сопряжение от устройств, классифицированных как NoInputNoOutput (для обеспечения обратной совместимости). Поистине «замечательное» дизайнерское решение, не так ли?

Обновление конфигурации Linux по умолчанию.

Снимок 2 : Обновление конфигурации blueZ по умолчанию для включения безопасности Bluetooth и исправления CVE-2023-45866.

После сопряжения с целевым устройством наша система устанавливает соединение с протоколом обнаружения служб (SDP) через порт 1 уровня L2CAP. Как показано на диаграмме 1, уровень L2CAP служит посредником между нижними и верхними сервисными уровнями, обеспечивая сегментацию, мультиплексирование и сборку пакетов данных. Через SDP-соединение мы идентифицируем все доступные службы на целевом устройстве и подключаемся к службе профиля HID (Human Interface Profile). Профиль HID, используемый операционными системами для обработки ввода с Bluetooth-клавиатур и мышей, работает через порты 17 (HID Control) и 19 (HID Interrupt) уровня L2CAP. Для доступа к профилю HID не требуется аутентификация, и любое устройство, подключённое к портам 17 и 19 L2CAP, распознаётся как HID-устройство.

Атакующий может выдать себя за службы и класс беспроводной Bluetooth-клавиатуры, использовать модель сопряжения 'Just Works', указав возможность 'NoInputNoOutput', и внедрять несанкционированные нажатия клавиш в целевое устройство.

2. Как это было реализовано ?

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