Historias no contadas de Huntress Tactical Response

Los profesionales de seguridad constantemente revisan informes de amenazas, artículos y blogs sobre diversas técnicas defensivas y ofensivas. Estos incluyen descripciones detalladas de intrusiones reales.

Aquí, queremos continuar con esta tendencia, pero con un pequeño giro.

En lugar de presentar una línea de tiempo ordenada de los eventos (aunque también lo haremos), abordaremos este caso particular desde el punto de vista del analista que realizó la investigación.

Cada intrusión es diferente, y también lo son los caminos de investigación que las desentrañan.

¡Acompáñanos mientras recorremos uno de estos caminos!

Todo comienza

Aunque podamos pensar que las intrusiones son lineales, con el ataque avanzando ordenadamente del paso uno al paso dos y así sucesivamente, rara vez es así como la intrusión se revela desde el punto de vista de un analista.

Con frecuencia, un analista recibe una señal o una alerta de una intrusión que ya está en curso.

Por ejemplo, un analista puede recibir una alerta sobre movimiento lateral. En este caso, podemos asumir que también estuvieron presentes algún tipo de acceso inicial y posiblemente técnicas de extracción de credenciales, ya que suelen ser requisitos necesarios para el movimiento lateral.

Esta dinámica se puede ilustrar con la siguiente imagen:

Intrusion timeline, with a defined start and end
Figura 1: Ilustración de la línea de tiempo de una intrusión, con un inicio y un fin definidos, y la detección del analista en el medio.

En este caso particular, el analista recibió varias señales, todas agrupadas en el mismo período. Estas señales contenían evidencia de:

  • La adición de un usuario local al endpoint afectado
  • La incorporación del usuario recién creado a los grupos de administradores locales y de usuarios de escritorio remoto
  • La modificación del registro del endpoint afectado para facilitar un mayor movimiento lateral mediante el protocolo de escritorio remoto (RDP)
  • La modificación del registro del endpoint afectado para omitir el Control de cuentas de usuario (UAC)
Analyst view of initial signals
Figura 2: Vista del analista de las señales iniciales

En este punto, el analista cuenta con algunas piezas clave de información:

  • El actor de amenazas de alguna manera está dentro de la red; aún no se conoce el método de acceso inicial.
  • El actor de amenazas tiene credenciales administrativas en el endpoint afectado, ya que son necesarias para agregar cuentas de usuario y modificar el registro.
  • El actor de amenazas parece querer moverse lateralmente por la red.
  • El actor de amenazas ha establecido un medio de persistencia mediante la cuenta de usuario recién creada.

Durante las investigaciones, se da una dinámica a menudo paradójica.

Más información a veces no genera mayor claridad, sino solo más preguntas.

Podemos saber que el actor de amenazas está dentro de la red, e incluso conocer los métodos de movimiento lateral, pero aún faltan piezas clave de la intrusión.

Para seguir desentrañando este caso, debemos continuar con nuestro proceso de investigación.

Tirando de un hilo

Un hilo del que podemos tirar son las relaciones entre procesos principales y secundarios dentro de la telemetría de procesos disponible para el analista.

Aunque existen muchas formas de crear un usuario en un equipo con Windows y agregar ese usuario a un grupo en particular, si estas acciones las realizara de manera normal un administrador de sistemas, el linaje de procesos se vería algo así:

  • Explorer.exe genera un símbolo del sistema o una ventana de PowerShell
  • El símbolo del sistema o PowerShell genera net.exe o net1.exe
  • net.exe o net1.exe tiene una línea de comandos similar a esta: net localgroup Administrators <user> /add

Además, si un administrador de sistemas estuviera modificando legítimamente las configuraciones de RDP, esperaríamos que estos eventos provinieran de algún tipo de proceso de gestión de sistemas.

Si el administrador de sistemas realizó estas acciones mediante la línea de comandos, esperaríamos ver un linaje de procesos similar al ejemplo de net localgroup que mostramos arriba.

En este caso, un examen de las relaciones entre procesos principales y secundarios arrojó resultados interesantes:

Parent-child relationship indicating lateral movement via WinRM
Figura 3: Ilustración de la relación entre proceso principal y secundario que indica movimiento lateral mediante WinRM

Los comandos de manipulación del registro descritos anteriormente se generaron a partir del proceso wsmprovhost. Esto indica que el actor de amenazas se estaba moviendo lateralmente dentro del entorno usando el protocolo WinRM.

Esta información es interesante por varias razones. Primero, nos da un punto de referencia. Sabemos que este actor de amenazas en particular se mueve lateralmente por la red usando WinRM, entre otros métodos, así que tiene sentido revisar cualquier otro proceso generado a partir de wsmprovhost.exe dentro del entorno.

