
Лаборатория анализа и эксплуатации уязвимости CVE-2025-5548 в FreeFloat FTP Server 1.0
Лаборатория анализа и эксплуатации уязвимостей · Exploit Development · Windows x86
Этот репозиторий подробно документирует процесс анализа и эксплуатации уязвимости CVE-2025-5548, stack-based buffer overflow в FreeFloat FTP Server 1.0 для Windows.
Цель — не только эксплуатировать уязвимость, но и объяснить, как построить аналитическую лабораторию с нуля: какие инструменты нужны, зачем они нужны и как каждый из них используется в процессе эксплуатации. Всё окружение настраивается вручную и пошагово, без автоматизированных скриптов, что позволяет глубоко понять каждый этап процесса.
CVE-2025-5548 — это переполнение буфера в FreeFloat FTP Server.
Уязвимость возникает, когда FTP-сервер получает специально созданный ввод через команду NOOP. Из-за отсутствия проверки размера принимаемого буфера можно переполнить стек, перезаписать регистр EIP и перенаправить поток выполнения на произвольный код, контролируемый атакующим.
CVE-2025-5548-FreeFloat-FTP-Buffer-Overflow/
│
├── docs/
│ ├── 01_environment_setup.md ← Parte 1: Preparación del entorno
│ └── 02_exploitation.md ← Parte 2: Explotación de la vulnerabilidad
│
├── exploits/
│ ├── exploit01.py ← Verificación de conectividad
│ ├── exploit02.py ← Fuzzing del comando NOOP
│ ├── exploit03.py ← Envío del patrón cíclico
│ ├── exploit04.py ← Verificación del control del EIP
│ ├── exploit05.py ← Identificación de bad characters
│ └── exploit06.py ← Exploit final con JMP ESP
│
└── images/
└── *.png ← Capturas utilizadas en la documentación
Ручная установка и настройка всех необходимых инструментов для лаборатории, со скриншотами и объяснением, зачем нужен каждый из них.
📄 Смотреть документацию → docs/01_environment_setup.md
Полный процесс эксплуатации, задокументированный по этапам, от первого сбоя до полного контроля над потоком выполнения.
📄 Смотреть документацию → docs/02_exploitation.md
graph LR
A["Контролируемый ввод: NOP + буфер"] --> B["Переполнение буфера"]
B --> C["Перезапись EIP"]
C --> D["EIP → адрес JMP ESP"]
D --> E["JMP ESP"]
E --> F["ESP → контролируемый буфер"]
F --> G["NOP-слайд"]
G --> H["Shellcode"]
Контролируемый ввод (NOOP + буфер)
↓
Переполнение буфера
↓
Перезапись EIP
↓
EIP → адрес JMP ESP
↓
JMP ESP
↓
ESP → контролируемый буфер
↓
NOP-слайд
↓
Shellcode
Эта лаборатория направлена не только на запуск эксплойта, но и на понимание полного процесса анализа и эксплуатации уязвимостей.
Этот репозиторий предназначен исключительно для образовательных целей. Весь анализ и эксплуатация проводятся на уязвимом программном обеспечении в контролируемой и изолированной среде. Не используйте эти методы против систем без явного разрешения.
| Поле | Детали |
|---|
| CVE | CVE-2025-5548 |
| Опубликовано | 03/06/2025 |
| Серьёзность | Критическая |
| Тип | Stack-based Buffer Overflow |
| Затронутый компонент | NOOP Command Handler |
| Затронутое ПО | FreeFloat FTP Server 1.0 |
| Платформа | Windows x86 |
| Вектор атаки | Сеть (удалённый доступ) |
| Смещение до EIP | 246 bytes |
| Плохие символы | \x00 \x0a \x0d |
| Адрес JMP ESP | 0x7C86467B (kernel32.dll) |
| Категория | Инструменты |
|---|
| Языки | Python, Java (JDK) |
| IDE и редакторы | Visual Studio Code, Notepad++, PyCharm |
| Анализ и отладка | IDA Free, Immunity Debugger, Ghidra |
| Эксплуатация | Mona (плагин для Immunity) |
| Уязвимые приложения | VulnServer, FreeFloat FTP Server |
| Сеть и утилиты | Nmap / Ncat, Git |
| Фаза | Описание |
|---|
| 1 | Подготовка среды эксплуатации |
| 2 | Статический анализ бинарного файла с помощью IDA |
| 3 | Фаззинг команды NOOP |
| 4 | Вычисление смещения с помощью Mona (246 байт) |
| 5 | Идентификация плохих символов (\x00, \x0a, \x0d) |
| 6 | Перенаправление потока выполнения с помощью JMP ESP |