Ir al contenido principal
Blog de Tanium

¿Otro método de persistencia informado durante la noche en Twitter? Cómo puede ayudar Tanium

¿Otro método de persistencia informado durante la noche en Twitter? Cómo puede ayudar Tanium

Las configuraciones de registro diseñadas para utilizarse para la resolución de problemas y el desarrollo ahora son un medio de persistencia oculta debido a la falta de visibilidad por parte de herramientas de seguridad como Autoruns. Aquí, destacamos tres formas clave en que los módulos de Tanium, incluidos Trace y Detect, se pueden utilizar para determinar rápidamente la existencia de este mecanismo de persistencia relativamente desconocido.

Ilustración azul de las operaciones globales de TI con globo y teclado

(Imagen: Bruno Glätsch/Pixabay)

¿Qué hace cuando ve un nuevo método de persistencia informado de la noche a la mañana en Twitter? Una idea: Utilice Tanium para revisar rápidamente cualquier actividad actual y configurar alertas rápidas cuando suceda. Todo antes del desayuno.

El April 10, Oddvar Moe (@oddvarmoe) se dirigió a Twitter para compartir su publicación en el blog, Persistencia mediante el uso de señales globales en opciones de ejecución de archivos de imagen: ocultas de autoruns.exe, que analiza un mecanismo de persistencia a través de la configuración del registro que ejecuta silenciosamente un proceso después de la finalización de otro proceso “observado”. Este método no está incluido actualmente en las ubicaciones de persistencia enumeradas por Sysinternals Autoruns de Microsoft.

El uso de indicadores globales brinda a los desarrolladores un medio para iniciar un proceso después de que otro proceso haya finalizado. Esto representa un punto ciego actualmente, debido al hecho de que Autoruns no enumera estas configuraciones. Se configuran mediante el uso de gflag.exe, una utilidad que se encuentra en las herramientas de desarrolladores de Microsoft, o se pueden realizar con cambios en el registro mediante una cuenta de administrador.

A menos que se utilice una máquina para la resolución de problemas o para el trabajo de desarrollo, la existencia de estas configuraciones de registro es altamente sospechosa y debe investigarse. Esto se hará a continuación y sirve como un escenario de ejemplo que demuestra con qué rapidez puede tomar detalles recientemente divulgados y evaluar su propio entorno.

Aquí, destacamos cómo los módulos de Tanium, incluidos Trace y Signals, se pueden utilizar para determinar rápidamente la existencia de este mecanismo de persistencia relativamente desconocido de tres maneras clave:

  • Al observar el estado actual de los ajustes del registro;
  • Al examinar el historial de cambios en el registro con Trace; y
  • Al establecer alertas en tiempo real para cambios en estos ajustes del registro en el futuro.

Acerca del problema

La publicación del blog de Moe señala tres modificaciones del registro que establecen un desencadenante de ejecución que inicia un proceso cada vez que finaliza un proceso monitoreado. Además, cuando finaliza el proceso monitoreado, el segundo proceso se lanza en silencio. Esto significa que si hay una interfaz gráfica, se inicia en segundo plano. Los atacantes pueden usar esta función como medio para mantener la persistencia; hacer que su código se ejecute después de la finalización de un proceso de su elección hasta que se eliminen las claves del registro.

 Microsoftaquí documenta los detalles de esta función de Windows.

Para las pruebas, el siguiente script realiza las modificaciones del registro que hacen que evil.exe se ejecute en cualquier momento en que notepad.exe finalice.

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

Actividad actual

La búsqueda de signos de esta técnica que ya se está utilizando en toda la empresa es posible a través de Tanium.

Puede haber usos legítimos de esta técnica en algunos entornos, por lo que se debe realizar una revisión cuidadosa para determinar si las configuraciones existentes son maliciosas o benignas. Un punto de partida es buscar la colmena de registro SilentProcessExit. En la mayoría de los entornos, esta debe ser una clave vacía o inexistente. Se utilizarán tres sensores para esta investigación:

  1. Subclaves clave del registro: Muestra cualquier proceso que active la ejecución tras su finalización. La Figura 1, a continuación, muestra “notepad.exe” como la única subclave en SilentProcessExit.
  2. Nombres de valor de clave de registro: muestra qué subclaves existen. La Figura 1 muestra MonitorProcess y ReportingMode como las dos entradas de Nombre de valor del registro.
  3. Datos de valor del registro: estos datos muestran el proceso configurado para iniciarse cuando finaliza el proceso monitoreado. La Figura 1 muestra los datos para las dos entradas.
