
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-адрес маршрутизатора (по умолчанию: ) |
[+] 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, чтобы проверить отклик устройства.
Этот проект предназначен только для образовательных целей и этичного взлома. Несанкционированное использование этого эксплойта противозаконно. Автор не несёт ответственности за неправомерное использование или ущерб, причинённый этим кодом.
Разработано с ❤️ Otsmane Ahmed Этот проект предназначен только для образовательных целей и этичного взлома. Несанкционированное использование этого эксплойта противозаконно. Автор не несёт ответственности за неправомерное использование или ущерб, причинённый этим кодом.
Этот проект выпущен под лицензией MIT.
| Метрика | Значение |
|---|
| Вектор атаки | Сетевой |
| Сложность атаки | Низкая |
| Требуемые привилегии | Отсутствуют |
| Взаимодействие с пользователем | Не требуется |
| Влияние на конфиденциальность | Высокое |
| Влияние на целостность | Высокое |
| Влияние на доступность | Высокое |
192.168.0.1--size | Размер payload в байтах (по умолчанию: 1024) |
--threads | Количество одновременных потоков (по умолчанию: 5) |