Días Cero de Ivanti Connect Secure Combinados para Compromiso no Autenticado
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Un actor de amenaza desconocido identificado como UTA0576 explotó una cadena de vulnerabilidades de día cero en los dispositivos VPN Ivanti Connect Secure para lograr la ejecución de código a nivel de root sin autenticación. El ataque combinó un eludir de autenticación, ejecución remota de código mediante una condición de carrera y escalada de privilegios. El actor se centró principalmente en el robo de credenciales involucrando Active Directory, LAPS y claves de recuperación de BitLocker.
Investigación
Volexity identificó el compromiso a través del monitoreo de seguridad de la red y realizó una investigación forense utilizando imágenes de memoria y disco. Debido a que el atacante dependía de parches en memoria y eliminaba registros, los investigadores usaron la plataforma Volcano para reconstruir la cadena de explotación a partir de volcados de núcleo y memoria del sistema. La investigación también mostró que las solicitudes HTTPS se usaron como un canal de comando en lugar de la infraestructura tradicional de C2.
Mitigación
Las organizaciones deben aplicar de inmediato los parches de Ivanti que abordan el eludir de autenticación y las vulnerabilidades de RCE. Los equipos de seguridad deben monitorear en busca de cabeceras X-DSCGI-PATH y grandes volúmenes de solicitudes a /dana-na/auth/url_default/welcome.cgi. También se recomienda encarecidamente ejecutar el Verificador de Integridad de Ivanti y actualizar los dispositivos afectados a versiones no vulnerables.
Respuesta
Cuando se detecta actividad sospechosa, las organizaciones deben realizar investigaciones forenses de los dispositivos VPN ICS, con especial atención a la evidencia del movimiento lateral. La informática forense de memoria es altamente recomendable porque gran parte de la cadena de explotación opera en memoria y deja artefactos limitados en disco. Revisar el /tmp/ directorio en busca de scripts no autorizados e inspeccionar los registros de auditoría en busca de signos de manipulación.
Flujo de Ataque
Todavía estamos actualizando esta parte.
Detecciones
Intento de Explotación de CVE-2026-104935 (Cadena RCE de Ivanti) (a través del servidor web)
Se creó un archivo oculto en el host Linux (a través de file_event)
IOCs (SourceIP) para detectar: Una serie de eventos no autenticados: Explotación encadenada de días cero de Ivanti Connect Secure
IOCs (DestinationIP) para detectar: Una serie de eventos no autenticados: Explotación encadenada de días cero de Ivanti Connect Secure
Detección de Explotación para Día Cero en Ivanti Connect Secure [Evento de Archivo de Linux]
Ejecución de Simulación
-
Narrativa y Comandos de Ataque: El adversario apunta a explotar la vulnerabilidad de Ivanti Connect Secure simulando el acceso a un endpoint CGI malicioso conocido utilizado en la cadena de explotación. Después de acceder a la ruta
/home/webserver/htdocs/dana/fb/smb/wu.cgi, el atacante intenta instalar un web shell o un kit de herramientas post-explotación escribiendo un archivo en el directorio específico/home/runtime/tmp/. Esto imita la ejecución remota de código no autenticada y la posterior manipulación de archivos observada en la explotación de día cero en el mundo real. -
Script de Prueba de Regresión:
#!/bin/bash # Script de simulación para la Detección de Explotación de Ivanti Connect Secure # 1. Configurar: Crear la estructura de directorios requerida para la simulación echo "[+] Configurando el entorno de simulación..." sudo mkdir -p /home/webserver/htdocs/dana/fb/smb/ sudo mkdir -p /home/runtime/tmp/ # 2. Crear el archivo CGI "malicioso" echo "[+] Creando archivo CGI malicioso..." sudo touch /home/webserver/htdocs/dana/fb/smb/wu.cgi sudo chmod 777 /home/webserver/htdocs/dana/fb/smb/wu.cgi # 3. Simular la explotación: Accediendo al archivo (dispara selection_paths) echo "[+] Simulando acceso a la ruta CGI maliciosa..." cat /home/webserver/htdocs/dana/fb/smb/wu.cgi > /dev/null # 4. Simular el posicionamiento de la carga útil (dispara selection_tmp) echo "[+] Simulando caída de carga útil en /home/runtime/tmp/..." echo "<?php system($_GET['cmd']); ?>" | sudo tee /home/runtime/tmp/shell.php > /dev/null echo "[+] Simulación completa. Verifique las alertas en SIEM." -
Comandos de Limpieza:
#!/bin/bash # Script de limpieza para eliminar artefactos de simulación echo "[+] Limpiando artefactos de simulación..." sudo rm -f /home/webserver/htdocs/dana/fb/smb/wu.cgi sudo rm -f /home/runtime/tmp/shell.php sudo rmdir /home/webserver/htdocs/dana/fb/smb/ 2>/dev/null sudo rmdir /home/webserver/htdocs/dana/fb/ 2>/dev/null sudo rmdir /home/webserver/htdocs/dana/ 2>/dev/null sudo rmdir /home/webserver/htdocs/ 2>/dev/null sudo rmdir /home/webserver/ 2>/dev/null sudo rmdir /home/runtime/tmp/ 2>/dev/null sudo rmdir /home/runtime/ 2>/dev/null echo "[+] Limpieza terminada."