Captura de pantalla del editor de registro de Windows que muestra las entradas del registro de Notepad++

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

En la Figura 2, a continuación, el sensor Subclaves clave del registro de Tanium muestra la entrada de subclave notepad.exe bajo la clave SilentProcessExit.

Captura de pantalla de valores clave del registro que muestra información de ruta del registro de Notepad++

Figura 2: Búsqueda de SilentProcessExit usando el sensor de subclaves clave del registro.

Sensor: Subclaves clave de  registroSubclaves clave de registro[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit] de todas las máquinas

Para cualquier subclave devuelta por el sensor Subclaves clave del registro, los investigadores deben copiar el valor KeyPath y usarlo como parámetro para el sensor Nombres de valores clave del registro para verificar que exista una entrada MonitorProcess (consulte la Figura 3). Si existe una entrada MonitorProcess, la entrada ReportingMode también debe estar presente.

Captura de pantalla de subclaves clave del registro que muestra la ruta del archivo Notepad++

Figura 3: Sensor de nombre de valor de clave de registro utilizado para descubrir subclaves.

Sensor: Nombres de valor clave del  registroNombres de valor clave del registro[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe] de todas las máquinas

Para determinar qué proceso se ejecutará para una entrada de MonitorProcess determinada, tanto el valor KeyPath de la salida Subclaves clave del registro como el Nombre del valor de la salida del sensor Nombres de valor clave del registro deben proporcionarse como parámetros para el sensor Datos de valor del registro (consulte la Figura 4).

Captura de pantalla de datos de valor del registro que muestra valores de Bloc de notas++

Figura 4: Salida del sensor de datos de valor del registro.

Sensor: Datos de valor del  registroDatos de valor del registro[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe,MonitorProcess] de todas las máquinas

Usando KeyPath y el Nombre de valor de la salida del sensor como parámetros para el sensor de Datos de valor del registro, vemos la entrada de datos para este Proceso demonitor, incluida la ruta hasta donde el proceso se almacena en el disco en la Figura 4.

También vemos en la Figura 4 un ejemplo de ocultar un binario de proceso dentro de un flujo de datos alternativo (ADS). ADS es una característica del sistema de archivos NTFS, que los atacantes pueden usar para incrustar binarios para que no se vean en Windows Explorer o en listados de directorio normales a través de cmd.exe y PowerShell.exe. Observe el “:” presente en el nombre binario del proceso.

Nuestro ejecutable oculto está integrado dentro de la carpeta o entrada del directorio NTFS, C:\Windows y se ha denominado “cmd.exe”.

Actividades anteriores

Con los sensores Tanium, es posible buscar en estas ubicaciones de registro específicas cientos de miles de puntos finales en cuestión de segundos.

Pero, ¿qué sucedería si las entradas del registro se eliminaran después de 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 la información de Tanium trace.

Comenzamos inspeccionando la clave de Registro SilentProcessExit para ver si se han registrado eventos de SetRegistryKey (consulte la Figura 5).

Clave de registro de Tanium trace que muestra Notepad++ detecciones de compromiso de cadena de suministro

Figura 5: Registro de rastreo de la salida del sensor Claves de valores.

Sensor: Claves o valores del registro  de rastreoObtener claves o valores del registro de rastreo[ilimitado, 1523639748493|1523643347493, 0, 0, 10, 0, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit, , SetValueKey, , , ] de todas las máquinas

La columna “clave” contiene una entrada para el ejecutable que, al finalizar, hará que se inicie el ejecutable MonitorProcess. Los datos de la columna clave expandida son: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe

Dado que Trace no registra Datos de valor, sabemos que en este punto se configuró un proceso para activar otro proceso, pero no dónde se encuentra ese proceso. Sin embargo, podemos abrir una conexión en vivo a través de Trace y tener un vistazo.

Alertas

Además de buscar 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 de registro se configuran de la manera descrita anteriormente.

