Back to hub

Web/VPN Server Spawning Shell (Fortinet CVE-2025)

Detects web server or VPN processes spawning shells or command interpreters, indicative of active RCE exploitation such as CVE-2025-59718/CVE-2025-59719 on internet-facing Fortinet devices

Vulnerabilityrcefortinetwebshellcve-2025process-spawnT1190T1059.004
FDR Beginnerby CQL Hub 1 min read

Query

#repo="base_sensor" #event_simpleName=ProcessRollup2
| ParentBaseFileName=/(?i)(httpd|nginx|apache2|httpsd|sslvpnd|fortid)/
| FileName=/(?i)(bash|sh|cmd\.exe|powershell\.exe|python[23]?|perl|wget|curl)/
| groupBy([ComputerName, ParentBaseFileName, FileName, CommandLine])
| sort(@timestamp, limit=50)

Explanation

PipeDescripción
#repo="base_sensor" #event_simpleName=ProcessRollup2Filtra eventos de creacion de procesos desde el repositorio FDR (sensor base)
`ParentBaseFileName=/(?i)(httpd\nginx\apache2\httpsd\sslvpnd\fortid)/`Proceso padre debe ser un servidor web o demonio VPN Fortinet — contexto de explotacion web
`FileName=/(?i)(bash\sh\cmd\.exe\powershell\.exe\python[23]?\perl\wget\curl)/`Proceso hijo es un interprete de comandos o herramienta de descarga — siempre anomalo para un servicio web
groupBy([ComputerName, ParentBaseFileName, FileName, CommandLine])Agrupa resultados eliminando duplicados y mostrando combinaciones unicas de proceso padre-hijo
sort(@timestamp, limit=50)Ordena por tiempo mostrando los 50 eventos mas recientes para respuesta rapida

Adjustable Variables

ParentBaseFileName: ampliar con nombres especificos del entorno (ej: tomcat, jboss, wsgi). FileName: agregar interpretes adicionales como ruby, php si procede. Ajustar limit a 200+ para caza historica amplia.