Обзор-разбор 4G-роутера TP-Link Archer MR500
Хороший вариант сэкономить без ущерба для дела
MESH-сеть из двух роутеров TP-Link Archer AX73. Дождались
Обещанного ждут порой сильно больше трех лет. И иногда оно того стоит
18 лучших роутеров и MESH-систем TP-Link
Выбрать лучших было непросто :)
Как выбрать правильный роутер в 2021 году? Подробно, интересно и, главное, понятно
Подробный рассказ о том, как выбрать роутер нормальному человеку, получить удовольствие от результата и не поседеть.
TP-Link TDDP Buffer Overflow Vulnerability
The article provides a detailed analysis of a specific vulnerability in TP-Link devices that was reported in 2020 but did not receive a CVE assignment.
Causes of the TP-Link TDDP Buffer Overflow Vulnerability
The TP-Link TDDP (TP-LINK Device Debug Protocol) buffer overflow vulnerability primarily stems from the protocol’s handling of UDP packets. TDDP, a binary protocol used for debugging purposes, processes packets through a single UDP packet, which is prone to security risks if not properly handled. The specific cause of the buffer overflow is the lack of proper verification of data length during the parsing of these UDP packets. This oversight allows for memory overflow, which corrupts the memory structure of the device
Impacts of the Vulnerability
The primary impact of the TP-Link TDDP buffer overflow vulnerability is a denial of service (DoS). This occurs when the overflow corrupts the memory structure, causing the device to crash or become unresponsive. Additionally, there is a potential for remote code execution, which could allow an attacker to execute arbitrary code on the device. This could lead to unauthorized access to the network, data theft, or further exploitation of network resources
Exploitation Techniques
Exploitation of the TP-Link TDDP buffer overflow vulnerability involves sending crafted UDP packets that exceed the buffer limits set by the protocol. This can be achieved by manipulating the packet’s data length to be longer than what the buffer can handle, leading to overflow. Tools like Shambles can be used to identify, reverse, emulate, and validate such buffer overflow conditions. Successful exploitation could allow attackers to cause a denial of service or potentially execute arbitrary code on the device
Mitigation Strategies
📌Firmware Updates: Regularly updating the firmware of TP-Link devices to the latest version can help patch vulnerabilities and improve security.
📌Network Segmentation: Placing critical devices on separate network segments can limit the spread of potential attacks.
📌Firewall Rules: Configuring firewalls to restrict incoming traffic on UDP port 1040, which is used by TDDP, can prevent unauthorized access.
📌Vulnerability Scanners: Using security tools to regularly scan for vulnerabilities can help identify and mitigate them before they are exploited
Overview of TDDP
📌TP-Link Device Debug Protocol (TDDP): A binary protocol used primarily for debugging purposes that operates through a single UDP packet. This protocol is documented in patent CN102096654A.
📌Packet Structure: The TDDP packet includes fields such as Version, Type, Code, ReplyInfo, PktLength, PktID, SubType, Reserve, and MD5 Digest, which are crucial for the protocol’s operation.
Vulnerability Analysis / Function Analysis:
📌tddpEntry (sub_4045f8 0×004045F8): This function continuously checks for incoming data using the recvfrom function and passes the data to TddpPktInterfaceFunction without validating the received data size.
📌GetTddpMaxPktBuff (sub_4042d0 0×004042D0): Returns a buffer size of 0×14000.
📌tddp_versionTwoOpt (sub_404b40 0×00405990) and tddp_deCode (sub_404fa4 0×00405014): Functions involved in processing and decoding the TDDP packet. They handle data decryption using DES and verify the integrity of the decrypted data.
Exploitation Mechanism
📌Buffer Overflow Trigger: The vulnerability is triggered when the packet length specified in the TDDP packet exceeds the buffer size (0×14000), leading to a buffer overflow.
📌Decryption and MD5 Verification: The des_min_do function is used for decryption, and the MD5 digest of the packet is verified against the MD5 digest of the data. If the packet length is manipulated to exceed the buffer size, it leads to memory corruption and a denial of service (DoS).
Proof of Concept (PoC)
📌Setup: The PoC involves setting up a virtual machine (VM) with the firmware and running the tddpd service.
📌Exploit Code: The document includes Python code that crafts a TDDP packet with specific fields manipulated to trigger the buffer overflow.
📌Result: Executing the PoC results in the tddpd program crashing, confirming the vulnerability.
Conclusion
📌Impact: The vulnerability leads to a denial of service and potentially allows for remote code execution if further exploited.
📌Recommendations: Regular updates and patches, network segmentation, and proper validation of incoming data are recommended to mitigate such vulnerabilities.
Уявзимость 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, что подтверждает уязвимость.
Вывод
📌Последствия: Уязвимость приводит к отказу в обслуживании и потенциально позволяет выполнять удаленный код при дальнейшем использовании.
📌Рекомендации: Для устранения таких уязвимостей рекомендуется регулярно обновлять и исправлять, сегментировать сеть и надлежащим образом проверять поступающие данные.