Segundo, esta información nos indica que el actor de amenazas probablemente se movió lateralmente hacia el endpoint afectado desde algún otro lugar, así que debemos seguir esta pista para encontrar el origen del movimiento lateral.

Por último, esta información nos dice que el actor de amenazas tiene credenciales que le dan acceso a varios equipos de la red.

Esta es una dinámica desafortunada que encontramos con frecuencia. Una vez que un actor de amenazas está dentro de la red, por lo general no hay muchos controles para evitar el movimiento lateral. En la mayoría de los casos, las cuentas administrativas, en particular las cuentas de administrador local, tienen permisos sobre la mayoría —si no todos— los recursos de la red, incluidos recursos sensibles como controladores de dominio, servidores de archivos y servidores de aplicaciones.

Con esta información en mente, seguimos examinando las relaciones entre procesos principales y secundarios. Este examen dio resultados. Mientras seguíamos esta pista de investigación, descubrimos que los procesos principales de toda la actividad de manipulación de usuarios descrita anteriormente se generaron a partir del sospechoso proceso Veeam.Backup.MountService.exe:

Suspicious parent process of Veeam.Backup.MountService.exe
Figura 4: Imagen del proceso principal sospechoso de Veeam.Backup.MountService.exe

¡Muy interesante y, de hecho, algo preocupante! ¿Por qué se generan estos comandos desde el servicio de Veeam Backup? ¿Cómo obtuvo el actor de amenazas acceso a este sistema o aplicación?

Con esta nueva información en mano, se investigó más a fondo el sistema afectado para ver si existía una versión vulnerable de Veeam Backup & Replication. Efectivamente, descubrimos que el servicio instalado estaba desactualizado y le faltaban parches.

El equipo de Huntress ya ha escrito antes en detalle sobre esta vulnerabilidad, y todos sabemos que aplicar parches es difícil, así que no sorprende encontrar software antiguo por ahí.

Tras investigar más a fondo el sistema, se encontró un artefacto de script de PowerShell a través del canal de registro operativo de PowerShell, evento ID 4104:

PowerShell script exploiting CVE-2023-27532
Figura 5: Imagen de un script de PowerShell que explota el CVE-2023-27532

Este script se usó para extraer credenciales del servicio vulnerable de Veeam, y al parecer estas credenciales se usaron para lograr ejecución de código a través del servicio vulnerable.

Con este conocimiento en mano, ahora tenemos una comprensión más profunda de la intrusión, pero todavía no sabemos cómo el actor de amenazas:

  • Obtuvo un punto de apoyo persistente en el entorno en primer lugar (acceso inicial) 
  • ¿Cómo se localizó la instancia vulnerable de Veeam? (Descubrimiento) 

Para responder estas preguntas, debemos cambiar un poco el enfoque: de observar la telemetría de procesos a observar los registros de eventos de Windows.

Vamos a los registros de eventos

Debido a la cantidad de actividad maliciosa que Huntress observa, tenemos un punto de vista único y podemos extrapolar indicadores de compromiso a partir de las diversas intrusiones que encontramos.

Uno de esos indicadores son los nombres de estaciones de trabajo. Ciertos nombres de estaciones de trabajo se observan en varias intrusiones, y en este caso en particular, uno de esos nombres maliciosos conocidos apareció en nuestro radar.

Esta estación de trabajo maliciosa atacó a un puñado de cuentas de usuario con un ataque de fuerza bruta que duró alrededor de dos minutos antes de, lamentablemente, lograr acceso a una de las cuentas en la red. Esta actividad ocurrió desde una dirección IP interna, lo que sugiere que estuvo casi adyacente al vector de acceso inicial, pero no fue el vector de acceso inicial en sí.

Event logs illustrating a successful brute force
Figura 6: Imagen de los registros de eventos que muestran un ataque de fuerza bruta exitoso

La intrusión ahora se ve con un poco más de claridad.

Ahora sabemos que:

  • Un actor de amenazas entró en el entorno y realizó un ataque de fuerza bruta.
  • Este ataque de fuerza bruta tuvo éxito y provocó el compromiso de credenciales. 
  • Estas credenciales se usaron para obtener acceso a un sistema en el entorno. 
  • En este sistema, se explotó un servicio de Veeam para robar más credenciales.
  • La actividad posterior en este sistema incluyó la creación de una cuenta de usuario además de la modificación del registro para facilitar más movimiento lateral.

Sin embargo, quedan algunas preguntas. Todavía no sabemos cómo el actor de amenazas entró al entorno en primer lugar, y tampoco sabemos cómo se descubrió el servicio de Veeam. ¿Este servicio fue atacado específicamente o se detectó de manera oportunista?

Al investigar a partir del nombre de la estación de trabajo maliciosa, encontramos algunos eventos de autenticación interesantes que contienen un usuario objetivo de “ANONYMOUS LOGON”; la brillante investigadora de seguridad Lina Lau tiene un blog fantástico sobre lo que significan estos eventos de autenticación. Aunque se registran como una autenticación exitosa, eso no siempre es necesariamente el caso.

