CVE-2025-5777 Эксплойт утечки памяти Citrix NetScaler
[!WARNING]
Этот скрипт предназначен только для образовательных и исследовательских целей. Не используйте его против систем без явного разрешения. Несанкционированный доступ или тестирование незаконны и неэтичны. Прочитайте полный DISCLAIMER перед использованием этого скрипта.
Обзор
Этот проект демонстрирует уязвимость утечки памяти (CVE-2025-5777), обнаруженную в устройствах Citrix NetScaler. Уязвимость возникает из-за неправильной обработки неинициализированной памяти при разборе некорректных данных POST, особенно параметра login. Она широко известна как CitrixBleed 2 из-за сильного сходства с печально известной уязвимостью CVE-2023-4966 (оригинальный CitrixBleed), которая активно эксплуатировалась в 2023 году.
Когда поле login включено без знака равенства или значения, часть неинициализированной памяти стека возвращается внутри тега <InitialValue> в XML-ответе.

Утечка данных: Каждый HTTP-запрос может утечь приблизительно 127 байт содержимого ОЗУ. Повторяя эти запросы, злоумышленники могут собрать чувствительные данные из памяти, которые могут включать:
- Токены сеансов (позволяющие угонять сеансы и обходить MFA).
- Данные аутентификации.
- Части предыдущих HTTP-запросов.
- Учётные данные в открытом виде.
- Другую конфиденциальную информацию.
Использование скрипта
Требования / Зависимости
pip3 install aiohttp colorama
Запуск скрипта
python3 exploit.py <URL> [options]
Параметры командной строки
positional arguments:
url Base URL (e.g., http://target.com)
optional arguments:
-h, --help Show help message
-v, --verbose Enable debug output
-p, --proxy PROXY HTTP proxy URL (e.g., http://127.0.0.1:8080)
-t, --threads N Number of concurrent threads (default: 10)
-d, --delay SECONDS Delay between request batches in seconds (default: 1.0)
--max-requests N Maximum number of requests to send (default: unlimited)
-e, --endpoints PATH Additional endpoints to test (can specify multiple)
--no-save Don't save data to files on exit
Примеры
Базовое использование:
python3 exploit.py http://target.com
Режим подробного вывода с прокси:
python3 exploit.py http://target.com -v -p http://127.0.0.1:8080
Высокая параллельность с ограничением скорости:
python3 exploit.py http://target.com -t 20 -d 0.5
Ограниченные запросы с несколькими конечными точками:
python3 exploit.py http://target.com --max-requests 1000 -e /p/u/doAuthentication.do /api/auth
Справка:
python3 exploit.py -h
Расширенные возможности
Эта улучшенная версия включает:
🔍 Обнаружение шаблонов
- Автоматически обнаруживает токены сеансов (шаблоны NSC_*, NSC_TASS, NSC_AAAC)
- Определяет учётные данные (username:password, Basic Auth)
- Находит IP-адреса, адреса электронной почты, URL
- Обнаруживает строки Base64, hex, JSON-данные
- Выделяет шаблоны в шестнадцатеричном дампе вывода
📊 Отслеживание статистики
- Отображение статистики в реальном времени
- Отслеживание процента успеха, процента утечек, ошибок
- Счётчик утёкших байт
- Обнаружение уникальных утечек (хеширование MD5)
- Счётчики обнаружения шаблонов
💾 Сбор и экспорт данных
- Автоматическое сохранение данных при выходе (Ctrl+C)
- Экспорт в JSON с полными метаданными
- Экспорт в CSV для анализа в таблицах
- Отдельный файл с токенами сеансов
- Текстовый файл с сырыми утечками
- Каталоги вывода с метками времени
🎯 Извлечение токенов сеансов
- Автоматическое обнаружение токенов сеансов Citrix
- Дедупликация найденных токенов
- Отдельное хранение и экспорт токенов
- Отслеживание количества токенов
🔐 Извлечение учётных данных
- Декодирование Basic Auth
- Обнаружение шаблонов username:password
- Хранение и экспорт учётных данных
📈 Улучшенный вывод
- Шестнадцатеричные дампы с цветовой кодировкой
- Выделение шаблонов в выводе
- Подробные сводки утечек
- Периодические обновления прогресса
- Полная статистика при выходе
⚙️ Расширенная конфигурация
- Тестирование нескольких конечных точек
- Настраиваемые лимиты запросов
- Регулируемые задержки между пакетами
- Улучшенная обработка ошибок и восстановление
- Корректное завершение с сохранением данных
Как это работает
Этот продвинутый Python-скрипт:
- Отправляет повторяющиеся некорректные POST-запросы к уязвимым конечным точкам
- Разбирает XML-ответы на теги
<InitialValue>
- Извлекает содержимое утёкшей памяти
- Анализирует данные на наличие чувствительных шаблонов (токены, учётные данные и т.д.)
- Отображает результаты в улучшенном шестнадцатеричном формате с выделением
- Отслеживает статистику и уникальные утечки
- Автоматически сохраняет собранные данные в нескольких форматах
- Поддерживает проксирование, многопоточность, ограничение скорости и подробный вывод
Влияние
- Угон сеансов: Основная проблема — кража токенов сеансов, что позволяет злоумышленникам угонять активные пользовательские сеансы и получать несанкционированный доступ к критическим системам, даже если включена многофакторная аутентификация (MFA).
- Обход аутентификации: Украденные токены сеансов или учётные данные могут быть использованы для полного обхода процесса аутентификации.
- Раскрытие данных: Конфиденциальная информация, находящаяся в памяти, может быть раскрыта.

Защита и смягчение
- Обновите до последней безопасной прошивки немедленно.
- Отслеживайте аномальные шаблоны POST-запросов.
Ссылки