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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-5548 — Estudio técnico de la vulnerabilidad CVE-2025-5548 | Kitploit
Инструменты/GitHubGitHub/cryptomachio/cve-2025-5548
Vulnerability AnalysisExploitationReverse EngineeringShellcodeDebuggersPenetration TestingLearning & EducationPayload DevelopmentBinary ExploitationLabs & Practice
GitHubcryptomachio/cve-2025-5548

CVE-2025-5548

4 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

Estudio técnico de la vulnerabilidad CVE-2025-5548

Репозиторий

Техническое исследование уязвимости CVE-2025-5548

Введение

В данной работе анализируется уязвимость CVE-2025-5548, связанная с переполнением буфера в стеке в FreeFloat FTP Server v1.0. Основная цель лабораторной работы — понять, как ведёт себя уязвимое приложение при обработке поддельных входных данных, и наглядно увидеть в контролируемой среде, как ошибка валидации может повлиять на поток выполнения программы.

Разработка репозитория не ограничивается демонстрацией конечного результата, а охватывает весь процесс исследования: подготовку среды, выбор инструментов, наблюдение за сбоем, анализ памяти и проверку реального воздействия уязвимости.


Структура содержания

Работа построена на двух основных блоках.

Подготовка лаборатории

В этом разделе объясняется, как было настроено практическое окружение, какая операционная система использовалась, какое уязвимое приложение было выбрано и какие инструменты понадобились для проведения анализа.

Проведение анализа

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


1. Использованная лаборатория

Используемая система

Практическая работа проводилась на виртуальной машине с Windows 11 Pro 25H2 (Build 26200.6584). В качестве уязвимого ПО был выбран FreeFloat FTP Server v1.0 — старое приложение, подходящее для таких упражнений из-за отсутствия многих защит, характерных для современных программ.

Сеть виртуальной машины была настроена в режиме NAT, что обеспечило доступ в Интернет для установки зависимостей, загрузки инструментов и поддержания базового сетевого взаимодействия лаборатории.

Основные инструменты

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

Базовые утилиты

Git

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

Nmap

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

Windows SDK

Был установлен для получения библиотек, заголовочных файлов и инструментов, полезных при отладке и низкоуровневом анализе в среде Windows.

Редакторы и среды разработки

Notepad++

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

Visual Studio Code

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

PyCharm Community

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

Необходимые зависимости

Python

Рассматривались две версии:

  • Python 3 — как основной вариант для написания скриптов и современной автоматизации.
  • Python 2.7 — необходим для совместимости с некоторыми классическими инструментами отладки, используемыми в таких лабораториях.

Java JDK

Потребовался для запуска Ghidra, поскольку этот инструмент написан на Java.

Инструменты анализа и реверс-инжиниринга

Immunity Debugger

Использовался для наблюдения за состоянием программы во время выполнения, проверки регистров, просмотра памяти и анализа точного момента возникновения сбоя.

IDA Free

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

Ghidra

Использовался как дополнительное средство для декомпиляции и лучшего понимания внутренней логики уязвимой программы.

Mona

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

Уязвимое приложение

Основным компонентом лаборатории был FreeFloat FTP Server v1.0, который выступает в роли целевой системы в рамках доказательства концепции. Его ценность заключается в наличии классической уязвимости переполнения буфера в стеке, что делает его очень подходящим случаем для учебного анализа.

Общие замечания

Хотя существуют готовые виртуальные машины для такого рода упражнений, в данном случае было решено задокументировать среду и обосновать используемые инструменты. Это позволяет лучше понять, почему каждое приложение входит в лабораторию и какую роль оно играет в ходе анализа.


2. Анализ уязвимости

Первоначальное распознавание

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

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

На основе этого процесс был загружен в отладчик для наблюдения за его поведением во время выполнения.


Проверка с помощью увеличения входных данных

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

Такое поведение подтвердило, что это не просто поверхностная ошибка валидации, а реальное повреждение, влияющее на поток выполнения процесса.


Точное определение точки перезаписи

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

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


Проверка контроля выполнения

Имея известное смещение, был подготовлен новый тест, в котором адрес возврата был заменён на легко распознаваемое значение. Цель состояла в том, чтобы проверить, позволяет ли программа контролируемо изменять EIP.

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


Анализ проблемных символов

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

Путём последовательных сравнений в памяти были выявлены несколько bad characters, среди которых:

  • \x00
  • \x0a
  • \x0d

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


Поиск полезной ссылки в памяти

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

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


Подготовка полезной нагрузки

После подтверждения контроля над потоком была создана shellcode, совместимая с ранее обнаруженными ограничениями. Кроме того, была добавлена область с нейтральными инструкциями (NOP-слайд), чтобы облегчить безопасное достижение ЦП начала полезной нагрузки даже при небольшом отклонении от ожидаемой позиции.

Этот шаг был важен для повышения надёжности выполнения.


Финальный запуск и проверка воздействия

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

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


Заключение

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

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

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

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