
Эксплойт proof-of-concept для CVE-2025-29384, критическое стековое переполнение буфера в маршрутизаторах Tenda AC9. Включает модули Python и Metasploit для неаутентифицированного удаленного DoS и потенциального RCE на прошивке на базе MIPS.
Этот репозиторий содержит продвинутый эксплойт доказательства концепции (PoC) для CVE-2025-29384 — критической уязвимости стекового переполнения буфера, обнаруженной в маршрутизаторе Tenda AC9 с версией прошивки V15.03.05.14_multi. Эта уязвимость позволяет неаутентифицированным удаленным злоумышленникам вызвать крах веб-сервера маршрутизатора (Отказ в обслуживании, DoS) и потенциально выполнить произвольный код (Удаленное выполнение кода, RCE).
Цель этого проекта — продемонстрировать навыки разработки эксплойтов, внести вклад в сообщество кибербезопасности и предоставить образовательную демонстрацию для академических оценок (например, стипендий по кибербезопасности). Этот репозиторий содержит продвинутый эксплойт доказательства концепции (PoC) для CVE-2025-29384 — критической уязвимости стекового переполнения буфера, обнаруженной в маршрутизаторе Tenda AC9 с версией прошивки V15.03.05.14_multi. Эта уязвимость позволяет неаутентифицированным удаленным злоумышленникам вызвать крах веб-сервера маршрутизатора (Отказ в обслуживании, DoS) и потенциально выполнить произвольный код (Удаленное выполнение кода, RCE).
Цель этого проекта — продемонстрировать навыки разработки эксплойтов, внести вклад в сообщество кибербезопасности и предоставить образовательную демонстрацию для академических оценок, таких как стипендии по кибербезопасности.
CVE-2025-29384 затрагивает веб-интерфейс управления маршрутизатора Tenda AC9, а именно конечную точку:
/goform/AdvSetMacMtuWan
Уязвимость существует из-за неправильной проверки границ параметра wanMTU, который обрабатывается через HTTP POST-запрос. Ввод копируется в стековый буфер фиксированного размера без проверки, что приводит к классическому стековому переполнению буфера.
Уязвимая функция (гипотетическая реконструкция) имеет следующую структуру:
void process_mtu(char *input) {
char buffer[256]; // Стековый буфер фиксированного размера
strcpy(buffer, input); // Без проверки длины, вызывает переполнение
// Обработка значения MTU...
}
Злоумышленник, отправляя нагрузку большого размера (например, 1024+ байт), перезаписывает соседнюю память, включая адрес возврата функции, что потенциально приводит к выполнению кода.
| Метрика | Значение |
|---|---|
| Вектор атаки | Сеть |
| Сложность атаки | Низкая |
| Необходимые привилегии | Нет |
| Взаимодействие с пользователем | Нет |
| Влияние на конфиденциальность | Высокое |
| Влияние на целостность | Высокое |
| Влияние на доступность | Высокое |
Tenda AC9 — это двухдиапазонный беспроводной маршрутизатор со следующими характеристиками:
Этот репозиторий также включает Ruby-модуль Metasploit для CVE-2025-29384. Модуль бесшовно интегрируется с фреймворком Metasploit, позволяя эксплуатировать уязвимость с помощью msfconsole.
git clone https://github.com/Otsmane-Ahmed/cve-2025-29384-poc
cd cve-2025-29384-poc
Найдите файл Ruby-модуля и скопируйте его в директорию эксплойтов Metasploit:
cp tenda_ac9_stack_overflow.rb ~/.msf4/modules/exploits/linux/http/
Примечание: Если директория не существует, создайте её:
mkdir -p ~/.msf4/modules/exploits/linux/http/
Запустите фреймворк Metasploit:
msfconsole
Загрузите модуль:
use exploit/linux/http/tenda_ac9_stack_overflow
Установите IP-адрес цели:
set RHOSTS <target_ip>
Установите размер нагрузки (опционально, по умолчанию 1024):
set PAYLOAD_SIZE 2048
Запустите эксплойт:
run
[*] Targeting Tenda AC9 at 192.168.0.1:80...
[*] Sending payload of size 2048...
[+] Payload sent successfully!
[*] Response: HTTP/1.1 200 OK...
Успех: Веб-сервер маршрутизатора аварийно завершает работу, вызывая отказ в обслуживании (DoS).
Неудача: Маршрутизатор остается работоспособным, что указывает на то, что он может быть не уязвим или работает с пропатченной версией прошивки.
Этот PoC представляет собой Python-эксплойт, который отправляет чрезмерно большой ввод на /goform/AdvSetMacMtuWan, вызывая переполнение буфера для аварийного завершения веб-сервера и демонстрируя потенциал для RCE.
Многопоточность – Запускает несколько одновременных попыток эксплойта для надежности.
Динамические нагрузки – Генерирует рандомизированные строки атаки в кодировке base64.
Логирование – Использует модуль логирования Python для структурированной отладки.
Настраиваемые параметры – Позволяет изменять целевой IP, размер нагрузки и количество потоков.
Этот PoC представляет собой Python-эксплойт, который отправляет чрезмерно большой ввод на /goform/AdvSetMacMtuWan, вызывая переполнение буфера для аварийного завершения веб-сервера.
python poc.py --target <router_ip> --size 2048 --threads 10
| Аргумент | Описание |
|---|---|
--target | IP-адрес маршрутизатора (по умолчанию: 192.168.0.1) |
--size | Размер нагрузки в байтах (по умолчанию: 1024) |
--threads | Количество одновременных потоков (по умолчанию: 5) |
[+] CVE-2025-29384 Exploit Engine
[INFO] Target: 192.168.0.1
[INFO] Sending payload (2048 bytes)...
[WARNING] Target timeout - possible crash!
[INFO] Exploit sequence completed.
Успех: Веб-интерфейс маршрутизатора перестает отвечать (условие DoS).
Неудача: Маршрутизатор все еще отвечает (не уязвим или не та прошивка).
Чтобы подтвердить, что эксплойт успешно вызвал сбой маршрутизатора, попробуйте перезагрузить веб-интерфейс. Если он перестает отвечать, атака прошла успешно. Для дальнейшего анализа проверьте журналы сети на предмет разорванных соединений или используйте ping для проверки отклика устройства.