Citrix NetScaler: две 0-day под атакой, веб-шеллы и root

Google предупредила, что злоумышленники активно эксплуатируют две критические 0-day уязвимости в Citrix NetScaler, чтобы получить root-доступ, установить скрытые веб-шеллы и проникнуть во внутреннюю сеть жертвы. Кампанию отслеживают Mandiant Consulting и Google Threat Intelligence Group (GTIG); активность наблюдается как минимум с начала сентября 2026 года. Пострадали организации Северной Америки и Европы — государственный сектор, финансовые услуги, технологии, образование, юриспруденция и профессиональные услуги.

Речь о двух дырах. CVE-2026-88772 — критическое переполнение памяти в Citrix NetScaler ADC и NetScaler Gateway. CVE-2026-88771 — удалённое выполнение кода без аутентификации из-за некорректной проверки входных данных. Citrix присвоила обеим уязвимостям оценку CVSS 9.5 и подтвердила факт эксплуатации.

Как работает атака: от DTLS до root в FreeBSD

CVE-2026-88772 затрагивает устройства с включённым Datagram Transport Layer Security — на VPN-виртуальных серверах он включён по умолчанию. Эксплуатация обходит аутентификацию и приводит к необработанному завершению NetScaler Packet Processing Engine (NSPPE). Это даёт атакующим root-доступ к нижележащей операционной системе FreeBSD.

Закрепившись на устройстве, злоумышленники правят конфигурацию веб-сервера httpd.conf, чтобы файлы с обманными расширениями исполнялись как PHP. В наблюдавшихся вторжениях они назначали исполняемыми PHP-скриптами файлы пакетов .deb и файлы подписи .sig. Использовались и псевдонимы значков: запрос к безобидному на вид файлу .ico мог запустить скрытый веб-шелл.

Кампания разворачивает новый PHP-веб-шелл под названием WHIPSHOT. Вредонос прячет данные командования и управления, закодированные в Base64, в правдоподобных HTTP-заголовках — так вредоносный трафик сливается с обычными веб-запросами. WHIPSHOT умеет передавать команды и результаты, возвращая поддельные ответы HTTP 404 Not Found, что может сбить с толку администратора, изучающего логи веб-сервера.

Исследователи также нашли инструмент туннелирования на Python под названием SLAPSHOT. Он слушает локальный loopback-порт и проксирует произвольный TCP-трафик с скомпрометированного устройства NetScaler во внутреннюю сеть. Это позволяет вести разведку, подключаться к внутренним хостам, красть учётные данные и обеспечивать боковое перемещение. В одном из вторжений операторы, как сообщается, использовали прокси для ручной внутренней разведки и кражи учётных данных.

Для сохранения root-доступа атакующие выставляли бит setuid на /bin/sh: системная оболочка начинает выполняться с повышенными привилегиями, даже когда команды исходят от менее привилегированного процесса веб-сервера. В некоторых случаях устройство перезагружали или перезапускали Apache, чтобы активировать вредоносные изменения конфигурации.

Что делать: обновление и проверка конфигурации

Безопасным командам следует срочно обновить затронутые системы NetScaler. Citrix указывает исправленные выпуски: NetScaler 14.1-73.37 и новее, а также NetScaler 13.1-64.23 и новее; доступны и эквивалентные исправленные сборки FIPS.

Администраторам стоит проверить /etc/httpd.conf на подозрительные директивы AddHandler, AliasMatch и PHP; просмотреть каталоги VPN-скриптов на PHP-код, спрятанный в файлах .deb или .sig; поискать /tmp/.uxdport или /tmp/.uxdlock — они могут указывать на активность SLAPSHOT.

Признаками компромисса высокого приоритета считаются: /bin/sh с выставленным setuid, неожиданные падения NSPPE, сбои рукопожатия DTLS и необычные запросы к /vpn/media/ или /vpn/scripts/.

Индикаторы компромисса

