logo Хроники кибер-безопасника

Уявзимость TP-Link TDDP (Buffer Overflow)

В ‎статье представлен‏ ‎подробный ‎анализ ‎конкретной ‎уязвимости ‎в‏ ‎устройствах ‎TP-Link,‏ ‎о‏ ‎которой ‎сообщалось ‎в‏ ‎2020 ‎году,‏ ‎но ‎которой ‎не ‎присвоен‏ ‎статус‏ ‎CVE.

Причины ‎возникновения‏ ‎уязвимости ‎переполнения‏ ‎буфера ‎TDDP ‎в ‎TP-Link

Уязвимость ‎TDDP-протокола‏ ‎TP-Link‏ ‎(протокол ‎отладки‏ ‎устройств ‎TP-LINK),‏ ‎связанная ‎с ‎переполнением ‎буфера, ‎в‏ ‎первую‏ ‎очередь‏ ‎связана ‎с‏ ‎обработкой ‎протоколом‏ ‎UDP-пакетов. ‎TDDP,‏ ‎двоичный‏ ‎протокол, ‎используемый‏ ‎для ‎целей ‎отладки, ‎обрабатывает ‎пакеты‏ ‎с ‎помощью‏ ‎одного‏ ‎UDP-пакета, ‎который ‎при‏ ‎неправильной ‎обработке‏ ‎может ‎представлять ‎угрозу ‎безопасности.‏ ‎Конкретной‏ ‎причиной ‎переполнения‏ ‎буфера ‎является‏ ‎отсутствие ‎надлежащей ‎проверки ‎длины ‎данных‏ ‎во‏ ‎время ‎анализа‏ ‎этих ‎UDP-пакетов.‏ ‎Эта ‎оплошность ‎приводит ‎к ‎переполнению‏ ‎памяти,‏ ‎что‏ ‎приводит ‎к‏ ‎повреждению ‎структуры‏ ‎памяти ‎устройства

Последствия‏ ‎уязвимости

Основной‏ ‎причиной ‎уязвимости,‏ ‎связанной ‎с ‎переполнением ‎буфера ‎TDDP‏ ‎в ‎TP-Link,‏ ‎является‏ ‎отказ ‎в ‎обслуживании‏ ‎(DoS). ‎Это‏ ‎происходит, ‎когда ‎переполнение ‎приводит‏ ‎к‏ ‎повреждению ‎структуры‏ ‎памяти, ‎в‏ ‎результате ‎чего ‎устройство ‎выходит ‎из‏ ‎строя‏ ‎или ‎перестает‏ ‎отвечать ‎на‏ ‎запросы. ‎Кроме ‎того, ‎существует ‎вероятность‏ ‎удаленного‏ ‎выполнения‏ ‎кода, ‎что‏ ‎может ‎позволить‏ ‎злоумышленнику ‎выполнить‏ ‎произвольный‏ ‎код ‎на‏ ‎устройстве. ‎Это ‎может ‎привести ‎к‏ ‎несанкционированному ‎доступу‏ ‎к‏ ‎сети, ‎краже ‎данных‏ ‎или ‎дальнейшему‏ ‎использованию ‎сетевых ‎ресурсов

Методы ‎использования

Использование‏ ‎уязвимости‏ ‎переполнения ‎буфера‏ ‎TDDP ‎в‏ ‎TP-Link ‎связано ‎с ‎отправкой ‎созданных‏ ‎UDP-пакетов,‏ ‎которые ‎превышают‏ ‎установленные ‎протоколом‏ ‎пределы ‎буфера. ‎Этого ‎можно ‎достичь,‏ ‎манипулируя‏ ‎длиной‏ ‎данных ‎пакета,‏ ‎чтобы ‎она‏ ‎превышала ‎то,‏ ‎что‏ ‎может ‎обработать‏ ‎буфер, ‎что ‎приводит ‎к ‎переполнению.‏ ‎Такие ‎инструменты,‏ ‎как‏ ‎Shambles, ‎могут ‎использоваться‏ ‎для ‎выявления,‏ ‎устранения, ‎эмуляции ‎и ‎проверки‏ ‎таких‏ ‎условий ‎переполнения‏ ‎буфера. ‎Успешное‏ ‎использование ‎может ‎позволить ‎злоумышленникам ‎вызвать‏ ‎отказ‏ ‎в ‎обслуживании‏ ‎или ‎потенциально‏ ‎выполнить ‎произвольный ‎код ‎на ‎устройстве.

Стратегии‏ ‎смягчения‏ ‎последствий

📌Обновления‏ ‎встроенного ‎ПО: Регулярное‏ ‎обновление ‎встроенного‏ ‎по ‎устройств‏ ‎TP-Link‏ ‎до ‎последней‏ ‎версии ‎может ‎помочь ‎устранить ‎уязвимости‏ ‎и ‎повысить‏ ‎безопасность.

📌Сегментация‏ ‎сети: ‎Размещение ‎критически‏ ‎важных ‎устройств‏ ‎в ‎отдельных ‎сегментах ‎сети‏ ‎может‏ ‎ограничить ‎распространение‏ ‎потенциальных ‎атак.

📌Правила‏ ‎брандмауэра: ‎Настройка ‎брандмауэров ‎для ‎ограничения‏ ‎входящего‏ ‎трафика ‎через‏ ‎UDP-порт ‎1040,‏ ‎который ‎используется ‎TDDP, ‎может ‎предотвратить‏ ‎несанкционированный‏ ‎доступ.

