Hackers explotan zero-day de Citrix NetScaler para desplegar web shells

Firmas de ciberseguridad afirman que los atacantes explotaron el zero-day CVE-2026-88772 de Citrix NetScaler para desplegar web shells personalizadas y malware de tunelización, obtener acceso root, robar credenciales y propagarse hacia redes internas.

Mandiant señala que los ataques comenzaron al menos a principios de septiembre y se cree que impactaron a organizaciones de América del Norte y Europa en los sectores gubernamental, financiero, educativo, legal y de servicios profesionales.

La campaña salió a la luz durante el fin de semana, cuando administradores de Citrix comenzaron a reportar que proveedores de TI, equipos de seguridad, CERTs y agencias nacionales de ciberseguridad advirtieron de forma privada a las organizaciones sobre dos zero-days de NetScaler sin parchear y, en algunos casos, les aconsejaron apagar los dispositivos afectados.

La firma de ciberseguridad watchTowr dijo posteriormente que había verificado informes sobre dos zero-days de ejecución remota de código en NetScaler que estaban siendo explotados en la naturaleza y que Citrix preparaba parches.

Citrix finalmente reveló las fallas el domingo como CVE-2026-88771 y CVE-2026-88772, y algunos investigadores las apodaron 'PitScaler'. La compañía confirmó que ambas habían sido explotadas en implementaciones de NetScaler sin mitigaciones y publicó actualizaciones de seguridad para abordarlas.

CVE-2026-88771 es una falla de ejecución remota de código no autenticada que afecta a todas las implementaciones de NetScaler ADC y Gateway, mientras que CVE-2026-88772 es una vulnerabilidad de desbordamiento de memoria que puede provocar ejecución remota de código o denegación de servicio cuando DTLS está habilitado.

Explotadas en ataques zero-day

GreyNoise observó a un actor de amenazas intentando explotar un Citrix NetScaler Gateway el 24 de septiembre, tres días antes de que Citrix divulgara públicamente CVE-2026-88771 y CVE-2026-88772.

Según GreyNoise, el ataque se originó desde 149.104.78.141 y su plataforma lo detectó antes de que existieran detecciones para los CVE.

GreyNoise indica que el atacante intentó modificar /bin/sh para obtener una shell root e instalar una web shell PHP protegida con contraseña en /var/netscaler/logon/LogonPoint/custom/.ctxs.receiver.

El atacante también intentó modificar /etc/httpd.conf para que las solicitudes de lo que parecían ser archivos CSS, incluido receiver.min.css, abrieran en su lugar la web shell PHP oculta.

La empresa no publica el exploit completo por ahora, pero recomienda a los defensores buscar el archivo .ctxs.receiver, entradas relacionadas de Alias o AliasMatch en httpd.conf, cambios en los permisos de /bin/sh y conexiones desde la IP de origen observada.

Un nuevo informe de Mandiant proporciona más detalles sobre cómo se está explotando CVE-2026-88772, confirmando algunos de los mismos patrones de ataque vistos por GreyNoise.

Mandiant afirma que los exploits eluden la autenticación y provocan que el motor de procesamiento de paquetes de NetScaler (NSPPE) termine inesperadamente, otorgando a los atacantes acceso a nivel root.

Aunque Google Threat Intelligence Group no posee código de exploit, el análisis de la telemetría de primera línea sugiere que la transmisión de encabezados de registro especialmente malformados o fragmentados induce corrupción de los límites de memoria del heap dentro del motor de paquetes, desviando el flujo de control para ejecutar shellcode arbitrario con privilegios de sistema operativo a nivel root en la plataforma FreeBSD subyacente.

Google observó actividad similar posterior a la explotación en intrusiones, incluida la instalación de web shells PHP y la modificación de la configuración del servidor web de NetScaler para que extensiones de archivo no ejecutables se procesaran como PHP.

En una intrusión, Mandiant dice que los atacantes modificaron /etc/httpd.conf para que los archivos .deb se ejecutaran como PHP, permitiendo usar web shells desde directorios que normalmente contienen software cliente de NetScaler.

