Búsqueda de Ciberamenazas

Volverá: los atacantes siguen abusando de la herramienta Terminator y sus variantes

Lanzado por primera vez en mayo de 2023, un asesino de EDR (y los controladores Zemana vulnerables que aprovecha) sigue siendo de interés para los actores de amenazas, junto con variantes y versiones portadas

BYOVD (Bring Your Own Vulnerable Driver – Trae tu propio controlador vulnerable) es un tipo de ataque en el que los actores de la amenaza introducen controladores vulnerables conocidos en una máquina comprometida y, a continuación, explotan los fallos para obtener privilegios a nivel del kernel. Con este nivel de acceso, los atacantes pueden conseguir muchas cosas: ocultar malware, volcar credenciales y, lo que es más importante, intentar desactivar las soluciones EDR.

Los actores de amenazas tienen mucho donde elegir cuando se trata de elegir controladores vulnerables; en el momento de escribir esto, hay 364 entradas etiquetadas como “controlador vulnerable” en loldrivers.io, un repositorio de código abierto de controladores vulnerables y sus correspondientes firmas y hashes. Tal vez como resultado de esto, los ataques BYOVD, que anteriormente eran competencia de actores de amenazas muy sofisticados, se han hecho populares entre los operadores de ransomware y los atacantes de nivel inferior en los últimos años.

En febrero de 2020, por ejemplo, informamos sobre una campaña de ransomware RobbinHood en la que el actor de la amenaza abusaba de un controlador legítimo firmado por un fabricante de placas base, para desactivar los productos EDR. Desde entonces, también hemos informado sobre una campaña de ransomware BlackByte que abusaba de un controlador de una tarjeta gráfica; una campaña BYOVD en la que los actores de amenazas aprovechaban un controlador de Windows; y múltiples incidentes relacionados con AuKill, una herramienta que abusa de un controlador obsoleto de Process Explorer, y que hemos observado que los actores de amenazas utilizan en varios incidentes de ransomware.

Otra posible razón por la que BYOVD se ha hecho popular entre los actores de amenazas de bajo nivel es que ahora se compran y venden kits y herramientas listos para usar en foros delictivos. Una en particular atrajo mucha atención en mayo de 2023, cuando un actor de amenazas conocido como spyboy anunció una herramienta llamada Terminator en el foro de ransomware en ruso RAMP. El vendedor afirmaba que la herramienta, con un precio de entre 300 USD y 3.000 USD, podía desactivar veinticuatro productos de seguridad.

Un análisis 2023 de CrowdStrike reveló que Terminator parece ser una herramienta BYOVD y que el controlador vulnerable en cuestión es zam64.sys (Zemana Anti-Logger) o zamguard64.sys (Zemana Anti-Malware, o ZAM), publicado y firmado por Zemana. Ambos controladores comparten prácticamente la misma base de código.

A side-by-side comparison of two screenshots of decompiled code
Figura 1: comparación del código de desensamblado descompilado de ambos controladores de Zemana revela que comparten casi la misma base de código

Ambos controladores también contienen la misma vulnerabilidad, una verificación insuficiente de los procesos que pueden enviarles códigos IOCTL y solicitar diversas funcionalidades. Los controladores mantienen una “lista de permitidos” de procesos legítimos y fiables. Sin embargo, enviando un código IOCTL 0x80002010 y pasando el ID de un proceso en ejecución como parámetro, un atacante puede añadir su propio proceso a la lista de permitidos y eludir esta medida de seguridad. Una vez añadido, el atacante puede solicitar una serie de funcionalidades al controlador, como intentar terminar un proceso objetivo enviando una solicitud IOCTL con el código 0x80002048. En este artículo se proporciona una lista completa de las funcionalidades.

A diagram showing IOCTL codes and the BYOVD process
Figura 2: peticiones de código IOCTL necesarias para poder abusar de la vulnerabilidad

Sin embargo, para abusar del controlador de esta forma, el actor de la amenaza necesitaría privilegios administrativos y un bypass del Control de Cuentas de Usuario (UAC) (o tendría que convencer a un usuario para que instalara el controlador mediante ingeniería social). Así que, aunque aprovechar los controladores legítimos vulnerables podría permitir terminar los procesos AV y EDR, no es necesariamente sencillo, y la escalada de privilegios puede activar otras protecciones de seguridad.

Múltiples variantes

Muchos de los proveedores de la lista de spyboy, incluido Sophos, actuaron con rapidez para investigar variantes de los controladores y desarrollar protecciones. Desde la publicación inicial de Terminator, también hemos rastreado múltiples variantes de la herramienta, incluidas versiones de código abierto como Terminator, que reproduce la técnica de spyboy; SharpTerminator, una adaptación a C# del proyecto anterior; y Ternimator, una versión escrita en Nim. Al igual que Rust, Nim es un lenguaje popular para escribir herramientas de red teaming o de malware, porque al ser un lenguaje relativamente nuevo puede ser más probable que eluda las detecciones estáticas o los modelos heurísticos basados en estática; también ofrece soporte multiplataforma.

