Надеемся, эта серия постов вдохновила вас поучаствовать в #pentestaward 2025, анонс которой мы запланировали уже в этом месяце! ✨
Объект исследования
GSM-модем Cinterion EHS5, используемый в различных устройствах: банкоматах, автомобилях, индустриальных шлюзах и медицинском оборудовании.
Результат
Удалось обнаружить уязвимость переполнения кучи через SMS-сообщения (протокол SUPL), что позволило выполнять произвольный код с максимальными привилегиями на устройстве. Уязвимость получила номер CVE-2023-47610.
Ход исследования
1) Поиск уязвимости в GSM-модеме
- Исследован модем Cinterion EHS5 на базе процессора Intel X-Gold 625.
- Через съем NAND-флеш памяти получена прошивка.
- Обнаружена уязвимость переполнения кучи при обработке SUPL-сообщений (SMS).
- Переполнение происходит из-за несоответствия между длиной фрагмента и общей длиной сообщения, что позволяет записать данные за пределы буфера.
2) Разработка примитива чтения памяти
- При переполнении модем перезагружается, но через команду
AT+XLOG удалось получить адрес сбоя и состояние регистров.- Выявлено, что при падении в регистр R0 попадают контролируемые данные.
- Уудалось медленно считывать память модема (4 байта в минуту) через SMS.
3) Поиск примитива записи
- Проанализированы функции
malloc и free в ОС ThreadX.- Выяснено, что функция
free может записать указатель на свободный блок по произвольному адресу, если подменить структуру Thread.- Создана поддельная структура
HeapBase, позволяющая записывать адреса с помощью free.4) Эксплуатация уязвимости
- Реализован примитив записи в память через последовательность WAP SMS.
- После получения записи по произвольному адресу выполнен анализ кода ОС.
- Найдена точка вызова произвольного кода через структуру
Thread.5) Закрепление на устройстве
- Обнаружена возможность разблокировки памяти и изменение прав доступа на запись.
- Код для закрепления интегрирован в процесс UTACAT, отвечающий за обработку SMS.
- Разработан драйвер, позволяющий записывать данные в файловую систему и запускать произвольные приложения через SMS.
Полноценный текст с картинками доступен на Хакере 👈
