FortiGate como puerta trasera: cuando el firewall guarda las llaves del reino

FortiGate representado como una puerta crítica expuesta dentro de una arquitectura de ciberseguridad
La campaña duró 94 días sin generar un solo alert visible. Cuando Stratos lo detectó, el daño ya tenía fecha de origen: noviembre de 2025.

Entre noviembre de 2025 y febrero de 2026, el equipo de Digital Forensics & Incident Response de SentinelOne respondió a múltiples incidentes con un patrón que se repitió con precisión quirúrgica: los atacantes entraron por el firewall y salieron con las llaves del dominio. No fue un escaneo. No fue un intento. Fue una operación completa, metódica y, en varios casos, completamente invisible durante más de tres meses.

Severidad ZDU: Nivel 4
94 días de foothold silencioso
CVE-2025-59718 · CVE-2025-59719 · CVE-2026-24858
Vertical: Gobierno / MSP
NTDS.dit exfiltrado

Lo que pasó: la campaña que convirtió tu NGFW en un vector de identidad

La campaña explotó tres vulnerabilidades documentadas en dispositivos FortiGate de próxima generación. CVE-2025-59718 y CVE-2025-59719 afectan el mecanismo SSO de FortiOS al fallar en la validación de firmas criptográficas — permiten que un atacante obtenga acceso administrativo sin credenciales legítimas. CVE-2026-24858, parcheada por Fortinet a finales de enero de 2026, permitía iniciar sesión en el dispositivo usando la cuenta FortiCloud del propio atacante cuando FortiCloud SSO estaba habilitado.

En los casos donde no había un exploit disponible, los atacantes simplemente usaron credenciales débiles. El resultado fue el mismo.

Una vez dentro, ejecutaron la misma secuencia documentada en los incidentes analizados:

Diagrama de cadena de ataque: desde explotación de FortiGate hasta exfiltración de NTDS.dit y hive SYSTEM — campaña Q1 2026
Secuencia documentada del ataque: acceso inicial en FortiGate, extracción de configuración, descifrado LDAP, autenticación en Active Directory y exfiltración de NTDS.dit.
Cinco fases. La primera fue silenciosa. La quinta, irreversible.

Acceso al appliance

Explotación de CVEs o credenciales débiles. Creación de cuenta administrador local “support” con acceso irrestricto entre todas las zonas.

Extracción de configuración

Comando show full-configuration. FortiOS usa encriptación reversible — las credenciales de servicio son recuperables por el atacante.

Descifrado LDAP / AD

La cuenta fortidcagent contiene credenciales del servicio LDAP. El atacante las descifra y autentica al dominio en texto claro.

Enrolamiento rogue

Via mS-DS-MachineAccountQuota (valor por defecto: 10), une workstations no autorizadas al AD con privilegios de cuenta estándar.

Persistencia y exfiltración

Deploy de Pulseway y MeshAgent para control remoto. Malware Java vía DLL side-loading. NTDS.dit y hive SYSTEM exfiltrados vía puerto 443.

Por qué esto es diferente a un breach de firewall convencional

Un FortiGate no es solo un dispositivo de inspección de paquetes. En la mayoría de los entornos empresariales, el appliance está integrado con Active Directory y LDAP para mapear roles de usuario, autenticar políticas de acceso y acelerar la correlación de alertas. Esa integración requiere que el dispositivo almacene credenciales de cuentas de servicio con acceso directo al núcleo de identidad del entorno.

El problema no es solo la vulnerabilidad del dispositivo: es la posición que ese dispositivo ocupa en la arquitectura. Comprometer el firewall que protege la red y que a la vez tiene acceso privilegiado al directorio que gobierna esa red colapsa la separación entre perímetro e identidad en un solo punto de falla.

Sectores más afectados

Salud, gobierno y proveedores de servicios administrados (MSP) — precisamente aquellos donde la integración AD/LDAP es más profunda y donde el impacto de un compromiso total del dominio es más severo.

El modelo IAB cambia la ecuación

El comportamiento documentado es consistente con un Initial Access Broker: establece el acceso, lo mantiene activo y lo vende a terceros. El IAB no despliega ransomware — abre la puerta y el comprador llega después. La ventana real de acción es más corta de lo que sugiere el primer alert.

Qué deberías hacer ahora

1. Actualiza de inmediato todos los productos FortiOS

