Образовательный репозиторий, документирующий анализ и эксплуатацию CVE-2025-5548 (переполнение буфера FreeFloat FTP Server). Включает переиспользуемую методологию анализа уязвимостей, статический реверс-инжиниринг, пошаговую эксплуатацию, а также руководство по подходу к 0-day с методами фаззинга и отладки.

Андерсон Стивен — Магистр кибербезопасности, Модуль 6 (Уязвимости) Индивидуальная работа: Методология анализа уязвимостей и эксплуатации
Я не хотел просто сдать "вот работающий эксплойт". Этот репозиторий
отражает то, как я работаю, сталкиваясь с уязвимостью повреждения
памяти: на что смотрю в первую очередь, в каком порядке отбрасываю
гипотезы, какие инструменты использую на каждом этапе и почему. Я использую
CVE-2025-5548 как связующую нить, потому что это небольшой и управляемый
пример, но центральный документ этого репозитория —
METHODOLOGY.md — это не туториал "как взломать FreeFloat
FTP", а мой способ рассуждения над любым бинарным файлом, применимый к другим случаям.
FreeFloat FTP Server 1.0 — это FTP-сервер для Windows, созданный более десяти лет
назад, не поддерживаемый, но всё ещё используемый в учебных лабораториях по
эксплуатации, потому что его ошибка классическая: при обработке некоторых команд
протокола (NOOP — та, с которой я работаю здесь, хотя она не единственная) он
копирует то, что отправляет клиент, в фиксированный буфер в стеке с помощью
, не проверяя длину входных данных. Если отправить больше данных, чем
помещается, вы перезаписываете сохранённый обратный адрес в стеке и получаете
контроль над EIP.
strcpyЧто мне показалось интересным при исследовании истории этой ошибки: одна и та же
ошибка программирования, вызываемая разными FTP-командами (USER, PASS,
HOST, NOOP...), в итоге была зарегистрирована как несколько разных CVE
(CVE-2025-5548, CVE-2025-5667, CVE-2025-5220, CVE-2025-5075...).
METHODOLOGY.md — центральный документ: моя методология
анализа и эксплуатации, этап за этапом, с инструментами и подходом,
которые я применяю на каждом, и мой способ работы с неизвестной уязвимостью (0-day).00-Environment/ — как я настроил лабораторию
(жертва Windows, атакующий Linux, установленное ПО, сеть); включает уязвимый
бинарник в Binaries/.01-Vulnerability-Analysis/ — диагностика
бинарника: где находится ошибка и почему она происходит, с помощью статического
реверс-инжиниринга.02-Exploitation/ — полный процесс
эксплуатации, задокументированный шаг за шагом, со скриптами, которые я
использовал на каждом этапе.03-0day-Approach/ — как бы я подошёл к поиску
ещё не обнаруженной уязвимости: фаззинг, диффинг, реверсинг, окружение.images/ — скриншоты лаборатории, по подпапке на раздел.Все тесты проводились в изолированной лаборатории (виртуальные машины во внутренней сети, без выхода к системам третьих лиц). Содержание исключительно образовательное; не предназначено для использования против инфраструктур без разрешения.
В качестве основы я использовал репозиторий TheMalwareGuardian/CVE-2025-5548.