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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2007-1567 — Классическое стековое переполнение буфера в War FTP Daemon 1.65, демонстрирующее удаленное выполнение кода в стиле старой школы через искаженные FTP-команды. | Kitploit
Инструменты/GitHubGitHub/themalwareguardian/cve-2007-1567
Анализ уязвимостейЭксплуатацияШелл-кодОбучение и ОбразованиеИнструмент Удаленного ДоступаЭксплуатация Бинарных Файлов
GitHubthemalwareguardian/cve-2007-1567

CVE-2007-1567

Классическое стековое переполнение буфера в War FTP Daemon 1.65, демонстрирующее удаленное выполнение кода в стиле старой школы через искаженные FTP-команды.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
14 месяцев назадЕщё не проверено

🐞 CVE-2007-1567: War FTP Daemon 1.65 - Стековое переполнение буфера

Классическое стековое переполнение буфера в War FTP Daemon 1.65, демонстрирующее старую школу удаленного выполнения кода через неправильно сформированные FTP-команды.




📑 Содержание

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



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

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

CVE-2007-1567 — это случай, который я использую сразу после введения основ обычных перезаписей EIP. Эксплуатация чиста и прямолинейна, но в ней есть одна деталь, которая делает её немного интереснее, чем типичное первое упражнение: дополнительный плохой символ, который вводит протокол FTP и который студенты должны определить и учесть при создании своего шеллкода. Это небольшое ограничение, но достаточное, чтобы заставить студентов думать, а не просто копировать уже использованный метод.




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

War FTP Daemon 1.65 — это устаревший FTP-сервер Windows конца 1990-х годов. Уязвимость находится в обработчике команды USER, который использует sprintf для копирования пользовательского ввода в стековый буфер фиксированного размера без проверки его длины. Что делает этот случай полезным для обучения:

  • Не требуется аутентификация. Переполнение срабатывает в обработчике команды USER, до проверки пароля. Одной команды достаточно для вызова сбоя.
  • Прямая перезапись EIP. Ни SEH, ни кучи, ни многоэтапной эксплуатации. Сохранённый адрес возврата перезаписывается напрямую.
  • Дополнительный плохой символ. Помимо обычных \x00, \x0a и \x0d, протокол FTP вводит \x40 (@) как плохой символ, так как он интерпретирует синтаксис user@host. Студенты должны выявить это во время анализа плохих символов.
  • Требуется старая среда Windows. В отличие от большинства устаревшего ПО, которое я использую для обучения, War FTP Daemon 1.65 невозможно запустить на современных Windows из-за изменений Winsock API. Он требует Windows XP, что добавляет практическую задачу по настройке и учит студентов, что лабораторная среда имеет значение.



🔍 Контекст и затронутое ПО

War FTP Daemon — это FTP-сервер Windows, изначально написанный в конце 1990-х годов. Он прослушивает TCP-порт 21 и обрабатывает стандартные FTP-команды. Уязвимость находится в обработчике команды USER, который обрабатывает имя пользователя, отправленное подключающимся клиентом, используя sprintf без проверки длины.

Ключевые технические детали:

  • Тип уязвимости: Стековое переполнение буфера
  • Затронутая версия: War FTP Daemon 1.65
  • Затронутая конечная точка: FTP-команда USER
  • Уязвимый компонент: обработчик команды USER
Скачать инструмент
  • Требуется аутентификация: Нет
  • Воздействие: Удаленное выполнение кода



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

    War FTP Daemon обрабатывает команду USER, передавая предоставленное имя пользователя в sprintf, который копирует его в стековый буфер фиксированного размера без проверки его длины. Упрощенная версия уязвимой логики выглядит так:

    root@kitploit:~
    char buffer[256];
    
    sprintf(buffer, "%sCRLF", username);
    

    Отправка достаточно длинной строки в качестве аргумента USER заставляет копирование выйти за конец буфера, повреждая стек до тех пор, пока сохранённый адрес возврата не будет перезаписан. Когда функция возвращается, CPU загружает контролируемое атакующим значение из стека в EIP и переходит к нему.




    💥 Вызов сбоя

    Сбой можно воспроизвести, отправив чрезмерно большой аргумент USER по FTP. Аутентификация не требуется. Пример на Python:

    root@kitploit:~
    import socket
    
    HOST = '127.0.0.1'
    PORT = 21
    
    payload = b"A" * 700
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
    s.recv(1024)
    
    s.send(b"USER " + payload + b"\r\n")
    s.close()
    

    При выполнении под отладчиком сбой показывает EIP, перезаписанный данными, контролируемыми пользователем:

    root@kitploit:~
    EIP = 41414141
    

    что подтверждает повреждение сохранённого адреса возврата из-за переполнения.




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

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

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

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

    • Фаззинг команды USER для выявления сбоя.
    • Определение смещения для нахождения точного положения EIP в стеке.
    • Анализ плохих символов, включая символ \x40, специфичный для обработки FTP USER.
    • Поиск гаджета JMP ESP в MFC42.dll.
    • Размещение и выполнение шеллкода.