Ir al contenido principal
Blog de Tanium

¿Se ha dado a conocer esta noche en Twitter otro método de persistencia? Cómo puede ayudarle Tanium

¿Se ha dado a conocer esta noche en Twitter otro método de persistencia? Cómo puede ayudarle Tanium

Las configuraciones del Registro diseñadas para su uso en la resolución de problemas y el desarrollo se han convertido ahora en un medio de persistencia encubierta, debido a la falta de visibilidad por parte de herramientas de seguridad como Autoruns. A continuación, destacamos tres formas clave en las que los módulos de Tanium, incluidos «Trace» y «Detect», pueden utilizarse para determinar rápidamente la existencia de este mecanismo de persistencia relativamente desconocido.

Ilustración en azul de las operaciones informáticas a nivel mundial con un globo terráqueo y un teclado

(Imagen: Bruno Glätsch / Pixabay)

¿Qué hace usted cuando ve que, de la noche a la mañana, se ha publicado en Twitter un nuevo método de persistencia? Una idea: utilice Tanium para revisar rápidamente cualquier actividad en curso y configurar alertas inmediatas cuando se produzca. Todo ello antes del desayuno.

El April 10, Oddvar Moe (@oddvarmoe) publicó en Twitter un enlace a su entrada de blog, « » () y «Persistence Using Globalflags in Image File Execution Options – Hidden from autoruns.exe» (), en la que se analiza un mecanismo de persistencia mediante la configuración del Registro que ejecuta de forma silenciosa un proceso tras la finalización de otro proceso «vigilado». Actualmente, este método no figura entre las ubicaciones de persistencia enumeradas por la herramienta «Autoruns» de Sysinternals, de Microsoft.

El uso de los indicadores globales ofrece a los desarrolladores una forma de iniciar un proceso una vez que otro proceso haya finalizado. Esto supone actualmente un punto ciego, debido a que Autoruns no enumera estas configuraciones. Se configuran mediante el programa gflag.exe, una utilidad incluida en las herramientas para desarrolladores de Microsoft, o bien pueden modificarse en el Registro mediante una cuenta de administrador.

A menos que un equipo se esté utilizando para la resolución de problemas o para tareas de desarrollo, la existencia de estas configuraciones del Registro resulta muy sospechosa y debe investigarse. Esto se explicará a continuación y sirve como ejemplo práctico para demostrar la rapidez con la que puede aprovechar los detalles recién revelados y evaluar su propio entorno.

A continuación, destacamos cómo los módulos de Tanium, entre ellos Trace y Signals, pueden utilizarse para determinar rápidamente la existencia de este mecanismo de persistencia relativamente desconocido de tres formas fundamentales:

  • Al examinar el estado actual de la configuración del Registro;
  • Mediante el análisis del historial de modificaciones del registro con Trace; y
  • Estableciendo un sistema de alertas en tiempo real para los cambios que se produzcan en el futuro en estos parámetros del Registro.

Acerca de este tema

En su entrada de blog, Moe señala tres modificaciones del Registro que establecen un desencadenador de ejecución que inicia un proceso cada vez que finaliza un proceso supervisado. Es más, cuando el proceso supervisado finaliza, el segundo proceso se inicia de forma silenciosa. Es decir, si hay una interfaz gráfica, se ejecuta en segundo plano. Los atacantes pueden utilizar esta función como medio para mantener la persistencia; de este modo, su código se ejecuta tras la finalización de un proceso de su elección hasta que se eliminen las claves del Registro.

Microsoft ofrece información detallada sobre esta función de Windows en , y aquí:.

A efectos de prueba, el script que figura a continuación realiza las modificaciones en el Registro que hacen que el archivo «evil.exe» se ejecute cada vez que se cierre «notepad.exe».

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe” /v GlobalFlag /t REG_DWORD /d 512 reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe” /v ReportingMode /t REG_DWORD /d 1 reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe” /v MonitorProcess /d "C:\temp\evil.exe"

Actividad actual

A través de Tanium es posible detectar indicios de que esta técnica ya se está utilizando en toda la empresa.

Es posible que existan usos legítimos de esta técnica en determinados entornos, por lo que conviene realizar un análisis minucioso para determinar si las configuraciones existentes son maliciosas o inofensivas. Un punto de partida es buscar el subárbol del Registro denominado «SilentProcessExit». En la mayoría de los entornos, esta clave debería estar vacía o no existir. Para este estudio se utilizarán tres sensores:

  1. Subclaves del Registro: aquí se muestran los procesos que activan una ejecución al finalizar su ejecución. En la figura 1, que figura a continuación, se muestra «notepad.exe» como la única subclave bajo «SilentProcessExit».
  2. Nombres de los valores de las claves del Registro: aquí se muestran las subclaves existentes. La figura 1 muestra «MonitorProcess» y «ReportingMode» como las dos entradas de nombre de valor del Registro.
  3. Datos del valor del Registro: estos datos indican el proceso configurado para iniciarse cuando finaliza el proceso supervisado. La figura 1 muestra los datos correspondientes a las dos entradas.