FortiOS, FortiManager, FortiAnalyzer, FortiProxy y FortiWeb deben estar en las versiones que parchean CVE-2025-59718, CVE-2025-59719 y CVE-2026-24858. Los exploits son públicos y la explotación está confirmada en múltiples incidentes reales.

2. Rota las credenciales AD/LDAP almacenadas en configuraciones FortiGate

Independientemente del estado del parche. Si el dispositivo estuvo expuesto en algún momento — y si tienes FortiCloud SSO habilitado, probablemente lo estuvo — trata esas credenciales como comprometidas. La rotación es obligatoria, no reactiva.

3. Audita las configuraciones del dispositivo contra tu baseline

Busca cuentas administrador no autorizadas (especialmente support), políticas de traversal irrestricto entre zonas, y configuraciones VPN no reconocidas. Compara contra tu baseline más reciente y documenta las desviaciones.

4. Revisa los registros de FortiCloud

CVE-2026-24858 permitió que atacantes enrolaran su propio dispositivo como administrador de tu appliance usando su cuenta FortiCloud. Los registros de dispositivos en tu consola deben reflejar solo equipos autorizados por tu equipo.

5. Reduce mS-DS-MachineAccountQuota a 0 en producción

El valor por defecto (10) fue el vector que permitió unir workstations rogue al dominio con credenciales de servicio estándar. Reducirlo elimina este vector. Mantén excepciones controladas solo para flujos de enrolamiento legítimos.

6. Habilita MFA y restringe el plano de gestión

MFA en todas las interfaces administrativas de Fortinet. El plano de gestión del NGFW no debe estar expuesto a Internet — restringe el acceso a redes confiables vía ACLs o gestión fuera de banda.

Marco regulatorio expuesto

Cumplimiento Normativo — Regulator + Veritas

La exfiltración del NTDS.dit activa obligaciones regulatorias en múltiples marcos aplicables en México

LFPDPPP — Arts. 20 y 36: Si el directorio comprometido contiene datos personales de empleados, clientes o usuarios — lo que ocurre en prácticamente cualquier AD de producción — la organización está obligada a notificar a los titulares y al INAI en los plazos establecidos.
ISO 27001 — Anexo A.9.2.3 y A.12.4: El almacenamiento de credenciales de servicio con privilegios de AD en dispositivos de red sin controles compensatorios representa una desviación de los controles de gestión de acceso privilegiado y de registro y monitoreo.
CNBV (instituciones financieras reguladas): Las disposiciones aplicables a instituciones de crédito y casas de bolsa exigen notificación ante incidentes que comprometan la confidencialidad o integridad de sistemas de información críticos, si aplica a tu industria.

Impacto reputacional: lo que no aparece en los logs

Los incidentes documentados por SentinelOne fueron detectados y contenidos durante la fase de movimiento lateral. Esa es la buena noticia. La mala: en entornos donde el acceso fue adquirido por un comprador que sí desplegó una segunda etapa, el daño reputacional llega semanas o meses después de la intrusión original.

El modelo IAB desconecta la causa del efecto. Las organizaciones frecuentemente no pueden explicar con certeza el vector de entrada porque los logs del appliance FortiGate no existían o no eran suficientes. Esa opacidad, por sí sola, genera desconfianza en clientes, socios y reguladores.

MSPs y proveedores

Un compromiso de estas características puede deteriorar contratos de servicio, desencadenar auditorías en cascada e impactar la renovación de cuentas estratégicas.

Sector gobierno

Los datos comprometidos pertenecen a usuarios de servicios públicos. La cobertura mediática puede ser sostenida y el impacto político supera al técnico.

Organizaciones de salud

Los atributos de directorio pueden incluir datos de personal clínico con acceso a expedientes. El impacto regulatorio y reputacional es compuesto.

La confianza implícita no es una postura de seguridad

El error que permite esta categoría de ataque no es técnico — es conceptual. Es asumir que los dispositivos que protegen el perímetro están fuera del alcance del atacante. Es olvidar que la llave maestra guardada en la caja fuerte solo funciona como protección si nadie tiene acceso a la caja fuerte.

Fuente técnica primaria: SentinelOne DFIR — FortiGate Edge Intrusions | The Hacker News, marzo 2026. Cobertura adicional: SecurityAffairs, Léargas Security, TechNadu.

 


Capítulo Narrativo — Zero Day Universe

 

ZDU-003 · Zero Day Universe · Vertical: Gobierno / MSP
El Corredor de Accesos

