
POC для CVE-2025-29384
Этот репозиторий содержит продвинутый эксплойт proof-of-concept (PoC) для CVE-2025-29384 — критической уязвимости типа переполнение буфера на стеке, обнаруженной в маршрутизаторе Tenda AC9 с версией прошивки V15.03.05.14_multi. Эта уязвимость позволяет неаутентифицированным удалённым злоумышленникам вызвать крах веб-сервера маршрутизатора (Denial-of-Service, DoS) и потенциально выполнить произвольный код (Remote Code Execution, RCE).
Цель этого проекта — продемонстрировать навыки разработки эксплойтов, внести вклад в сообщество кибербезопасности и послужить образовательной демонстрацией для академических оценок (например, стипендий в области кибербезопасности). Этот репозиторий содержит продвинутый эксплойт proof-of-concept (PoC) для CVE-2025-29384 — критической уязвимости типа переполнение буфера на стеке, обнаруженной в маршрутизаторе Tenda AC9 с версией прошивки V15.03.05.14_multi. Эта уязвимость позволяет неаутентифицированным удалённым злоумышленникам вызвать крах веб-сервера маршрутизатора (Denial-of-Service, DoS) и потенциально выполнить произвольный код (Remote Code Execution, RCE).
Цель этого проекта — продемонстрировать навыки разработки эксплойтов, внести вклад в сообщество кибербезопасности и послужить образовательной демонстрацией для академических оценок, таких как стипендии в области кибербезопасности.
CVE-2025-29384 затрагивает веб-интерфейс управления маршрутизатора Tenda AC9, а именно конечную точку:
/goform/AdvSetMacMtuWan
Уязвимость существует из-за некорректной проверки границ параметра wanMTU, который обрабатывается через HTTP POST-запрос. Входные данные копируются в стековый буфер фиксированного размера без проверки, что приводит к классическому переполнению буфера на стеке.
Уязвимая функция (гипотетическая реконструкция) имеет следующую структуру:
void process_mtu(char *input) {
char buffer[256]; // Fixed-size stack buffer
strcpy(buffer, input); // No length check, causes overflow
// Process MTU value...
}
Злоумышленник, отправляющий чрезмерно большой payload (например, 1024+ байт), перезаписывает соседние области памяти, включая адрес возврата функции, что потенциально приводит к выполнению кода.
| Метрика | Значение |
|---|---|
| Вектор атаки | Сетевой |
| Сложность атаки | Низкая |
| Требуемые привилегии | Отсутствуют |
| Взаимодействие с пользователем | Не требуется |
| Влияние на конфиденциальность | Высокое |
| Влияние на целостность | Высокое |
| Влияние на доступность | Высокое |
Tenda AC9 — это двухдиапазонный беспроводной маршрутизатор со следующими характеристиками:
Этот репозиторий также включает модуль Metasploit на Ruby для CVE-2025-29384. Модуль бесшовно интегрируется с Metasploit Framework, позволяя эксплуатировать уязвимость с помощью 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 Framework:
msfconsole
Загрузите модуль:
use exploit/linux/http/tenda_ac9_stack_overflow
Укажите IP-адрес цели:
set RHOSTS <target_ip>
Укажите размер payload (необязательно, по умолчанию — 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...
Успех: веб-сервер маршрутизатора падает, что приводит к состоянию Denial-of-Service (DoS).
Неудача: маршрутизатор остаётся работоспособным, что указывает на то, что устройство может не быть уязвимым или работает на пропатченной версии прошивки.
Этот PoC — эксплойт на Python, который отправляет входные данные завышенного размера на /goform/AdvSetMacMtuWan, вызывая переполнение буфера, чтобы обрушить веб-сервер, и демонстрирует потенциал для RCE.
Многопоточность – запускает несколько одновременных попыток эксплуатации для надёжности.
Динамические payload-ы – генерирует рандомизированные атакующие строки в кодировке base64.
Логирование – использует модуль logging языка Python для структурированной отладки.
Настраиваемые параметры – регулирует IP-адрес цели, размер payload и количество потоков.
Этот PoC — эксплойт на Python, который отправляет входные данные завышенного размера на /goform/AdvSetMacMtuWan, вызывая переполнение буфера, чтобы обрушить веб-сервер.
python poc.py --target <router_ip> --size 2048 --threads 10
| Аргумент | Описание |
|---|---|
--target | IP-адрес маршрутизатора (по умолчанию: 192.168.0.1) |
--size | Размер payload в байтах (по умолчанию: 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, чтобы проверить отклик устройства.