Тип Индикатор Значение
Трафик эксплуатации UDP/443, DTLSv1.0 Наблюдавшийся трафик эксплуатации CVE-2026-88772
Лог NetScaler SSL_HANDSHAKE_FAILURE + DTLSv1.0 Возможный повреждённый трафик эксплуатации
Падение процесса NSPPE crash Возможный признак эксплуатации
Лог watchdog pitboss NOT restarting NSPPE Сигнал высокого приоритета
HTTP-заголовки HTTP_NSC_LDAP, HTTP_NSC_CLIENTTYPE Доставка команд веб-шелла
HTTP-заголовки HTTP_X_UX, HTTP_X_UX_[0-9]+ Трафик C2 WHIPSHOT
URI /vpn/media/*.ico Возможный доступ к скрытому веб-шеллу
URI /vpn/media/nsgclient.ico Известный псевдоним веб-шелла
Пути веб-шеллов /vpn/scripts/linux/nsginstaller*.deb Вредоносный установщик
Пути веб-шеллов /vpn/scripts/linux/nsgclient*.deb Размещение веб-шелла
Пути веб-шеллов /vpn/scripts/linux/*.php Потенциальные PHP-веб-шеллы
Веб-шелл e6ee7c85.sig Сообщённый вариант PHP-веб-шелла
SLAPSHOT /tmp/.uxdport, /tmp/.uxdlock Артефакты туннелирования
Закрепление AddHandler ... .deb/.sig Включает исполнение PHP
Закрепление AliasMatch ^/vpn/media/(.+).ico$ Перенаправление на веб-шеллы
Повышение привилегий chmod u+s /bin/sh Включает исполнение от root
Команды /bin/httpd -k restart -f /etc/httpd.conf Применяет изменения Apache
Команды /netscaler/nsshutdown -R Активирует закрепление
Подозрительный процесс nohup Python + /tmp/.uxd* Возможная активность SLAPSHOT
HTTP-ответ Большой/медленный HTTP 404 Возможный вывод скрытого веб-шелла
IP эксплуатации 143.198.7.94 Инфраструктура сканирования и подготовки
IP эксплуатации 157.254.167.12 Активность эксплуатации NetScaler
IP эксплуатации 149.104.78.141 Эксплуатация до раскрытия уязвимостей
Путь веб-шелла /var/netscaler/logon/LogonPoint/custom/.ctxs.receiver Скрытый веб-шелл
Имя псевдонима receiver.min.css Замаскированный доступ к веб-шеллу
Шаблон псевдонима receiver.min.[0-9a-f]+.css Шаблон псевдонима веб-шелла
SHA-256 6f5a2a452a7901323abd21879c6cecccb47c06aeeaccb1b467212f3b11e4b1e7 Сообщённый хеш веб-шелла

IP-адреса и домены в отчёте намеренно обезврежены (например, [.]), чтобы исключить случайное разрешение или переход по ссылке. Восстанавливать их следует только в контролируемых платформах threat intelligence — таких как MISP, VirusTotal или SIEM.

Эксплуатация началась до публичного раскрытия

GreyNoise наблюдала попытки эксплуатации ещё до того, как Citrix публично раскрыла уязвимости, включая активность с 149.104.78.141 24 сентября. Вывод подчёркивает сохраняющийся риск интернет-доступных пограничных устройств: они часто лишены покрытия endpoint-детектирования, но при этом дают прямой доступ к чувствительным внутренним средам.

Для российских компаний, использующих NetScaler ADC и Gateway как VPN-шлюз или точку публикации сервисов, это тот же класс риска: устройство стоит на периметре, а значит, обновление до 14.1-73.37 или 13.1-64.23 и проверка httpd.conf — задача не «на потом». Если обновление невозможно, стоит как минимум ограничить доступ к интерфейсам /vpn/media/ и /vpn/scripts/ и следить за падениями NSPPE — по ним эксплуатацию видно раньше, чем по логам веб-сервера. Родственные разборы уже были: две 0-day RCE в NetScaler и heap overflow CVE-2026-8452 с получением root. Общий контекст по активно эксплуатируемым дырам — в материале о добавлении уязвимостей Fortinet FortiOS и Arista VeloCloud в каталог KEV.

Частые вопросы

Кого касается эта атака?

Владельцев Citrix NetScaler ADC и NetScaler Gateway, доступных из интернета, — особенно если на VPN-виртуальных серверах включён DTLS. В отчёте Google упоминаются организации Северной Америки и Европы из государственного, финансового, технологического, образовательного, юридического и профессионального секторов.

Как проверить, уязвимо ли моё устройство?

Нужно узнать версию NetScaler. Исправлены выпуски 14.1-73.37 и новее, а также 13.1-64.23 и новее; есть эквивалентные исправленные сборки FIPS. Если версия ниже — устройство под риском, а при включённом DTLS риск выше.

Какие признаки компромисса искать в первую очередь?

Проверьте /etc/httpd.conf на директивы AddHandler, AliasMatch и PHP; поищите PHP-код внутри файлов .deb и .sig в каталогах VPN-скриптов; загляните в /tmp/.uxdport и /tmp/.uxdlock. Тревожные сигналы — setuid на /bin/sh, падения NSPPE, сбои DTLS-рукопожатия и необычные запросы к /vpn/media/ или /vpn/scripts/.

Что такое WHIPSHOT и чем он опасен?

Это новый PHP-веб-шелл из этой кампании. Он прячет данные C2 в Base64 внутри правдоподобных HTTP-заголовков и возвращает поддельные ответы HTTP 404, поэтому вредоносный трафик трудно отличить от обычного, а логи веб-сервера выглядят безобидно.

Как работает SLAPSHOT?

Это инструмент туннелирования на Python. Он слушает локальный loopback-порт и проксирует произвольный TCP-трафик с устройства NetScaler во внутреннюю сеть — для разведки, подключения к внутренним хостам, кражи учётных данных и бокового перемещения.

Зачем атакующие выставляют setuid на /bin/sh?

Чтобы сохранить root-доступ. С выставленным битом setuid системная оболочка выполняется с повышенными привилегиями, даже если команду запускает менее привилегированный процесс веб-сервера. В некоторых случаях для активации изменений устройство перезагружали или перезапускали Apache.

Эксплуатация началась до выхода патчей?

Да. GreyNoise видела попытки эксплуатации до публичного раскрытия уязвимостей, в том числе активность с адреса 149.104.78.141 24 сентября. Это типично для интернет-доступных пограничных устройств: их атакуют раньше, чем вендор успевает предупредить клиентов.

Что делать, если обновиться прямо сейчас нельзя?

Полностью закрыть проблему без патча не получится, но можно снизить риск: ограничить сетевой доступ к интерфейсам /vpn/media/ и /vpn/scripts/, отключить DTLS там, где он не нужен, и настроить мониторинг падений NSPPE и сбоев DTLS-рукопожатий. После установки патча обязательно проверьте httpd.conf и каталоги VPN-скриптов — обновление не удаляет уже внесённые изменения.

Источник: cybersecuritynews.com