Una operación de 94 días. Un firewall convertido en puerta trasera. Un mercado donde el acceso a tu red tiene precio — y el vendedor nunca conoce al comprador.

Severidad Nivel 4
Fast Response Protocol
CVE-2025-59718 · CVE-2025-59719 · CVE-2026-24858
Cuartel General ZDU

El primer error que cometió alguien esa noche no fue técnico.
Fue de confianza.

Stratos — el Arquitecto de la Estratosfera — detecta un nodo FortiGate con actividad anómala en el ciberespacio ZDU. Universo Zero Day Unit, QMA México
Stratos sobre la red. A las 03:17, un nodo que debería hablar guardaba silencio.

Cuartel General ZDU · 03:17

03:17 — Cuartel General ZDU · Nivel de alerta: Nominal

Stratos lo sintió antes de verlo.

No era una alarma. No era un spike en el tablero de telemetría. Era algo más sutil y más antiguo — la diferencia entre el silencio de una habitación vacía y el silencio de una habitación donde alguien contiene la respiración.

El nodo FortiGate del cliente en el sector gobierno llevaba cuatro horas sin generar un solo evento de seguridad. Cero traversal alerts. Cero denegaciones de política. Cero logs de autenticación fallida.

Stratos era el Arquitecto de la Estratosfera. Construía perímetros en la nube como otros construyen murallas en piedra — capas sobre capas, cada una diseñada para hacer imposible el siguiente paso. Sabía exactamente cómo se ve un firewall sano a las tres de la mañana: ruidoso, constante, predecible como un corazón en reposo.

Este firewall estaba demasiado quieto.

StratosGennie. Dame el historial de configuración del nodo FG-GOB-447 de las últimas seis horas.

La respuesta de Gennie llegó como cascada de datos holográficos. Stratos los leyó en silencio. Tres minutos después, su expresión había cambiado.

StratosPixelin.

El drone respondió antes de ser invocado por segunda vez — ya estaba sobre el nodo, sus sensores omnidireccionales escaneando cada capa del stack. Proyectó su alerta en el aire: una secuencia de timestamps, una cuenta de administrador que no debería existir, y el nombre de una política de firewall que le daba al propietario de esa cuenta acceso irrestricto entre todas las zonas de la red.

La cuenta se llamaba support.


03:22 — Fast Response Protocol: ACTIVADO

NeonMind entró al Command Center en once segundos desde la alerta de Stratos. No corrió — nunca corría — pero su presencia cambió la temperatura del espacio. El aura azul alrededor de sus sienes pulsaba en frecuencias cortas. Modo COMOPS.

NeonMind¿Cuánto tiempo lleva la cuenta activa?
StratosNoventa y cuatro días.

Stratos proyectó la línea de tiempo en el tablero central. El primer registro de la cuenta databa de noviembre. Cuatro días después de la última actualización de FortiOS en ese dispositivo.

NeonMind procesó el número en silencio. Noventa y cuatro días. Tres meses de acceso silencioso. Tres meses de alguien que conocía las habitaciones de tu casa mejor que tú.

NeonMindEris. Necesito rastreo completo de TTPs. Todo lo que esa cuenta tocó.


03:31 — Sector de Análisis Táctico


Eris Sentinel analiza la cadena de ataque MITRE ATT&CK del corredor de accesos FortiGate — ZDU-003 El Corredor de Accesos, Zero Day Unit QMA
Eris en el timeline. Cada color representa una técnica. El mapa no mentía.

Eris Sentinel no necesitaba que le dijeran dónde mirar. Ya estaba en las sombras del timeline, leyendo los patrones como solo ella sabía hacerlo — no buscando lo que los logs decían, sino lo que callaban. Los silencios entre eventos eran más elocuentes que los eventos mismos.

Proyectó la secuencia en el aire frente a NeonMind con la economía de gestos de quien ha hecho esto mil veces. Cada línea tenía un color. Los colores formaban un mapa. El mapa era una historia.

Eris SentinelT1078. Cuentas válidas. La cuenta se autenticó al Active Directory usando credenciales en texto claro. Credenciales que salieron del archivo de configuración del dispositivo FortiGate. Credenciales de la cuenta fortidcagent. La cuenta de servicio LDAP.

Pixelin proyectó el siguiente dato antes de que Eris terminara: el timestamp exacto en que el atacante ejecutó show full-configuration en el dispositivo. El momento en que el firewall le entregó sus propios secretos.