Incluso varios meses después del descubrimiento inicial, los controladores siguen siendo un tema popular en los foros de la red oscura. Por ejemplo, descubrimos el siguiente post de noviembre de 2023 en un foro criminal en ruso:

A screenshot of a post on a criminal forum
Figura 3: un actor de amenazas ofrece en un foro delictivo una herramienta BYOVD para su venta

Tras investigar más a fondo el hilo, consideramos que es probable que se refiera a una versión diferente de los controladores Zemana, o a un hash que, en el momento de escribir este artículo, no aparece en loldrivers.io. Al ser cuestionado por otro usuario, que dijo que “es [sic] ZAM, no merece la pena dedicarle tiempo (en la lista negra y detectado)”, el autor original respondió: “no está en las bases de datos… en las bases de datos hay una versión diferente del controlador y no esta”.

Otras discusiones en el foro revelaron que los actores de amenazas son conscientes de la amplia cobertura de los controladores vulnerables de Zemana. La discusión terminó con otro actor de amenazas sugiriendo que desarrollar un controlador malicioso desde cero y utilizar un certificado válido (ya sea robado, filtrado o adquirido de otro modo) para firmarlo, es una estrategia más viable que utilizar controladores vulnerables conocidos.

Aunque no pudimos obtener más información útil del hilo, decidimos investigar y analizar un poco, para determinar el alcance del abuso del controlador Zemana y ver si los atacantes están haciendo más ajustes y cambios a la herramienta Terminator original.

Ataques en el mundo real

Revisamos nuestra telemetría de detección de comportamientos de los últimos seis meses y descubrimos varios incidentes en los que los atacantes utilizaban los controladores Anti-Logger o Anti-Malware de Zemana. En algunos casos, los actores de la amenaza también portaron los proyectos de código abierto comentados anteriormente a diferentes lenguajes o los ofuscaron mediante empaquetadores para eludir la detección. A continuación destacamos los incidentes, ya que son ilustrativos de los patrones que observamos en una base de pruebas más amplia.

De Citrix a Ter

El 13 de septiembre de 2023 y el 10 de octubre de 2023, Sophos frustró ataques que utilizaban metodologías muy similares. En ambos casos, el acceso inicial se obtuvo probablemente explotando una aplicación Citrix vulnerable. A partir de ahí, los atacantes inyectaron una carga útil en el proceso de Informe de Errores de Windows, wermgr.exe. A continuación, intentaron desactivar Sophos mediante los siguientes comandos:

wmic service where \"PathName like '%sophos%'\" call delete /nointeractive

wmic service where \"PathName like '%sophos%'\" call stopservice /nointeractive

La protección antimanipulación estaba activada en los dispositivos objetivo, por lo que los intentos de desactivar y eliminar simplemente los servicios de Sophos fracasaron. Finalmente, el actor de la amenaza pasó a desplegar un archivo EXE llamado ter.exe. El binario se descomprime en una versión ligeramente modificada de Terminator. El controlador propiamente dicho se descargó por separado antes de esto.

Al ejecutarse, el binario carga el recurso “BINARY”. El contenido se desencripta mediante AES-256. La clave está codificada en el binario. Por último, el binario escribe el contenido descifrado en una sección recién asignada y lo ejecuta. El intento de cargar el controlador fue bloqueado por una de nuestras reglas de protección de comportamiento.

A screenshot of decompiled code
Figura 4: rutina de desempaquetado de ter.exe

Tras investigar el desensamblaje del binario desempaquetado ter.exe, encontramos la cadena de ruta PDB con el nombre de proyecto original “Terminator-master”, lo que sugiere que el actor de la amenaza modificó código del repositorio Terminator de GitHub.

A screenshot of disassembled code, showing a filepath
Figura 5: ruta al archivo PDB, encontrada en el ter.exe descomprimido

Servicios médicos bajo ataque

El 15 de diciembre de 2023 bloqueamos un ataque dirigido a una organización sanitaria. Inmediatamente después del acceso inicial, los atacantes intentaron ejecutar un comando PowerShell para descargar un archivo de texto de un servidor C2.

El propio archivo de texto es un script PowerShell diseñado para instalar el criptominero XMRig en el sistema objetivo. El intento fue bloqueado por una de nuestras reglas de protección de comportamiento.

Más tarde, los actores de la amenaza intentaron desactivar el cliente EDR ejecutando ternimator, la versión Nim de Terminator, en una de las máquinas infectadas. El intento de cargar el controlador también fue bloqueado por las reglas de protección de comportamiento.

Figura 6: visión general del ataque a la organización sanitaria

De ZAM a AuKill

