
Набор эксплойтов для проверки концепции (proof-of-concept) уязвимостей загрузчика U-Boot, включая небезопасные механизмы обновления, жестко заданные учетные данные, доступ к отладочному интерфейсу и отсутствие защиты от отката прошивки, предназначенный для авторизованного тестирования безопасности IoT-устройств.
Эта концепция доказательства (PoC) была создана для проверки уязвимостей в загрузчике U-Boot версии 1.1.3, скомпилированном 27 августа 2019 года. Код реализует пять различных уязвимостей, соответствующих категориям Руководства по тестированию безопасности IoT OWASP (ISTG).
ПРЕДУПРЕЖДЕНИЕ: Используйте эту PoC только на устройствах, на тестирование которых у вас есть разрешение. Использование на системах без разрешения может нарушать действующее законодательство.
# Установка необходимых библиотек
pip install pyserial cryptography
Для использования этой PoC необходимо подключиться к последовательному интерфейсу целевого устройства:
/dev/ttyUSB0 в Linux, COM3 в Windows)Этот скрипт предлагает несколько режимов работы для тестирования каждой уязвимости отдельно или всех сразу.
python3 uboot_exploit_poc.py --port /dev/ttyUSB0
Вы можете запустить конкретный эксплойт с параметром --exploit:
# Тестирование уязвимости "Небезопасный механизм обновления"
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 1
# Тестирование уязвимости "Жестко заданные конфиденциальные значения"
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 2
# Тестирование уязвимости "Доступ к интерфейсу отладки"
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 3
# Тестирование уязвимости "Отсутствие защиты от понижения версии прошивки"
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 4
# Тестирование уязвимости "Отсутствие защищенного канала для обновлений"
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 5
# Изменить скорость передачи (по умолчанию: 115200)
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --baudrate 57600
# Изменить таймаут последовательного порта (по умолчанию: 1 секунда)
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --timeout 2
Скрипт создаст каталог с именем uboot_extracted, содержащий:
Файл full_exploitation_summary.txt содержит полную сводку всех тестов уязвимостей.
Загрузчик не имеет надлежащей проверки подписей для обновлений прошивки, что позволяет устанавливать несанкционированную прошивку.
Конфиденциальные значения, такие как учетные данные и ключи, жестко заданы в двоичном файле загрузчика, что позволяет извлечь конфиденциальную информацию.
Интерфейс отладки недостаточно защищен, что позволяет получить доступ к низкоуровневым системным элементам управления без аутентификации.
В загрузчике отсутствуют механизмы защиты от отката, что позволяет понижать версию до версий с известными уязвимостями.
Обновления прошивки передаются по небезопасным каналам без шифрования или аутентификации, что позволяет перехватывать и изменять их.
Собранные этой PoC доказательства могут быть использованы для поддержки подачи заявки CVE. Для подачи заявки CVE:
uboot_extractedЭтот инструмент предоставляется только для образовательных и профессиональных целей тестирования безопасности. Авторы не несут ответственности за любое неправильное использование или ущерб, причиненный этим инструментом. Всегда получайте надлежащее разрешение перед тестированием любой системы или устройства.