Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-3227-TP-Link-authenticated-RCE — Доказательство концепции для аутентифицированного внедрения команд ОС в прошивку маршрутизатора TP-Link. Включает дешифрование, хуки шифрования на основе QEMU и генерацию полезной нагрузки длиной 15 символов для постоянного цикла загрузки или развертывания бэкдора. | Kitploit
Инструменты/GitHubGitHub/do4choo/cve-2026-3227-tp-link-authenticated-rce
Безопасность IoTАнализ уязвимостейЭксплуатацияОбратная инженерияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеАнализ ПрошивокЭксплуатация Бинарных Файлов

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHubdo4choo/cve-2026-3227-tp-link-authenticated-rce

CVE-2026-3227-TP-Link-authenticated-RCE

Доказательство концепции для аутентифицированного внедрения команд ОС в прошивку маршрутизатора TP-Link. Включает дешифрование, хуки шифрования на основе QEMU и генерацию полезной нагрузки длиной 15 символов для постоянного цикла загрузки или развертывания бэкдора.

Репозиторий
4212522 месяцев назадПроверено Kitploit

CVE-2026-3227: Командная инъекция в ОС маршрутизаторов TP-Link

CVE Status Hardware Language

Дополнительная информация: https://www.cve.org/CVERecord?id=CVE-2026-3227

Устойчивая, аутентифицированная уязвимость командной инъекции в прошивке маршрутизаторов TP-Link, приводящая к блокировке устройства или возможному захвату локальной сети.

Отказ от ответственности: Этот репозиторий содержит код подтверждения концепции (PoC) для исправленной уязвимости. Он предназначен для образовательных целей и для исследователей безопасности.

Краткое описание

Уязвимость командной инъекции существует в механизме резервного копирования/восстановления конфигурации нескольких маршрутизаторов TP-Link (включая TL-WR802N, TL-WR841N и TL-WR840N). Злоумышленник с административным доступом может загрузить конфигурацию маршрутизатора, расшифровать её, внедрить вредоносную команду ОС (до 15 символов) в определённые поля XML, повторно зашифровать и загрузить обратно на устройство. Когда маршрутизатор применяет конфигурацию (например, во время событий триггера портов или при запуске), внедрённая нагрузка выполняется от root. Это может быть использовано для создания постоянного цикла перезагрузки (полное выведение устройства из строя, переживающее сброс к заводским настройкам) или потенциально для установки постоянного бэкдора для перемещения по локальной сети.


История обнаружения (как я это нашёл)

Изучая функцию резервного копирования конфигурации маршрутизатора, я решил провести обратную разработку бинарного файла httpd и библиотеки libcmm.so, чтобы понять, как файлы конфигурации шифруются и анализируются.

  1. Дешифрование: Я успешно написал скрипт на Python для дешифрования конфигурационного блоба маршрутизатора, что позволило мне прочитать базовую XML-конфигурацию.
  2. Поиск стока: При анализе XML-параметров я обнаружил точки инъекции, которые передавались непосредственно функциям выполнения системы без санитизации.
  3. Проблема с шифрованием: Воспроизвести алгоритм шифрования было сложно. Несмотря на обратную разработку кода и попытки перереализовать алгоритм на Python и C, мне не удалось создать зашифрованный файл, который бы принимал маршрутизатор.
  4. Обходной путь (QEMU Hooking): Вместо того чтобы изобретать велосипед, я применил наступательный инженерный подход. Я эмулировал архитектуру маршрутизатора с помощью qemu-user и подключил исходный бинарный файл httpd маршрутизатора во время выполнения (create_config.c). Это позволило мне вызывать собственные функции шифрования маршрутизатора непосредственно из моего PoC на Python, идеально имитируя исходный формат шифрования.

Технический анализ / Анализ первопричины

Уязвимость заключается в том, как продукт анализирует зашифрованный конфигурационный блоб и применяет его во время выполнения. В пути конфигурации триггера портов реализация формирует команды оболочки, используя поля, контролируемые пользователем, без надлежащей санитизации.

В частности, функция oal_pt_addPortTrigger вызывает:

root@kitploit:~
util_execSystem("oal_pt_addPortTrigger",
  "iptables -A FORWARD_PT -i br+ -p %s -j TRIGGER --trigger-type out --trigger-proto %s --trigger-match %d-%d --trigger-relate %d-%d",
  &local_48, &local_44, *(undefined4 *)(param_2+4), *(undefined4 *)(param_2+4), *psVar3, psVar3[1]);

Строка формата %s заполняется строкой интерфейса (X_TP_IfName), анализируемой непосредственно из загруженной XML-конфигурации.

Поток выполнения:

  1. Загрузка: http_cgi_gdpr_main -> rdp_setObj -> rsl_setObj -> oal_pt_addPortTrigger
  2. Анализ: oal_pt_addPortTrigger вызывает forward_parsePtOpenPort для анализа списков портов.
  3. Выполнение: Система строит строку команды iptables и выполняет её через util_execSystem (которая оборачивает system()).

Изменяя расшифрованный XML, чтобы включить:

root@kitploit:~
<X_TP_IfName val=";reboot;"/>

Команда выполняется во время инициализации интерфейса при запуске или при возникновении события триггера порта. Поскольку полезная нагрузка ограничена 15 символами, создание эксплойта требует компактных методов выполнения команд.

Доказательство концепции (PoC)

Чтобы избежать распространения защищённых авторским правом бинарных файлов TP-Link, этот PoC требует, чтобы вы самостоятельно извлекли файловую систему маршрутизатора для использования собственных библиотек шифрования через пользовательский хук QEMU.

Предварительные требования

  • qemu-mipsel и кросс-компилятор (gcc-mipsel-linux-gnu)
  • Python 3 и зависимости (pip install pycryptodome)
  • Прошивка, извлечённая с помощью binwalk -Me <firmware.bin>

Шаг 1: Подготовка среды

  1. Извлеките целевую прошивку и скопируйте каталог squashfs-root в 'python_utils/' этого проекта.
  2. Скомпилируйте хук QEMU:
    root@kitploit:~
    mipsel-linux-gnu-gcc -shared -fPIC -g -O0 c_hook/create_config.c -o python_utils/create_config.so
    

Шаг 2: Создание вредоносной конфигурации

  1. Войдите в свой маршрутизатор и скачайте резервную конфигурацию (config.bin).
  2. Запустите генератор полезной нагрузки:
    root@kitploit:~
    python3 generate_payload.py -i config.bin -o exploit.bin -p ";reboot;"
    
    Примечание: Полезная нагрузка не должна превышать 15 символов.

Шаг 3: Загрузка конфигурации через curl (функция обновления на моём маршрутизаторе была просто приманкой и на самом деле ничего не делала).

root@kitploit:~
curl -X POST "http://192.168.0.1/cgi/confup" \
  -H "User-Agent: Mozilla/5.0" \
  -H "Referer: http://192.168.0.1/mainFrame.htm" \
  -H "Origin: http://192.168.0.1" \
  -H "Cookie: JSESSIONID=<JSESSIONID_COOKIE>" \
  -F "[email protected];type=application/octet-stream"

Шаг 3: Запуск эксплойта

  1. После перезагрузки маршрутизатора и применения настроек перейдите в раздел Forwarding -> Port Triggering.
  2. Добавьте новый триггер порта (например, выберите "Battle.net" из выпадающего списка) и сохраните.
  3. Внедрённая команда ОС будет выполнена от имени root. Если вы использовали ;reboot;, маршрутизатор немедленно перезагрузится и войдёт в постоянный цикл перезагрузки.
Скачать инструмент