En este ataque, que se produjo el día de Navidad de 2023, el actor de la amenaza accedió a una sola máquina, aunque el vector de ataque inicial no está claro. En primer lugar, intentaron cargar el controlador Zemana Anti-Logger, haciéndose pasar por updatedrv.sys, desde distintas ubicaciones:

%sysdir%\drivers\updatedrv.sys

<d>\programdata\usoshared\updatedrv.sys

Después de que estos intentos fracasaran, cambiaron al uso de AuKill, otro conocido asesino de EDR, donde el controlador de Process Explorer se llamaba ped.sys en la carpeta temporal. Informamos de ello al cliente y no vimos que se activaran más detecciones; por tanto, estamos muy seguros de que el ataque fue frustrado.

Mitigación y protección

Detectar el abuso de controladores vulnerables es un reto único para la industria de la seguridad. Aunque los esfuerzos por recopilar repositorios de controladores vulnerables conocidos, como loldrivers.io, son ciertamente útiles, cabe señalar que estos controladores son legítimos, y pueden ser cruciales para el sistema operativo o para servicios y aplicaciones de misión crítica. Bloquearlos al por mayor, sin una validación cuidadosa, puede llevar mucho tiempo, ser contraproducente y acarrear problemas imprevistos para las organizaciones. Por tanto, un enfoque exclusivamente reactivo no suele bastar para resolver este problema, sobre todo porque hay tantos controladores vulnerables conocidos y potencialmente más que contienen vulnerabilidades de día cero.

Sin embargo, es relativamente raro que los actores de amenazas desplieguen controladores legítimos con vulnerabilidades de día cero; la mayoría de las veces, los controladores y sus vulnerabilidades son conocidos y están documentados, como en este caso (aunque pueden estar empaquetados, ofuscados o retocados para evitar la detección estática). Así que mantenerse al día de los controladores vulnerables y bloquear los que no tengas ya instalados, puede merecer la pena.

También recomendamos tomar las siguientes medidas proactivas:

  • Comprueba si tu producto de seguridad para endpoints implementa protección contra manipulaciones (aquí tienes consejos sobre cómo hacerlo para los productos de Sophos).

  • Practica una fuerte higiene de los roles de seguridad de Windows. Los ataques BYOVD suelen ser posibles mediante la escalada de privilegios y la elusión de UAC.

  • Mantén actualizados tanto el sistema operativo como las aplicaciones y herramientas individuales, y elimina el software antiguo si ya no se utiliza o no es necesario.

  • Si aún no lo estás haciendo, considera la posibilidad de añadir controladores vulnerables a tu programa de gestión de vulnerabilidades; los actores de amenazas podrían tratar de explotar los controladores legítimos vulnerables que ya existen en un sistema comprometido.

Además de las detecciones estáticas de algunos de los componentes de Zemana mencionados en este artículo, las reglas de protección del comportamiento de Sophos y la Protección Adaptativa contra Ataques proporcionan más capas de defensa. Además, los eventos BYOVD no ocurren de forma aislada, y algunas de las actividades que acompañan a un ataque BYOVD: la explotación de un vector de ataque inicial, el movimiento lateral, el establecimiento de persistencia y laescalada de privilegios ofrecen más oportunidades para detectar y bloquear un ataque en curso.

Conclusión

Los ataques BYOVD son atractivos para los ciberdelincuentes, ya que pueden proporcionar un medio para desactivar las soluciones AV y EDR a nivel del kernel. La gran cantidad de controladores vulnerables conocidos significa que los atacantes tienen muchas opciones entre las que elegir. Nuestra investigación sobre el uso indebido de los controladores de Zemana ilustra que los actores de amenazas seguirán utilizando estos componentes aunque sean conocidos públicamente y estén firmados, porque se sabe que funcionan y porque a menudo se incluyen en kits y herramientas comerciales. Sin embargo, también merece la pena destacar lo que hemos descubierto en el foro: que algunos actores de amenazas abogan en cambio por controladores maliciosos creados a propósito, firmados con certificados robados o filtrados.

Como muchos otros miembros de la comunidad de seguridad, investigamos y evaluamos constantemente el panorama de las amenazas para seguir la pista tanto de los controladores vulnerables como de los creados a medida, como ya hicimos en nuestra cobertura anterior de AuKill y otras campañas. También seguimos ideando y probando nuevos métodos para bloquear proactivamente los controladores utilizados maliciosamente.

Los IOC para los ataques descritos en este artículo están disponibles en nuestro repositorio de GitHub.

Protecciones

Herramienta Protección
CSharpTerminator ATK/SharpTerm-A
Terminator ATK/KillAV-JV, CXmal/KillAV-ZA
Ternimator Evade_*, Priv_*
Abuse of Zemana AntiLogger/AntiMalware driver Evade_*, Priv_*
XMRig Miner XMRig Miner (PUA)