📌Сканеры‏ ‎уязвимостей: ‎Регулярное‏ ‎сканирование ‎уязвимостей‏ ‎средствами ‎безопасности‏ ‎может‏ ‎помочь ‎выявить‏ ‎их ‎и ‎устранить ‎до ‎того,‏ ‎как ‎они‏ ‎будут‏ ‎использованы.

Обзор ‎TDDP

📌Протокол ‎отладки‏ ‎устройств ‎TP-Link‏ ‎(TDDP): ‎Двоичный ‎протокол, ‎используемый‏ ‎в‏ ‎основном ‎для‏ ‎целей ‎отладки,‏ ‎который ‎работает ‎с ‎помощью ‎одного‏ ‎UDP-пакета.‏ ‎Этот ‎протокол‏ ‎описан ‎в‏ ‎патенте ‎CN102096654A.

📌Структура ‎пакета: Пакет ‎TDDP ‎содержит‏ ‎такие‏ ‎поля,‏ ‎как ‎версия,‏ ‎тип, ‎код,‏ ‎ReplyInfo, ‎PktLength,‏ ‎PktID,‏ ‎подтип, ‎Резерв‏ ‎и ‎дайджест ‎MD5, ‎которые ‎имеют‏ ‎решающее ‎значение‏ ‎для‏ ‎работы ‎протокола.

Анализ ‎уязвимых‏ ‎функций:

📌tddpEntry ‎(sub_4045f8‏ ‎0×004045F8): ‎Эта ‎функция ‎постоянно‏ ‎проверяет‏ ‎входящие ‎данные‏ ‎с ‎помощью‏ ‎функции ‎recvfrom ‎и ‎передает ‎данные‏ ‎в‏ ‎функцию ‎TddpPktInterfaceFunction‏ ‎без ‎проверки‏ ‎размера ‎полученных ‎данных.

📌GetTddpMaxPktBuff ‎(sub_4042d0 ‎0×004042D0):‏ ‎Возвращает‏ ‎размер‏ ‎буфера, ‎равный‏ ‎0×14000.

📌tddp_versionTwoOpt ‎(sub_404b40‏ ‎0×00405990) ‎и‏ ‎tddp_deCode‏ ‎(sub_404fa4 ‎0×00405014):‏ ‎функции, ‎участвующие ‎в ‎обработке ‎и‏ ‎декодировании ‎пакета‏ ‎TDDP.‏ ‎Они ‎обрабатывают ‎расшифровку‏ ‎данных ‎с‏ ‎помощью ‎DES ‎и ‎проверяют‏ ‎целостность‏ ‎расшифрованных ‎данных.

Механизм‏ ‎использования

📌Триггер ‎переполнения‏ ‎буфера: ‎Уязвимость ‎срабатывает, ‎когда ‎длина‏ ‎пакета,‏ ‎указанная ‎в‏ ‎пакете ‎TDDP,‏ ‎превышает ‎размер ‎буфера ‎(0×14000), ‎что‏ ‎приводит‏ ‎к‏ ‎переполнению ‎буфера.

📌Расшифровка‏ ‎и ‎проверка‏ ‎MD5: ‎Для‏ ‎расшифровки‏ ‎используется ‎функция‏ ‎des_min_do, ‎и ‎дайджест ‎пакета ‎MD5‏ ‎сверяется ‎с‏ ‎дайджестом‏ ‎данных ‎MD5. ‎Если‏ ‎длина ‎пакета‏ ‎превышает ‎размер ‎буфера, ‎это‏ ‎приводит‏ ‎к ‎повреждению‏ ‎памяти ‎и‏ ‎отказу ‎в ‎обслуживании ‎(DoS).

Проверка ‎концепции‏ ‎(PoC)

📌Настройка: PoC‏ ‎включает ‎в‏ ‎себя ‎настройку‏ ‎виртуальной ‎машины ‎(ВМ) ‎с ‎встроенным‏ ‎ПО‏ ‎и‏ ‎запуск ‎службы‏ ‎tddpd.

📌Код ‎эксплойта: Документ‏ ‎содержит ‎код‏ ‎на‏ ‎Python, ‎который‏ ‎создает ‎пакет ‎TDDP ‎с ‎определенными‏ ‎полями, ‎манипулируемыми‏ ‎для‏ ‎запуска ‎переполнения ‎буфера.

📌Результат:‏ ‎Выполнение ‎PoC‏ ‎приводит ‎к ‎сбою ‎программы‏ ‎tddpd,‏ ‎что ‎подтверждает‏ ‎уязвимость.

Вывод

📌Последствия: ‎Уязвимость‏ ‎приводит ‎к ‎отказу ‎в ‎обслуживании‏ ‎и‏ ‎потенциально ‎позволяет‏ ‎выполнять ‎удаленный‏ ‎код ‎при ‎дальнейшем ‎использовании.

📌Рекомендации: Для ‎устранения‏ ‎таких‏ ‎уязвимостей‏ ‎рекомендуется ‎регулярно‏ ‎обновлять ‎и‏ ‎исправлять, ‎сегментировать‏ ‎сеть‏ ‎и ‎надлежащим‏ ‎образом ‎проверять ‎поступающие ‎данные.

Предыдущий Следующий
Все посты проекта

Подарить подписку

Будет создан код, который позволит адресату получить бесплатный для него доступ на определённый уровень подписки.

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

Будет создан код, который позволит адресату получить сумму на баланс.

Разово будет списана указанная сумма и зачислена на баланс пользователя, воспользовавшегося данным промокодом.

Добавить карту
0/2048