новости
June 7

Уявзимость 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 0x004045F8): Эта функция постоянно проверяет входящие данные с помощью функции recvfrom и передает данные в функцию TddpPktInterfaceFunction без проверки размера полученных данных.

📌GetTddpMaxPktBuff (sub_4042d0 0x004042D0): Возвращает размер буфера, равный 0x14000.

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

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

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

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

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

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

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

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

Вывод

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

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

Подпишись TG & Boosty