Captura de pantalla del Editor del Registro de Windows en la que se muestran las entradas del Registro de Notepad++

Figura 1: Ejemplo de entrada utilizada para las pruebas en este artículo.

En la figura 2, que figura a continuación, el sensor «Subclaves del Registro de Tanium» muestra la entrada de la subclave «notepad.exe» bajo la clave «SilentProcessExit».

Captura de pantalla de los valores de las claves del Registro en la que se muestra la información sobre la ruta de Notepad++ en el Registro

Figura 2: Búsqueda de «SilentProcessExit» mediante el sensor «Subclaves del Registro».

Sensor: Subclaves de la clave de registro Subclaves de la clave de registro [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit] de todos los equipos

En el caso de cualquier subclave devuelta por el sensor «Subclaves de clave del Registro», los investigadores deben copiar el valor de KeyPath y utilizarlo como parámetro del sensor «Nombres de valores de clave del Registro» para verificar que existe una entrada «MonitorProcess» (véase la figura 3). Si existe una entrada «MonitorProcess», también debería existir la entrada «ReportingMode».

Captura de pantalla de las subclaves del registro en la que se muestra la ruta del archivo de Notepad++

Figura 3: Nombre del valor de la clave del Registro «sensor», que se utiliza para detectar subclaves.

Sensor: Nombres de los valores de las claves de registro Nombres de los valores de las claves de registro [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe] de todos los equipos

Para determinar qué proceso se ejecutará para una entrada concreta de «MonitorProcess», deben proporcionarse como parámetros del sensor «Datos de valor del Registro» tanto el valor «KeyPath» de la salida «Subclaves de clave del Registro» como el «Nombre del valor» de la salida del sensor «Nombres de valores de clave del Registro» (véase la figura 4).

Captura de pantalla de los datos de los valores del Registro en la que se muestran los valores de Notepad++

Figura 4: Salida del sensor de datos de valores del Registro.

Sensor: Datos de los valores del Registro Datos de los valores del Registro [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe,MonitorProcess] de todos los equipos

Al utilizar la ruta clave (KeyPath) y el nombre del valor (Value Name) de la salida del sensor como parámetros del sensor «Datos del valor del Registro», podemos ver, en la figura 4, la entrada de datos correspondiente a este «MonitorProcess», incluida la ruta de acceso a la ubicación en el disco donde se almacena el proceso.

En la figura 4 también se muestra un ejemplo de cómo ocultar el archivo binario de un proceso dentro de una secuencia de datos alternativa (ADS). ADS es una característica del sistema de archivos NTFS que los atacantes pueden utilizar para ocultar archivos binarios, de modo que no sean visibles en el Explorador de Windows ni en los listados normales de directorios a través de cmd.exe y PowerShell.exe. Fíjese en el símbolo «:» que aparece en el nombre del archivo binario del proceso.

Nuestro ejecutable oculto está incrustado en la carpeta o en la entrada de directorio NTFS C:\Windows y se ha denominado «cmd.exe».

Actividades anteriores

Gracias a los sensores de Tanium, es posible realizar búsquedas en estas ubicaciones específicas del Registro en cientos de miles de terminales en cuestión de segundos.

Pero, ¿y si las entradas del registro se hubieran eliminado tras la actividad inicial? No aparecerán con los sensores de «estado actual» que se muestran arriba. Para buscar datos históricos en toda la empresa, analizaremos el registro utilizando los datos de Tanium Trace.

Comenzamos por examinar la clave de Registro «SilentProcessExit» para comprobar si se ha registrado algún evento «SetRegistryKey» (véase la figura 5).

Clave de registro de Tanium Trace que indica la detección de una vulneración en la cadena de suministro de Notepad++

Figura 5: Claves del Registro de «Trace» correspondientes a los valores de salida del sensor.

Sensor: Rastrear claves o valores del Registro Obtener claves o valores del Registro [ilimitado, 1523639748493|1523643347493, 0, 0, 10, 0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit, , SetValueKey, , , ] de todos los equipos

La columna «clave» contiene una entrada correspondiente al ejecutable que, al finalizar su ejecución, provocará que se inicie el ejecutable MonitorProcess. Los datos de las claves ampliadas son los siguientes: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe

Dado que Trace no registra los datos de valor, sabemos en este momento que se ha configurado un proceso para activar otro proceso, pero no sabemos dónde se encuentra dicho proceso. No obstante, podemos establecer una conexión en tiempo real a través de Trace y echar un vistazo.

Avisos

Además de analizar el estado actual y los datos históricos de la empresa, una señal de Tanium Detect puede proporcionar alertas en tiempo real cuando estas claves del Registro se configuren tal y como se ha descrito anteriormente.

