Acerca del malware SoulSearcher

Un informe de amenazas publicado por Symantec en octubre de 2021 llamó nuestra atención recientemente. Habla de un actor de amenazas desconocido que lleva a cabo una campaña de espionaje en el sudeste asiático utilizando un nuevo arsenal de malware personalizado. Lo que más despertó nuestra curiosidad fue la mención de una carga útil de DLL cargada desde el registro que aún no se había descubierto.

La razón por la que el módulo era difícil de encontrar se hizo evidente después de analizar su cargador. El módulo se almacena como un blob comprimido con un encabezado personalizado en el registro. Nunca se escribe en el disco, por lo que es poco probable que aparezca en conjuntos de datos como VirusTotal.

Y así, nos embarcamos en un viaje para buscar el módulo perdido. Ahora hemos descubierto una muestra del módulo y una gran cantidad de componentes y variantes que datan de 2017. La ingeniería inversa de las muestras nos ha permitido observar la progresión del desarrollo de este malware a lo largo de los años. Con el tiempo, se agregó código personalizado, se actualizaron los componentes, se ampliaron las capacidades, el código se hizo más ordenado y aumentó la modularidad.

Este blog examinará los diferentes componentes de este malware y su progresión a lo largo del tiempo, mapeando así la evolución del marco del malware Soul.

Teoría de la evolución

En la primera fase, los atacantes utilizaron una puerta trasera que incorporaba el código de las herramientas de código abierto Gh0st RAT y NetBot Attacker, aunque con modificaciones considerables. La puerta trasera está incrustada como un blob comprimido en su cuentagotas ejecutable, que la escribe en el disco y la ejecuta.

En un año, el código de la puerta trasera se refactorizó y se le agregó un código personalizado, completando su transformación en lo que llamamos un módulo Soul. Su cargador, al que llamamos SoulSearcher, también cambió. En lugar de colocar la carga útil en el disco, el módulo comprimido se almacena en el registro y se carga en la memoria.

Desde principios de 2020, hemos detectado variantes de SoulSearcher cada vez más complejas, algunas de las cuales admiten la carga de varios módulos desde el registro. Se han transformado significativamente con el tiempo, y sus artefactos de configuración arrojan luz sobre las posibles capacidades del módulo Soul.

Además de las puertas traseras, se utilizaron herramientas adicionales, como registradores de teclas y una herramienta 7zr compilada a medida (7-zip independiente reducido).

A continuación se muestra una línea de tiempo completa de los diversos componentes, comenzando en 2017 con el primer keylogger y backdoor y terminando con las variantes recientes de SoulSearcher encontradas en noviembre de 2021.

Cronología del marco del malware Soul

Nota al margen:  esta línea de tiempo se basa en marcas de tiempo de compilación y, aunque se pueden alterar, en el caso de este marco de malware, las consideramos auténticas. Esto se debe en parte a que la distribución temporal de las muestras recolectadas se correlaciona con nuestra comprensión de las capacidades de los componentes y sus avistamientos en la naturaleza. Además, las muestras relacionadas, como los cargadores y sus cargas útiles, se compilaron con segundos de diferencia.

Varias características son comunes en todos los componentes que encontramos:

  • La ofuscación de importación de DynamiCall  del código fuente filtrado del notorio Hacking Team
  • puerta trasera RCS
  • Apilar cadenas
  • Similitud de la estructura de datos, como la estructura de configuración.
  • Algoritmos de cifrado y compresión
  • Nombres de mutexes, eventos y asignaciones de archivos
  • Marcas de tiempo de compilación adyacentes

La puerta trasera del alma original

Esta es la puerta trasera utilizada en la primera fase por el actor de amenazas. Fue compilado en octubre de 2017 y usó código revisado de repositorios públicos y otro malware filtrado en línea, como:

  • Llamada dinámica
  • rata fantasma
    • Funciones de manipulación de archivos
    • código shell CMD
    • Mensajes y estructuras de comunicación.
  • HTran (una herramienta de rebote de conexión de código abierto)
  • 7zip

La puerta trasera es una DLL que se coloca en el disco mediante un simple cuentagotas. El cuentagotas LZMA-descomprime el backdoor y una configuración que ambos comparten. El cuentagotas escribe la puerta trasera en una ruta especificada por la configuración y le agrega la configuración como una superposición. Dependiendo del argumento de la línea de comandos pasado al cuentagotas, la puerta trasera se ejecuta con LoadLibrary  o rundll32.exe .  Finalmente, el cuentagotas se elimina del disco.

Entradas relacionadas

Dejar un Comentario