En otros ataques, el actor de amenazas utilizó archivos .sig y modificó la configuración del servidor web para que las solicitudes de imágenes .ico bajo /vpn/media/ se asignaran a archivos PHP maliciosos.

Google señala que esto permitió que las solicitudes maliciosas de web shell parecieran solicitudes de archivos de imagen o CSS mientras ejecutaban comandos del atacante mediante las funciones PHP shell_exec() o eval().

Algunas de las web shells devolvían respuestas HTTP 404 falsas al ejecutar comandos, camuflando aún más la actividad maliciosa.

Mandiant dice que los actores de amenazas desplegaron dos familias de malware previamente no documentadas, rastreadas como WHIPSHOT y SLAPSHOT.

WHIPSHOT es una web shell PHP disfrazada de paquete Debian y almacenada en el directorio de scripts VPN de NetScaler.

El malware actúa como proxy HTTP para SLAPSHOT, extrayendo datos codificados en Base64 de los encabezados de solicitud HTTP y reenviándolos al malware de tunelización que se ejecuta en un dispositivo comprometido.

WHIPSHOT también verifica si SLAPSHOT está en ejecución y puede extraer y lanzar los payloads de Python incrustados en segundo plano.

SLAPSHOT es una herramienta de tunelización TCP basada en Python que conecta el dispositivo NetScaler comprometido con dispositivos internos, permitiendo a los atacantes propagarse más en la red.

El malware acepta comandos de WHIPSHOT y puede abrir conexiones a hosts internos, enviar y recibir datos por esas conexiones y cerrar sesiones al terminar.

Google dice que los atacantes utilizaron el proxy en al menos una intrusión observada para realizar reconocimiento manual y robar credenciales.

Mandiant señala que el malware también puede autoterminarse tras periodos de inactividad, dificultando su detección.

Aunque la explotación inicial otorga privilegios root, los comandos ejecutados por las web shells normalmente se ejecutarían bajo una cuenta con menos privilegios con la que se ejecutan los servidores web de NetScaler.

Para mantener el acceso root, Google dice que los atacantes modificaron los permisos de /bin/sh para que los comandos se ejecutaran con privilegios elevados.

Para establecer ejecución persistente a nivel root para sus web shells, el actor de amenazas aprovechó sus web shells de instalación ligeras para activar el bit setuid (Set User ID) en el ejecutable /bin/sh.

El actor de amenazas también reinició los dispositivos NetScaler o reinició el servidor web para aplicar los cambios de configuración.

Los dispositivos NetScaler ADC y Gateway son objetivos atractivos porque están expuestos a Internet y a menudo se sitúan en el borde de las redes internas, sin contar con el beneficio de software EDR.

Mandiant dice que los defensores deben priorizar la instalación de las últimas actualizaciones de seguridad de Citrix e inspeccionar los dispositivos NetScaler en busca de signos de compromiso.

  • Manejadores o alias PHP no autorizados en httpd.conf
  • Archivos .deb o .sig sospechosos que contengan código PHP
  • Respuestas HTTP 404 inusuales
  • Caídas inesperadas de NSPPE
  • Presencia de archivos /tmp/.uxdport o /tmp/.uxdlock asociados con SLAPSHOT

Las organizaciones también deben verificar si /bin/sh ha sido modificado para ejecutarse con permisos setuid root y buscar procesos Python sospechosos lanzados con nohup o que contengan payloads codificados en Base64.

Aunque Mandiant vincula esta actividad con CVE-2026-88772, Citrix afirma que CVE-2026-88771 también ha sido explotada en ataques.

Para las organizaciones que no pueden parchear de inmediato, Mandiant recomienda deshabilitar DTLS donde sea operativamente factible y bloquear el tráfico entrante UDP/443 en el perímetro cuando DTLS no sea necesario.

Sin embargo, Google advierte que estas mitigaciones solo se aplican a CVE-2026-88772 y no protegen contra la vulnerabilidad CVE-2026-88771, explotada por separado.

Mandiant dice que instalar las últimas actualizaciones de seguridad de NetScaler es la única forma de abordar ambas fallas.

Commands used to deploy a PHP web shell on NetScaler
Commands used to deploy a PHP web shell on NetScaler
article image
article image

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *