Charms elásticos SPECTRALVIPER

Elastic Security Labs descubrió el malware SPECTRALVIPER dirigido a una agroindustria nacional vietnamita.

Respuesta de Elastic a SPECTRALVIPER

Conclusiones clave

  • El conjunto de intrusiones REF2754 aprovecha varios cargadores de PE, puertas traseras y ejecutores de PowerShell
  • SPECTRALVIPER es una puerta trasera x64 muy ofuscada, previamente no revelada, que brinda capacidades de carga e inyección de PE, carga y descarga de archivos, manipulación de archivos y directorios y suplantación de tokens
  • Atribuimos REF2754 a un conjunto de intrusiones basado en Vietnam y nos alineamos con el actor de amenazas Canvas Cyclone/APT32/OceanLotus

Preámbulo

Elastic Security Labs estuvo rastreando un conjunto de intrusiones dirigidas a grandes compañías públicas vietnamitas durante varios meses, REF2754. Durante este periodo de tiempo, nuestro equipo descubrió un nuevo malware que estaba siendo empleado en coordinación por un actor convertido en miembro al estado.

En esta investigación se analiza:

  • El malware SPECTRALVIPER
  • El cargador de malware P8LOADER
  • El malware POWERSEAL
  • Análisis de campañas e intrusiones de REF2754

Flujo de ejecución

El primer evento registrado fue la creación de un archivo (C:\Users\Public\Libraries\dbg.config) por parte del servicio del sistema que se quitó a través de SMB desde un punto de conexión previamente comprometido. El adversario cambió el nombre de la utilidad SysInternals ProcDump, empleada para recopilar metadatos de memoria de los procesos en ejecución, a hacer pasar por la utilidad del depurador de Windows ( windbg.exe ). Con la aplicación ProcDump renombrada con el indicador -md , el adversario cargó dbg.config , un archivo DLL sin firmar que contenía código malicioso.

Cabe señalar, que la técnica ProcDump LOLBAS requiere un proceso válido en los argumentos; por lo tanto, mientras winlogon.exe se incluye en los argumentos, se emplea porque es un proceso válido, no porque ProcDump lo esté seleccionando.

El archivo DLL sin signo (dbg.config) contenía el código DONUTLOADER que intentó inyectar en sessionmsg.exe , el servidor de mensajes de sesión remota de Microsoft. DONUTLOADER se configuró para cargar la puerta trasera SPECTRALVIPER y, en última instancia, las familias de malware P8LOADER o POWERSEAL dependientes de la situación. A continuación se muestra el flujo de ejecución para el conjunto de intrusiones REF2754.

Nuestro equipo también observó un flujo de trabajo similar al descrito anteriormente, pero con diferentes técnicas para proxy de su ejecución maliciosa. Un ejemplo aprovechó el programa Internet Explorer ( ExtExport.exe ) para cargar una DLL, mientras que otra técnica consistió en la carga lateral de una DLL maliciosa ( dnsapi.dll ) empleando una aplicación legítima ( nslookup.exe ).

Estas técnicas y familias de malware constituyen el conjunto de REF2754 intrusión.

Análisis de código SPECTRALVIPER

Overview

Durante nuestra investigación, observamos una familia de malware de puerta trasera no descubierta anteriormente a la que llamamos SPECTRALVIPER. SPECTRALVIPER es una puerta trasera de Windows de 64 bits codificada en C++ y muy ofuscada. Funciona con dos modos de comunicación distintos, lo que le permite recibir mensajes a través de HTTP o una tubería con nombre de Windows.

A través de nuestro análisis, identificamos las siguientes capacidades:

  • Carga/inyección de PE : SPECTRALVIPER puede cargar e inyectar archivos ejecutables, soportando arquitecturas x86 y x64. Esta capacidad le permite ejecutar código malicioso dentro de procesos legítimos.
  • Suplantación de tokens : El malware posee la capacidad de hacerse pasar por tokens de seguridad, lo que le otorga privilegios elevados y elude ciertas medidas de seguridad. Esto permite el acceso no autorizado y la manipulación de recursos confidenciales.
  • Descarga/carga de archivos : SPECTRALVIPER puede descargar y cargar archivos desde y hacia el sistema comprometido. Esto permite al atacante exfiltrar datos o entregar cargas maliciosas adicionales a la máquina infectada.
  • Manipulación de archivos/directorios : La puerta trasera es capaz de manipular archivos y directorios en el sistema comprometido. Esto incluye crear, eliminar, modificar y mover archivos o directorios, lo que proporciona al atacante un amplio control sobre el sistema de archivos de la víctima.

Flujo de ejecución

Lanzar

SPECTRALVIPER se puede compilar como un archivo PE ejecutable o DLL. Lanzar el malware como PE es sencillo ejecutando .\spectralviper.exe.

Sin embargo, cuando el malware es una DLL, intentará disfrazar de una biblioteca legítima con exportaciones conocidas como sqlite3 en nuestra muestra observada.

El punto de entrada SPECTRALVIPER está oculto dentro de estas exportaciones. Para encontrar el correcto, podemos llamarlos por fuerza bruta usando PowerShell y rundll-ng. El comando de PowerShell que se muestra a continuación llama a cada exportación de SPECTRALVIPER en un bucle for hasta que encontramos el que inicia las capacidades de malware.

for($i=0; $i -lt 20; $i++){.\rundll-ng\rundll64-ng.exe ".\7e35ba39c2c77775b0394712f89679308d1a4577b6e5d0387835ac6c06e556cb.dll" "#$i"}

Tras la ejecución, el binario funciona en modo HTTP o en modo de canalización, determinado por su configuración codificada.

Modo de tubería

En el modo de canalización, SPECTRALVIPER abre una tubería con nombre con un nombre codificado de forma rígida y espera los comandos entrantes, en este ejemplo \.\pipe\raSeCIR4gg.

Esta canalización con nombre no tiene ningún atributo de seguridad, lo que significa que todos pueden acceder a ella. Esto es interesante porque una tubería con nombre no segura puede ser superada por un actor de amenazas co-residente (ya sea conocido o desconocido por el operador de SPECTRALVIPER) o equipos defensivos como una forma de interrumpir este modo de ejecución.

Sin embargo, se necesita un protocolo específico para comunicar con esta tubería. SPECTRALVIPER implementa el protocolo de intercambio de claves Diffie-Helman para intercambiar la clave necesaria para cifrar y descifrar los comandos transmitidos a través de la tubería con nombre, que está cifrada con AES.

HTTP mode

En el modo HTTP, el malware se dirigirá a su C2 cada n segundos, el periodo de intervalo se genera aleatoriamente en un rango entre 10 y 99 segundos.

Con un depurador, podemos forzar al binario a usar el canal HTTP en lugar de la canalización con nombre si el binario contiene un dominio codificado de forma rígida.

A continuación se muestra un ejemplo de solicitud HTTP.

La solicitud contiene un encabezado de cookie, " euconsent-v2 ", que contiene información recopilada por el host. Esta información se encripta mediante RSA1024 cifrado asimétrico y se codifica en base64 mediante Base64. A continuación se muestra un ejemplo del contenido de las cookies antes del cifrado.

Creemos que el primer valor, en este ejemplo " H9mktfe2k0ukk64nZjw1ow== ", es la clave AES generada aleatoriamente que se comparte con el servidor para cifrar los datos de comunicación.

Comandos

Al analizar las muestras de SPECTRALVIPER, descubrimos su tabla de controladores de comandos que contiene entre 33 y 36 controladores.

A continuación se muestra una tabla con una lista de los comandos que se identificaron.

IDENTIFICACIÓNNombre
2Descargar Archivo
3Subir archivo
5SetBeaconIntervals
8CreateRundll32ProcessAndHollow
11InjectShellcodeInProcess
12CreateProcessAndInjectShellcode
13InjectPEInProcess
14CreateProcessAndHollow
20CreateRundll32ProcessWithArgumentAndInjectPE
81StealProcessToken
82Suplantar usuario
83RevertirToSelf
84AdjustPrivileges
85GetCurrentUserName
103ListFiles (Archivos de lista)
106ListRunningProcesses
108Copiar archivo
109EliminarArchivo
110CreateDirectory
111Mover archivo
200RunDLLInOwnProcess

Con el fin de acelerar el proceso de interacción con SPECTRALVIPER, evitamos los protocolos de comunicación e inyectamos nuestra propia puerta trasera en el binario. Esta puerta trasera abrirá un socket y llamará a los controladores al recibir nuestros mensajes.

Cuando se ejecuta el comando AdjustPrivileges , y dependiendo del nivel de privilegio actual del proceso, el malware intentará establecer la siguiente lista de privilegios.

Evasión de la defensa

Ofuscación de código

El código binario está muy ofuscado al dividir cada función en funciones ficticias de varios niveles que encapsulan la lógica inicial. Además de eso, el flujo de control de esas funciones también se ofusca mediante el aplanamiento del flujo de control. El aplanamiento de flujo de control es una técnica de ofuscación que elimina las estructuras limpias del programa y coloca los bloques uno al lado del otro dentro de un bucle con una instrucción switch para controlar el flujo del programa.

A continuación se muestra un ejemplo de una función de identidad de segundo nivel en la que el parámetro resaltado p_a1 simplemente se devuelve a pesar de la complejidad de la función.

Ofuscación de cadenas

Las cadenas de SPECTRALVIPER se ofuscan mediante una estructura personalizada y descifrado AES. La clave está codificada de forma rígida ( "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f") y el IV está contenido dentro de la estructura de cadena cifrada.

Podemos descifrar las cadenas instrumentando el malware y llamando a sus funciones de descifrado AES.

Resumen

SPECTRALVIPER es una puerta trasera x64 descubierta durante el análisis de intrusiones de Elastic Security Labs. Se puede compilar como un ejecutable o DLL, que normalmente imitaría las exportaciones binarias conocidas.

Permite la carga/inyección de procesos, la suplantación de tokens y la manipulación de archivos. Emplea canales de comunicación encriptados (HTTP y tubería con nombre) con encriptación AES y Diffie-Hellman o intercambio de claves RSA1024.

Todas las muestras se ofuscan en gran medida empleando el mismo ofuscador con diferentes niveles de endurecimiento.

Empleando la información que recopilamos a través de análisis estáticos y dinámicos, pudimos identificar varias otras muestras en VirusTotal. Mediante el proceso de depuración descrito anteriormente, también pudimos recopilar la infraestructura C2 para estas muestras.

P8LOADER

Overview

El Portable Executable (PE) que se describe a continuación es un cargador de PE x64 de Windows, escrito en C++, al que nombramos P8LOADER luego de una de sus exportaciones, P8exit.

Descubrimiento

P8LOADER se descubrió inicialmente cuando se generó una alerta de shellcode sin respaldo mediante la ejecución de un proceso válido de Windows, RuntimeBroker.exe. Las secciones ejecutables sin copia de seguridad, o código flotante, son el resultado de los tipos de sección de código establecido en "Privado" en lugar de "Imagen", como se vería cuando el código se asigna a un archivo en el disco. Los subprocesos que parten de estos tipos de regiones de memoria son anómalos y un buen indicador de actividad maliciosa.

Si desea obtener más información sobre los eventos ejecutables sin respaldo, consulte la publicación de investigación Hunting in Memory de Joe Desimone.

Flujo de ejecución

El cargador exporta dos funciones que tienen la capacidad de cargar archivos binarios de PE en su propia memoria de proceso, ya sea desde un archivo o desde la memoria.

El PE que se va a ejecutar se carga en la memoria mediante el método VirtualAlloc con un algoritmo de carga de PE tradicional (carga de secciones, resolución de importaciones y aplicación de reubicaciones).

A continuación, se asigna un nuevo subproceso con el punto de entrada del PE como dirección de inicio.

Finalmente, el identificador STDOUT del PE cargado se reemplaza por una tubería y se crea una rosca de tubería de lectura como una forma de redirigir la salida del binario al sistema de registro del cargador.

Además de redirigir la salida de PE cargada, el cargador emplea un mecanismo de intercepción de API para enganchar ciertas API del proceso cargado, registrar cualquier llamada a él y enviar los datos a través de una tubería con nombre (con una cadena UUID generada aleatoriamente como nombre).

El enlace de la tabla de importación del PE se realiza en el momento de la resolución de importación reemplazando las direcciones de función importadas originalmente con su propio código auxiliar.

Evasión de la defensa

Ofuscación de cadenas

P8LOADER usa una técnica de ofuscación basada en plantillas de C++ para ocultar errores y depurar cadenas con un conjunto de algoritmos diferentes elegidos aleatoriamente en tiempo de compilación.

Estas cadenas están ofuscadas para dificultar el análisis, ya que proporcionan información valiosa sobre las funciones y capacidades del cargador.

Resumen

P8LOADER es un cargador de Windows x64 recién descubierto que se emplea para ejecutar un PE desde un archivo o desde la memoria. Este malware es capaz de redirigir la salida de PE cargada a su sistema de registro y enganchar las importaciones de PE a las llamadas de importación de registros.

Análisis de código POWERSEAL

Overview

Durante esta intrusión, observamos un ejecutor ligero de PowerShell de .NET que llamamos POWERSEAL basado en cadenas incrustadas. Una vez que SPECTRALVIPER se implementó correctamente, la utilidad POWERSEAL se usaría para iniciar scripts o comandos de PowerShell suministrados. El malware aprovecha las llamadas al sistema ( NtWriteVirtualMemory ) para evadir soluciones defensivas (AMSI/ETW).

Evasión de la defensa

El seguimiento de eventos para Windows (ETW) proporciona un mecanismo para realizar un seguimiento y registrar eventos generados por aplicaciones en modo de usuario y controladores en modo kernel. La interfaz de análisis antimalware (AMSI) proporciona una protección mejorada contra malware para datos, aplicaciones y cargas de trabajo. POWERSEAL adopta bypasses bien conocidos y disponibles públicamente para parchear estas tecnologías en la memoria. Esto aumenta sus posibilidades de éxito al tiempo que disminuye su huella detectable.

Por ejemplo, POWERSEAL emplea enfoques comunes para desenganchar y omitir AMSI con el fin de omitir la firma de Microsoft Defender

Lanzamiento de PowerShell

La función principal de POWERSEAL es ejecutar PowerShell. En la siguiente representación del código fuente de POWERSEAL, podemos ver que POWERSEAL emplea PowerShell para ejecutar un script y argumentos ( comando ). El script y los argumentos son proporcionados por el actor de amenazas y no se observaron en el entorno.

Resumen

POWERSEAL es un corredor de PowerShell nuevo y especialmente diseñado que toma prestado libremente de una variedad de herramientas de seguridad ofensiva de código abierto, brindando capacidades ofensivas en un paquete optimizado con evasión de defensa incorporada.

Modelado de campañas y adversarios

Overview

REF2754 es una campaña en curso contra las grandes compañías públicas de importancia nacional dentro de Vietnam. La cadena de ejecución de malware en esta campaña se inicia con DONUTLOADER, pero continúa empleando herramientas no reportadas anteriormente.

  1. SPECTRALVIPER, una puerta trasera x64 ofuscada que trae carga e inyección de PE, carga y descarga de archivos, manipulación de archivos y directorios, suplantación de tokens y tubería con nombre y comando y control HTTP
  2. P8LOADER, un cargador de Windows PE ofuscado que permite al atacante minimizar y ofuscar algunos registros en los puntos de conexión de la víctima, y
  3. POWERSEAL, un corredor de PowerShell con omisiones ETW y AMSI integradas para mejorar la evasión defensiva al usar herramientas de PowerShell

Elastic Security Labs concluye con una confianza moderada que esta campaña es ejecutada por una amenaza convertida en miembro al estado vietnamita.

Victimología

Empleando nuestra firma SPECTRALVIPER YARA, identificamos dos puntos finales en un segundo entorno infectado con implantes SPECTRALVIPER. Ese entorno se analizó en la investigación de Elastic Security Labs en 2022 que describe REF4322.

La REF4322 víctima es una compañía de servicios financieros con sede en Vietnam. Elastic Security Labs habló por primera vez sobre este grupo de víctimas y actividades en 2022.

La REF2754 víctima fue identificada como una gran compañía agrícola con sede en Vietnam.

Otros datos de inteligencia de terceros de VirusTotal, basados en la búsqueda retrospectiva de las reglas YARA disponibles al final de esta investigación, indican que hay más víctimas en Vietnam. Hubo ocho éxitos totales de Retrohunt:

  • Se confirmó manualmente que todos eran SPECTRALVIPER
  • Todas las muestras tenían un tamaño de entre 1,59 MB y 1,77 MB
  • Todas las muestras de VirusTotal se enviaron inicialmente desde Vietnam

Algunas muestras se identificaron previamente en nuestra primera colección de fiestas, y otras eran nuevas para nosotros.

Tenga en cuenta las limitaciones analíticas de confiar demasiado en el "remitente de VT". Este mecanismo de reportes de terceros puede estar sujeto a preocupaciones circulares sobre reportes o al uso de VPN que modifica los GEO empleados, y al refuerzo involuntario de una hipótesis. En este caso, se empleó en un intento de tratar de encontrar muestras con aparentes orígenes no VN, sin éxito.

En el momento de la publicación, todas las víctimas conocidas son grandes compañías públicas físicamente dentro de Vietnam y que realizan negocios principalmente dentro de Vietnam.

Análisis de la campaña

La superposición con el entorno REF4322 se produjo recientemente, el 20 de abril de 2023. Uno de estos puntos finales estaba previamente infectado con el implante PHOREAL, mientras que el otro punto final estaba comprometido con PIPEDANCE.

Estas infecciones de SPECTRALVIPER se configuraron en modo de canalización en lugar de dominios codificados de forma rígida configurados para esperar la conexión entrante a través de una tubería con nombre ( \.\pipe\ydZb0bIrT ).

Esta actividad parece ser una transferencia de acceso o un cambio de una herramienta por otra.

Si está interesado en un desglose detallado del malware PIPEDANCE, consulte nuestra investigación anterior y permanezca atento, más por venir.

Sin embargo, la recopilación de efectos deseados luego de la explotación fue limitada, aunque de naturaleza especulativa, una evaluación de la motivación basada en el malware, el implante y las capacidades técnicas apunta a lograr el acceso inicial, mantener la persistencia y operar como una puerta trasera para fines de recopilación de inteligencia.

Los dominios de REF4322, REF2754 y de muestras recogidas de VirusTotal empleadas para C2 se registraron en el último año, siendo el más reciente a finales de abril de 2023.

Dominio:Creado:
stablewindowsapp[.]com2022-02-10
webmanufacturers[.]com2022-06-10
toppaperservices[.]COM2022-12-15
hosting-wordpress-services[.]com2023-03-15
appointmentmedia[.]com2023-04-26

Las GEO de las direcciones IP asociadas a estos dominios se distribuyen globalmente y emplean los certificados Sectigo, Rapid SSL y Let's Encrypt. Un análisis posterior de la infraestructura no descubrió nada notable más allá de su fecha de registro, lo que nos da un cronograma de campaña. Sobre la base del registro reciente de appointmentmedia[.]com, esta campaña aún podría estar en curso con nuevos dominios registrados para futuras intrusiones.

Asociaciones de campaña

Elastic Security Labs concluye con un nivel de confianza moderado que tanto los grupos de actividad REF4322 como REF2754 representan campañas planeadas y ejecutadas por una amenaza convertida en miembro al estado vietnamita. Según nuestro análisis, este grupo de actividad se superpone con reportes anteriores de los grupos de amenaza Canvas Cyclone, APT32 y OCEANLOTUS.

Como se indicó anteriormente y en reportes anteriores, la víctima REF4322 es una institución financiera que gestiona capital para adquisiciones de empresas y antiguas compañías de propiedad estatal.

La REF2754 víctima es una gran agroindustria que es sistémicamente importante en las cadenas de suministro de producción y distribución de alimentos de Vietnam. La urbanización en curso, la contaminación, la pandemia de COVID-19 y el cambio climático fueron desafíos para la seguridad alimentaria de Vietnam. Como dato, en marzo de 2023, el primer ministro de Vietnam aprobó el Plan de Acción Nacional sobre la Transformación de los Sistemas Alimentarios hacia la Transparencia, la Responsabilidad y la Sostenibilidad en Vietnam para 2030. Su objetivo general es transformar los sistemas alimentarios, incluidos la producción, el procesamiento, la distribución y el consumo, hacia la transparencia, la responsabilidad y la sostenibilidad basadas en los beneficios locales; garantizar la seguridad alimentaria y nutricional nacional; mejorar los ingresos y el nivel de vida de la población; prevenir y controlar los desastres naturales y las epidemias; proteger el medio ambiente y responder al cambio climático; y, por último, contribuir a la implementación de los Objetivos de Desarrollo Sostenible de Vietnam y Global para 2030. Todo esto pone de relieve que la seguridad alimentaria fue un punto de énfasis en la política nacional, lo que también convierte a las víctimas de REF2754 en un objetivo atractivo para los actores de amenazas debido a su intersección con los objetivos estratégicos de Vietnam.

Además de los intereses estratégicos alineados a nivel nacional de las víctimas para REF4322 y REF2754, ambas víctimas fueron infectadas con las familias de malware DONUTLOADER, P8LOADER, POWERSEAL y SPECTRALVIPER empleando técnicas de implementación, gestión de implantes y convenciones de nomenclatura similares en ambas intrusiones.

Un grupo de amenazas con acceso a los registros de transacciones financieras disponibles en REF4322, combinado con la política estratégica nacional de inocuidad de los alimentos para REF2754 proporcionaría información sobre la competencia de la gestión, la corrupción, la influencia extranjera o las manipulaciones de precios que de otro modo no estarían disponibles a través de la presentación de reportes reglamentarios.

Modelo Diamante

Elastic Security emplea el modelo Diamond para describir las relaciones de alto nivel entre los adversarios, las capacidades, la infraestructura y las víctimas de las intrusiones. Si bien el modelo Diamond se usa más comúnmente con intrusiones únicas y aprovechando Activity Threading (sección 8) como una forma de crear relaciones entre incidentes, un enfoque centrado en el adversario (sección 7.1.4) El enfoque permite un solo diamante (desordenado).

Tácticas y técnicas del adversario observadas

Elastic usa el framework MITRE ATT&CK para documentar tácticas, técnicas y procedimientos comunes que las amenazas persistentes avanzadas emplean contra las redes empresariales.

Táctica

La táctica representa el porqué de una técnica o subtécnica. Es el objetivo táctico del adversario: la razón para realizar una acción.

Técnicas / Sub técnicas

Las técnicas y subtécnicas representan cómo un adversario logra un objetivo táctico mediante la realización de una acción.

Lógica de detección

Prevenciones

Todo el malware que se analiza en esta publicación de investigación tiene protecciones incluidas en Elastic Defend.

YARA

Elastic Security creó reglas YARA para identificar esta actividad. A continuación se muestran las reglas de YARA para identificar SPECTRALVIPER, POWERSEAL y P8LOADER

rule Windows_Trojan_SpectralViper_1 {
    meta:
        author = "Elastic Security"
        creation_date = "2023-04-13"
        last_modified = "2023-05-26"
        os = "Windows"
        arch = "x86"
        category_type = "Trojan"
        family = "SpectralViper"
        threat_name = "Windows.Trojan.SpectralViper"
        reference_sample = "7e35ba39c2c77775b0394712f89679308d1a4577b6e5d0387835ac6c06e556cb"
       license = "Elastic License v2"

    strings:
        $a1 = { 13 00 8D 58 FF 0F AF D8 F6 C3 01 0F 94 44 24 26 83 FD 0A 0F 9C 44 24 27 4D 89 CE 4C 89 C7 48 89 D3 48 89 CE B8 }
        $a2 = { 15 00 8D 58 FF 0F AF D8 F6 C3 01 0F 94 44 24 2E 83 FD 0A 0F 9C 44 24 2F 4D 89 CE 4C 89 C7 48 89 D3 48 89 CE B8 }
        $a3 = { 00 8D 68 FF 0F AF E8 40 F6 C5 01 0F 94 44 24 2E 83 FA 0A 0F 9C 44 24 2F 4C 89 CE 4C 89 C7 48 89 CB B8 }
        $a4 = { 00 48 89 C6 0F 29 30 0F 29 70 10 0F 29 70 20 0F 29 70 30 0F 29 70 40 0F 29 70 50 48 C7 40 60 00 00 00 00 48 89 C1 E8 }
        $a5 = { 41 0F 45 C0 45 84 C9 41 0F 45 C0 EB BA 48 89 4C 24 08 89 D0 EB B1 48 8B 44 24 08 48 83 C4 10 C3 56 57 53 48 83 EC 30 8B 05 }
        $a6 = { 00 8D 70 FF 0F AF F0 40 F6 C6 01 0F 94 44 24 25 83 FF 0A 0F 9C 44 24 26 89 D3 48 89 CF 48 }
        $a7 = { 48 89 CE 48 89 11 4C 89 41 08 41 0F 10 01 41 0F 10 49 10 41 0F 10 51 20 0F 11 41 10 0F 11 49 20 0F 11 51 30 }
        $a8 = { 00 8D 58 FF 0F AF D8 F6 C3 01 0F 94 44 24 22 83 FD 0A 0F 9C 44 24 23 48 89 D6 48 89 CF 4C 8D }
    condition:
        5 of them
}
rule Windows_Trojan_SpectralViper_2 {
    meta:
        author = "Elastic Security"
        creation_date = "2023-05-10"
        last_modified = "2023-05-10"
        os = "Windows"
        arch = "x86"
        category_type = "Trojan"
        family = "SpectralViper"
        threat_name = "Windows.Trojan.SpectralViper"
        reference_sample = "d1c32176b46ce171dbce46493eb3c5312db134b0a3cfa266071555c704e6cff8"
       license = "Elastic License v2"

    strings:
        $a1 = { 18 48 89 4F D8 0F 10 40 20 0F 11 47 E0 0F 10 40 30 0F 11 47 F0 48 8D }
        $a2 = { 24 27 48 83 C4 28 5B 5D 5F 5E C3 56 57 53 48 83 EC 20 48 89 CE 48 }
        $a3 = { C7 84 C9 0F 45 C7 EB 86 48 8B 44 24 28 48 83 C4 30 5B 5F 5E C3 48 83 }
        $s1 = { 40 53 48 83 EC 20 48 8B 01 48 8B D9 48 8B 51 10 48 8B 49 08 FF D0 48 89 43 18 B8 04 00 00 }
        $s2 = { 40 53 48 83 EC 20 48 8B 01 48 8B D9 48 8B 49 08 FF D0 48 89 43 10 B8 04 00 00 00 48 83 C4 20 5B }
        $s3 = { 48 83 EC 28 4C 8B 41 18 4C 8B C9 48 B8 AB AA AA AA AA AA AA AA 48 F7 61 10 48 8B 49 08 48 C1 EA }
    condition:
        2 of ($a*) or any of ($s*)
}
rule Windows_Trojan_PowerSeal_1 {
    meta:
        author = "Elastic Security"
        creation_date = "2023-03-16"
        last_modified = "2023-05-26"
        os = "Windows"
        arch = "x86"
        category_type = "Trojan"
        family = "PowerSeal"
        threat_name = "Windows.Trojan.PowerSeal"
        license = "Elastic License v2"

    strings:
        $a1 = "PowerSeal.dll" wide fullword
        $a2 = "InvokePs" ascii fullword
        $a3 = "amsiInitFailed" wide fullword
        $a4 = "is64BitOperatingSystem" ascii fullword
    condition:
        all of them
}
rule Windows_Trojan_PowerSeal_2 {
    meta:
        author = "Elastic Security"
        creation_date = "2023-05-10"
        last_modified = "2023-05-10"
        os = "Windows"
        arch = "x86"
        category_type = "Trojan"
        family = "PowerSeal"
        threat_name = "Windows.Trojan.PowerSeal"
        license = "Elastic License v2"

    strings:
        $a1 = "[+] Loading PowerSeal"
        $a2 = "[!] Failed to exec PowerSeal"
        $a3 = "AppDomain: unable to get the name!"
    condition:
        2 of them
}
rule Windows_Trojan_P8Loader {
    meta:
        author = "Elastic Security"
        creation_date = "2023-04-13"
        last_modified = "2023-05-26"
        os = "Windows"
        arch = "x86"
        category_type = "Trojan"
        family = "P8Loader"
        threat_name = "Windows.Trojan.P8Loader"
        license = "Elastic License v2"

    strings:
        $a1 = "\t[+] Create pipe direct std success\n" fullword
        $a2 = "\tPEAddress: %p\n" fullword
        $a3 = "\tPESize: %ld\n" fullword
        $a4 = "DynamicLoad(%s, %s) %d\n" fullword
        $a5 = "LoadLibraryA(%s) FAILED in %s function, line %d" fullword
        $a6 = "\t[+] No PE loaded on memory\n" wide fullword
        $a7 = "\t[+] PE argument: %ws\n" wide fullword
        $a8 = "LoadLibraryA(%s) FAILED in %s function, line %d" fullword
    condition:
        5 of them
}

Referencias

A lo largo de la investigación anterior se hizo referencia a lo siguiente:

Observaciones

Todos los observables también están disponibles para su descarga en formato ECS y STIX en un paquete zip combinado.

En esta investigación se discutieron los siguientes observables.

ObservableTipoNombreReferencia
56d2d05988b6c23232b013b38c49b7a9143c6649d81321e542d19ae46f4a4204SHA-256-SPECTRALVIPER Relacionado con 1.dll siguientes
d1c32176b46ce171dbce46493eb3c5312db134b0a3cfa266071555c704e6cff8SHA-2561.dllSPECTRALVIPER
7e35ba39c2c77775b0394712f89679308d1a4577b6e5d0387835ac6c06e556cbSHA-256asdgb.exeSPECTRALVIPER
4e3a88cf00e0b4718e7317a37297a185ff35003192e5832f5cf3020c4fc45966SHA-256Settings.dbSPECTRALVIPER
7b5e56443812eed76a94077763c46949d1e49cd7de79cde029f1984e0d970644SHA-256Microsoft.MicrosoftEdge_8wekyb3d8bbwe.pkgSPECTRALVIPER
5191fe222010ba7eb589e2ff8771c3a75ea7c7ffc00f0ba3f7d716f12010dd96SHA-256UpdateConfig.jsonSPECTRALVIPER
4775fc861bc2685ff5ca43535ec346495549a69891f2bf45b1fcd85a0c1f57f7SHA-256Microsoft.OneDriveUpdatePackage.mcaSPECTRALVIPER
2482c7ececb23225e090af08feabc8dec8d23fe993306cb1a1f84142b051b621SHA-256ms-certificados.sstSPECTRALVIPER
stablewindowsapp[.]comDominioN/AC2
webmanufacturers[.]comDominioN/AC2
toppaperservices[.]COMDominioN/AC2
hosting-wordpress-services[.]comDominioN/AC2
appointmentmedia[.]comDominioN/AC2