grupo(Registry.key_path contiene «\\SilentProcessExit\\» Y Registry.value_name contiene «MonitorProcess»)

Una vez implementada esta señal, cada vez que un proceso establezca persistencia en la clave «SilentProcessExit» mediante la creación de una entrada «MonitorProcess», se activará una alerta en tiempo real en la interfaz de Tanium Detect, y dichas alertas podrán reenviarse a sistemas SIEM o de notificación.

Al igual que con cualquier alerta de Tanium Detect, puede seleccionar la alerta y acceder a una conexión «Trace Live» para investigar la actividad con mayor detalle (véase la figura 6). Aquí podemos ver el proceso en detalle. En este caso, nuestro proceso malicioso vuelve a estar incrustado como un ADS, pero esta vez en una entrada del directorio C:\System.

Alerta de Tanium Signals que indica la detección de una configuración fantasma del proceso

Figura 6: Alerta de señales y opción para establecer una conexión en tiempo real con Trace.

A continuación, vemos la vista de árbol de procesos en Trace (véase la figura 7). Cabe destacar que el proceso padre del proceso malicioso es WerFault.exe, el servicio de notificación de errores de Windows. Tenga en cuenta, asimismo, que el proceso malicioso se ejecuta en el contexto de la misma cuenta de usuario y no como SYSTEM.

Respuesta de Tanium Ask en la que se muestran los detalles de la ejecución de comandos de Windows

Figura 7: Visualización de procesos en Trace.

El hash del proceso aparece resaltado en rojo, lo que indica que el servicio Tanium Reputation ha clasificado este archivo como malicioso.

Ahora, podemos utilizar el hash y los datos específicos del archivo y pasar a Tanium Protect para bloquear la ejecución futura de este proceso. También podemos limpiar el registro y cerrar cualquier proceso existente mediante las acciones estándar de Tanium.

Ejemplos de señales

A continuación, podemos observar las alertas de Tanium Detect Signal correspondientes a diversas formas de habilitar este mecanismo de persistencia (véanse las figuras 8-13).

Señales de Tanium que indican la detección de un mecanismo de persistencia de PowerShell

Figura 8: Aviso de señal al añadir la entrada «MonitorProcess» mediante un archivo por lotes.

Tanium Trace muestra una técnica de fusión de subárboles del Registro para lograr la persistencia

Figura 9: Aviso de error al añadir la entrada «GlobalFlag» mediante un archivo por lotes.

Alerta de Tanium Signals sobre una configuración fantasma del proceso a través de regedit

Figura 10: Aviso de señal para añadir manualmente la entrada «MonitorProcess» mediante la interfaz gráfica de usuario de Regedit.exe.

Tanium Signals muestra que PowerShell se inicia como administrador desde el Explorador

Figura 11: Aviso de señal al utilizar PowerShell para modificar el Registro.

El Editor del Registro de Windows muestra el proceso de creación de un archivo de fusión del Registro

Figura 12: Archivo del Registro con los cambios de configuración.

Tanium Signals muestra la fusión de archivos del Registro desde el Explorador de Windows

Figura 13: Al fusionar el archivo de registro de la figura 12 se generó esta alerta.

Una observación más. Una alerta del IOC mostrará el ADS en la vista detallada, incluyendo el realce del color mediante el patrón de hash, tal y como se muestra en la figura 14.

Tanium Trace muestra los detalles del proceso cmd.exe y de ProcessHacker

Figura 14: Se ha detectado una coincidencia en el análisis IOC para el archivo binario a partir del hash.

Resumen

El proceso descrito en este artículo muestra cómo Tanium puede determinar rápidamente la existencia de un mecanismo de persistencia relativamente desconocido analizando el estado actual de la configuración del Registro, examinando el historial de cambios en el Registro mediante Trace y, por último, configurando alertas en tiempo real para detectar cambios futuros en dicha configuración. Si desea obtener más información, únase a mí en « » (), en la comunidad de usuarios de Tanium () y en « », y hablemos del tema.

¿Le interesa ver cómo funciona Tanium? Concierte una demostración e individual o participe en nuestro seminario web semanal. Hable con nuestros expertos en Tanium en nuestros próximos eventos « » ().

Acerca del autor: Scott Langendorf es director del equipo de EDR de Tanium. Se incorporó a Tanium en otoño de 2015 , tras haber ocupado el cargo de director sénior en una empresa internacional de ingeniería que había sido objeto de ataques por parte de grupos estatales. Con ocho años de experiencia en ciberseguridad, Scott se incorporó a Tanium para contribuir al desarrollo de productos de seguridad, consciente de la importancia que revisten la visibilidad rápida de los terminales, las alertas y la agilidad de los datos para los equipos de defensa y de detección de amenazas. Asimismo, ha trabajado en la NASA en el sistema de alimentación eléctrica de la Estación Espacial y como responsable de TI en el sector energético, cuando el APT1 acababa de descubrirse.