Una mejor forma de pensar en estos eventos es más en línea con un intento de autenticación exitosa. Sin embargo, el hecho de que la autenticación falle no significa que no arroje información investigativa interesante.

Cuando examinamos los eventos de autenticación que contenían este tipo de eventos “ANONYMOUS LOGON”, descubrimos otro nombre de máquina interesante que contenía el nombre de la popular herramienta de escaneo nmap.

Intentos de autenticación con un nombre de máquina de nmap
Figura 7: Imagen que ilustra los intentos de autenticación con un nombre de máquina de nmap

Ahora tenemos otra pieza del rompecabezas, y algunas respuestas potenciales sobre cómo se descubrió el servicio de Veeam en primer lugar. La palabra “potencial” aquí es sumamente importante, ya que a menudo los datos disponibles están incompletos, fragmentados o simplemente faltan.

En este caso, la evidencia es, en el mejor de los casos, circunstancial, ya que lo único que tenemos es el nombre de la máquina, el cual puede cambiarse fácilmente. Además, incluso si estos eventos sí ocurrieron a partir de una ejecución de nmap, no sabemos si el escaneo en sí apuntó específicamente a Veeam.

Sentirse cómodo con los vacíos y las incógnitas es una parte fundamental de lidiar con este tipo de intrusiones. Aunque todos desearíamos que cada sistema estuviera equipado con todas las herramientas relacionadas con telemetría, como Sysmon y captura de paquetes completa, lamentablemente este no es el caso en el mundo real.

En este punto, solo queda una pieza del rompecabezas: el vector de acceso inicial.

Descubriendo el acceso inicial

En nuestro blog anterior sobre acceso inicial, destacamos un dispositivo VPN de cara externa como un vector de acceso inicial extremadamente popular. Este caso no es diferente, y se sospecha fuertemente que el compromiso de la VPN fue el vector de acceso inicial.

A partir de la dirección IP asociada con la actividad de movimiento lateral, el equipo de Respuesta Táctica de Huntress revisó la telemetría de VPN proporcionada y encontró un evento de autenticación sospechoso. Sin embargo, como el dispositivo VPN no retiene mucha telemetría, solo pudimos identificar un evento de cierre de sesión y no uno de inicio de sesión:

Análisis de telemetría de VPN
Figura 8: Imagen que ilustra el análisis de telemetría de VPN

Al igual que con la ejecución de nmap mencionada anteriormente, la evidencia de esto también es circunstancial e incompleta. Esta dinámica ilustra un elemento muy común, aunque poco mencionado, del análisis de intrusiones y la respuesta a incidentes: lidiar con telemetría poco clara o faltante. En este caso, podemos suponer que el dispositivo VPN fue el vector de acceso inicial, pero lamentablemente carecemos de evidencia definitiva de esto.

Ahora que el panorama completo de la intrusión es mucho más claro, mapeado con el marco de MITRE ATT&CK y presentado en orden operativo, nuestra intrusión se verá más o menos como se muestra a continuación:

 Línea de tiempo de eventos dentro de la intrusión
Figura 9: Línea de tiempo de eventos dentro de la intrusión

Para cerrar

Esperamos que hayas disfrutado este análisis de una de las investigaciones que manejó el Centro de Operaciones de Seguridad de Huntress (SOC) y el equipo de Respuesta Táctica.

En cuanto a la investigación, buscamos resaltar la metodología siempre que fue posible. Una cosa es decir de forma genérica "monitorea los intentos de fuerza bruta" o "está atento a relaciones anómalas entre procesos padre e hijo", y otra muy distinta es poner en práctica e implementar dichas técnicas de investigación. Esperamos que esta mirada interna a nuestro enfoque haya ayudado a afianzar y aclarar estos conceptos.

Mapeo de MITRE ATT&CK

TácticaID de técnicaNombre de técnicaDescripción
Acceso inicialT1133Compromiso de VPNCompromiso del dispositivo VPN
ReconocimientoT1595Escaneo activoUso de nmap
Acceso a credencialesT1110Fuerza brutaAtaque de fuerza bruta contra cuentas existentes
Movimiento lateralT1021.006Servicios remotos: Windows Remote ManagementMovimiento lateral mediante WinRM
EjecuciónT1203Explotación para ejecución en clienteExplotación del servicio Veeam
PersistenciaT1098Manipulación de cuentasAgregar usuario al grupo de usuarios de escritorio remoto
Evasión de defensasT1112Modificar el registroHabilitar más movimiento lateral mediante RDP

Reglas Sigma aplicables

¡Un agradecimiento especial a todos los autores de reglas Sigma y colaboradores de la comunidad!

También te podría interesar