Eris SentinelT1003.003. Credenciales del dominio. — T1136. Dos workstations no autorizadas unidas al AD usando el atributo mS-DS-MachineAccountQuota. — T1560. El NTDS.dit salió hace cuarenta y ocho horas. Puerto 443. Cloudflare como proxy.

El Command Center quedó en silencio.

El NTDS.dit era la base de datos que contenía los hashes de contraseña de cada cuenta del dominio. Cada administrador. Cada usuario. Cada servicio. Si alguien tenía ese archivo y el hive SYSTEM, tenía las llaves de todo.

NeonMind¿Quién lo tiene?

Eris volvió al timeline. Siguió el rastro hasta donde podía seguirlo. IP de salida: 193.24.211.61. Puerto RDP siempre abierto. Sistema Windows. Workstation ID registrada en múltiples campañas anteriores como punto de tránsito.

Eris SentinelNo es el usuario final. Es un corredor.


Representación abstracta del Initial Access Broker: una dirección IP suspendida en el vacío digital, sin rostro ni identidad — ZDU-003 El Corredor de Accesos, QMA
El corredor no tiene rostro. Solo tiene una dirección IP y una transacción pendiente de cobro.

Memoria del sistema

Flashback — Dieciocho meses antes · Centro de datos en la nube · 14:33La nube que Stratos construyó para proteger la infraestructura de un cliente de servicios financieros fue el vector por el que entraron.

No fue una vulnerabilidad de día cero. Fue una integración SSO que Stratos mismo había aprobado — rápida, eficiente, elegante. El cliente necesitaba que los usuarios se autenticaran desde cualquier dispositivo corporativo. La solución fue un conector de FortiCloud SSO. Stratos validó la arquitectura. Firmó el diseño.

Seis semanas después, alguien que no era empleado del cliente usó su propia cuenta FortiCloud para iniciar sesión como administrador del dispositivo de la víctima. El conector que Stratos aprobó no validaba que la cuenta del administrador perteneciera al tenant correcto.

Stratos lo contuvo. Stratos lo resolvió. Nadie fuera del equipo supo los detalles.

Pero desde ese día, cada vez que alguien le presenta una integración SSO de terceros para aprobación, Stratos lee el documento de diseño dos veces. Luego lo lee una tercera.

Porque la elegancia en arquitectura de seguridad es una trampa cuando comparte techo con la confianza implícita.

Stratos no dijo nada cuando la secuencia del FortiCloud SSO apareció en el análisis de Eris. Solo cerró los ojos durante un segundo. Luego los abrió, y volvió al trabajo.

StratosCVE-2026-24858. El atacante usó su propia cuenta FortiCloud para registrarse como administrador del dispositivo del cliente. Desde ahí ejecutó show full-configuration. Desde ahí extrajo las credenciales.
NeonMindParcheada en enero.
StratosEl dispositivo no estaba actualizado.

NeonMind asintió una vez.

NeonMindPixelin. Escáner de exposición en todos los nodos FortiGate del portfolio activo. Quiero saber cuántos más están en esa condición. Eris. Necesito el mapa completo de movimiento lateral. Quiero saber qué tocó el comprador — si es que ya llegó.
Eris SentinelSi llegó. No lo sabemos. El IAB vendió el acceso. No tenemos visibilidad de quién lo compró ni cuándo planea usarlo.

La frase suspendida en el aire del Command Center tenía el peso específico de las cosas que no puedes deshacer.

Enforcement normativo

04:19 — Command Center

La puerta del Command Center se abrió con el sonido de quien no pide permiso para entrar.

Regulator llegó con su Compliance Hauler aparcado en el nivel inferior y su ojo analítico turquesa ya procesando el tablero. El marro en su cinturón emitía una luz tenue. Aún no lo había necesitado. Aún.

RegulatorNTDS.dit exfiltrado, dos workstations rogue en el dominio, noventa y cuatro días de foothold sin detección. ¿Cuántas cuentas en ese directorio?
NeonMindCuatro mil doscientas.
RegulatorLFPDPPP. Artículos 20 y 36. Notificación al INAI. ISO 27001, Anexo A.9.2.3 y A.12.4. Desviación documentada. Si el cliente tiene operaciones financieras reguladas, CNBV también entra.

Desde el rincón donde Veritas había estado escuchando en silencio, llegó la respuesta sin que nadie le preguntara:

VeritasYa está el borrador de notificación. Necesito confirmar la naturaleza de los datos de directorio antes de determinar el umbral de afectación bajo LFPDPPP. Regulator tiene razón en el marco. La secuencia de obligaciones importa. Notificamos a reguladores antes de que los medios tengan la historia.

Regulator y Veritas cruzaron una mirada. Era la mirada de dos personas que rara vez están en el mismo cuarto porque rara vez necesitan estarlo — pero cuando están, el sistema funciona.

Contención

05:03 — Operaciones de contención en curso

El NTDS.dit ya no estaba en el servidor. Eso no cambiaba.

Pero en las siguientes cuatro horas, el equipo ejecutó lo que podía ejecutarse: las dos workstations rogue fueron removidas del dominio. La cuenta support fue eliminada. Todas las credenciales de servicio AD/LDAP almacenadas en dispositivos FortiGate del portfolio fueron rotadas. mS-DS-MachineAccountQuota fue reducido a cero. MFA habilitado en todas las interfaces administrativas.

Pixelin terminó su escaneo del portfolio completo a las 05:47. Tres nodos más en condición de riesgo. Ninguno con exfiltración confirmada. Todos actualizados antes del amanecer.


NeonMind y Eris Sentinel ante el tablero del ZDU al amanecer, tras contener el ataque del corredor de accesos — ZDU-003 El Corredor de Accesos, Zero Day Unit QMA México
Las 06:12. La misión cerrada. El corredor, en algún lugar, todavía existe.

NeonMind cerró el tablero de la misión a las 06:12. Escribió el resumen de contención. No puso firma al pie — los documentos del ZDU no tienen firmas individuales. Tienen un equipo.

Afuera, el sol empezaba a entrar por las ventanas del cuartel. Adentro, Stratos seguía mirando el nodo FG-GOB-447. Ya no existía como punto de riesgo. Pero existía como dato. Como prueba de algo que sabía desde hacía dieciocho meses y que esta noche le había demostrado de nuevo.

Eris se acercó. No dijo nada. Se quedó de pie a su lado, mirando la misma pantalla.

StratosEl corredor ya vendió el acceso. No sabemos al comprador. No sabemos qué planea hacer con las llaves.
Eris SentinelNo.
Stratos¿Lo encuentras?

Eris consideró la pregunta durante un momento que duró más de lo que parecía.

Eris SentinelEncuentro patrones. El corredor vuelve. Siempre vuelven a verificar que la puerta siga abierta. Cuando vuelva a este cliente, ya no habrá puerta que verificar.
StratosY cuando vuelva a otro cliente.
Eris SentinelCuando vuelva a otro cliente — ya estaré esperándolo.

Moraleja — ZDU-003Hay una categoría de peligro para la que los sistemas de alerta no fueron diseñados: el peligro que no tiene prisa.

El corredor de accesos no roba tu información. No destruye tus sistemas. No deja ningún rastro que un dashboard pueda marcar como anomalía. Simplemente abre una puerta que ya existía, se asegura de que siga abierta, y se va. Lo que viene después no depende de él.

El error que permite esta categoría de ataque no es técnico — es conceptual. Es asumir que los dispositivos que protegen el perímetro están fuera del alcance del atacante y por lo tanto no necesitan ser protegidos a su vez. Es olvidar que la llave maestra guardada en la caja fuerte solo funciona como protección si nadie tiene acceso a la caja fuerte.

En ciberseguridad, la confianza implícita no es una postura. Es una vulnerabilidad con fecha de explotación pendiente.

El peligro no siempre llega ruidoso. A veces compra el silencio.

Inteligencia del caso

Gennie — Centro de Inteligencia Simbiótica

Amenaza procesada: campaña de Initial Access Brokers sobre FortiGate NGFW con exfiltración de NTDS.dit. Clasificación: Nivel 4 — Compromiso de identidad corporativa con foothold extendido de 94 días. Vertical: Gobierno / MSP. TTPs: T1078 · T1003.003 · T1136 · T1021 · T1560.

Conoce a Gennie →

Inteligencia editorial

Luna Varela de la Vega

ZDU-INTEL-VARELA

Enlace de Inteligencia Estratégica, Zero Day Unit. Luna traduce las alertas del SOC en narrativas que los tomadores de decisión no pueden ignorar — y en acciones que las organizaciones no pueden posponer.