group(Registry.key_path contiene '\\SilentProcessExit\\' Y Registry.value_name contiene 'MonitorProcess')

Con esta señal implementada, cada vez que cualquier proceso establezca persistencia bajo la clave SilentProcessExit al crear una entrada de MonitorProcess, se activará una alerta en tiempo real en la interfaz de Tanium Detect y estas alertas pueden reenviarse a SIEM o a los sistemas de notificación.

Al igual que con cualquier alerta de Tanium Detect, puede seleccionar la alerta y pasar a una conexión en vivo de Trace para investigar más a fondo la actividad (consulte la Figura 6). Aquí, vemos la actividad del proceso en detalle. En este caso, nuestro proceso malicioso se vuelve a integrar como ADS, pero esta vez en una entrada de directorio C:\System.

Alerta de señales de Tanium que muestra la detección de configuración fantasma del proceso

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

A continuación, vemos la vista del árbol de procesos en Trace (consulte la Figura 7). Cabe destacar que el proceso principal del proceso malicioso es WerFault.exe, el servicio de Reporting de errores de Windows. Tenga en cuenta también que los procesos maliciosos se inician en el mismo contexto de cuenta de usuario y no como SYSTEM.

Respuesta de Tanium Ask que muestra los detalles de ejecución del comando de Windows

Figura 7: Visualización del proceso dentro de Trace.

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

Ahora, podemos tomar el hash y los datos específicos de los archivos y pasar a Tanium protect para bloquear futuras ejecuciones de este proceso. También podemos limpiar el registro y eliminar cualquier proceso existente utilizando acciones estándar de Tanium.

Ejemplos de señales

A continuación, podemos ver las alertas de señal de Tanium Detect correspondientes a varias formas de habilitar este mecanismo de persistencia (consulte las Figuras 8-13).

Señales de Tanium que muestran la detección del mecanismo de persistencia de Powershell

Figura 8: Alerta de señal al agregar la entrada MonitorProcess a través del archivo de lote.

Tanium trace que muestra la técnica de combinación de colmenas del registro para la persistencia

Figura 9: Alerta de señal al agregar la entrada de GlobalFlag con un archivo por lotes.

Alerta de señales de Tanium para la configuración fantasma del proceso a través de la edición

Figura 10: Alerta de señal para agregar la entrada MonitorProcess manualmente usando la GUI de Regedit.exe.

Señales de Tanium que muestran que Powershell se inicia como administrador desde Explorer

Figura 11: Alerta de señal al usar PowerShell para modificar el registro.

Editor de registro de Windows que muestra el proceso de creación de archivos de combinación de registros

Figura 12: Archivo de registro con cambios de configuración.

Señales de Tanium que muestran la combinación de archivos de registro de Windows Explorer

Figura 13: Combinar el archivo de registro de la Figura 12 generó esta alerta.

Otra nota. Una alerta de IOC mostrará el ADS en la vista de detalles, incluido el enriquecimiento de color hash, como se muestra en la Figura 14.

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

Figura 14: Un escaneo de IOC golpeó el binario en función 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 al observar el estado actual de los ajustes del registro, examinar el historial de cambios en el registro con Trace y, finalmente, establecer alertas en tiempo real para cambios en estos ajustes del registro en el futuro. Si desea obtener más información, únase a mí en la  Comunidad de usuarios de Tanium  y analicemos.

¿Le interesa ver a Tanium en acción? Programe una demostración personalizada o asista a nuestro seminario web semanal. Hable con nuestros expertos de Tanium en nuestros próximos eventos.

Acerca del autor: Scott Langendorf es director del equipo de EDR de Tanium. Se incorporó a Tanium en el otoño de 2015 después de haber sido gerente sénior en una corporación de ingeniería global bajo ataque de grupos de países y estados. Con ocho años de experiencia en ciberseguridad, Scott se unió a Tanium para ayudar a avanzar en los productos de seguridad, reconociendo la importancia de una rápida visibilidad de los endpoint, alertas y agilidad de datos para los equipos de defensa y búsqueda. También ha trabajado en la NASA en el sistema de energía eléctrica de la estación espacial y como gerente de TI en el sector de energía cuando recién se estaba descubriendo APT1 .