Los investigadores de ESET han identificado múltiples muestras de backdoor para Linux, al que hemos llamado WolfsBane, que atribuimos con alta confianza al grupo de amenazas persistentes avanzadas (APT) Gelsemium. Este actor de amenazas alineado con China tiene un historial conocido que se remonta a 2014 y, hasta ahora, no ha habido informes públicos de que Gelsemium utilice malware de Linux. Además, descubrimos otra puerta trasera de Linux, a la que llamamos FireWood. Sin embargo, no podemos vincular definitivamente FireWood a otras herramientas de Gelsemium, y su presencia en los archivos analizados podría ser casual. Por lo tanto, atribuimos FireWood a Gelsemium con poca confianza, considerando que podría ser una herramienta compartida entre múltiples grupos APT alineados con China.

Las muestras más notables que encontramos en los archivos subidos a VirusTotal son dos puertas traseras parecidas a malware conocido de Windows utilizado por Gelsemium. WolfsBane es el equivalente de Gelsevirine para Linux, mientras que FireWood está relacionado con Project Wood. También descubrimos otras herramientas potencialmente relacionadas con las actividades de Gelsemium. El objetivo de las puertas traseras y herramientas descubiertas es el ciberespionaje dirigido a datos sensibles como información del sistema, credenciales de usuario y archivos y directorios específicos. Estas herramientas están diseñadas para mantener un acceso persistente y ejecutar comandos de forma sigilosa, lo que permite la recopilación prolongada de inteligencia mientras se evade la detección.

La tendencia de los grupos APT a centrarse en el malware para Linux es cada vez más notable. Creemos que este cambio se debe a las mejoras en la seguridad del correo electrónico y los puntos finales de Windows, como el uso generalizado de herramientas de detección y respuesta de puntos finales (EDR) y la decisión de Microsoft de desactivar por defecto las macros de Visual Basic para Aplicaciones (VBA). En consecuencia, los autores de las amenazas están explorando nuevas vías de ataque, centrándose cada vez más en explotar las vulnerabilidades de los sistemas orientados a Internet, la mayoría de los cuales se ejecutan en Linux.

En este blogpost, ofrecemos un análisis técnico del malware para Linux, centrándonos principalmente en las dos puertas traseras diferentes.

Puntos clave del blogpost:
  • Los investigadores de ESET encontraron archivos con múltiples muestras de Linux que contenían dos backdoors desconocidas hasta entonces.
  • El primer backdoor, WolfsBane, es una versión para Linux de Gelsevirine, un backdoor para Windows utilizado por Gelsemium.
  • Su dropper es equivalente al dropper de Gelsemine, y cuenta con un hider basado en un rootkit de código abierto.
  • El segundo backdoor, que hemos denominado FireWood, está relacionado con el Proyecto Wood. La versión para Windows del backdoor Project Wood fue utilizada anteriormente por el grupo Gelsemium en la operación TooHash.
  • Junto a los backdoors, encontramos herramientas adicionales, principalmente web shells basadas en código disponible públicamente.

Resumen

En 2023, encontramos estas muestras en archivos subidos a VirusTotal desde Taiwán, Filipinas y Singapur, probablemente procedentes de una respuesta a un incidente en un servidor comprometido. Gelsemium se ha dirigido anteriormente a entidades de Asia Oriental y Oriente Medio.

El primer backdoor forma parte de una cadena de carga simple compuesta por el dropper, el launcher y el backdoor. Hemos llamado a este malware WolfsBane. Como se explica en las secciones Atribución y conexión y Análisis técnico, WolfsBane es un equivalente en Linux del backdoor Gelsevirine de Gelsemium y el dropper WolfsBane es análogo al dropper Gelsemine. Nuestro nombre para Gelsemium proviene de una posible traducción del nombre que encontramos en el informe de VenusTech, que apodó al grupo 狼毒草. Es el nombre de un género de plantas con flores de la familia Gelsemiaceae, y Gelsemium elegans es la especie que contiene compuestos tóxicos como Gelsemine, Gelsenicine y Gelsevirine, que elegimos como nombres para los tres componentes de esta familia de malware. Anteriormente analizamos Gelsevirine y Gelsemine en este libro blanco. Parte de la cadena de ataque WolfsBane analizada es también un rootkit de usuario de código abierto modificado, un tipo de software que existe en el espacio de usuario de un sistema operativo y oculta sus actividades.

El segundo backdoor, al que hemos llamado FireWood, está conectado al rastreado por los investigadores de ESET bajo el nombre de Project Wood, analizado previamente en la sección Project Wood de este blogpost. Lo hemos rastreado hasta 2005 y hemos observado su evolución hacia versiones más sofisticadas.

Los archivos que hemos analizado también contienen varias herramientas adicionales, en su mayoría webshells, que permiten el control remoto a un usuario una vez instaladas en un servidor comprometido, y herramientas de utilidad sencillas.

Atribución y conexión

En esta sección explicamos las similitudes que nos llevaron a atribuir el malware WolfsBane al grupo Gelsemium APT y a establecer una conexión entre el backdoor FireWood y el malware Project Wood.

Vínculos de WolfsBane con Windows Gelsevirine

Basándonos en las siguientes similitudes, creemos que el backdoor WolfsBane es la versión Linux de Gelsevirine. Por lo tanto, atribuimos WolfsBane al grupo Gelsemium APT con una confianza alta:

  • Bibliotecas personalizadas para la comunicación en red: Tanto la versión de Linux como la de Windows cargan una biblioteca personalizada integrada para la comunicación de red, con una biblioteca diferente para cada protocolo de comunicación utilizado. El backdoor accede a las funciones de la librería llamando a su exportación/símbolo create_seesion; en particular, la seesión es la misma en ambas versiones (como se muestra en la Figura 1).
Figure 1. Accessing the create_seesion export in Linux and Windows versions of backdoor
Figura 1. Acceso a la exportación create_seesion en las versiones Linux (izquierda) y Windows (derecha) de backdoor
  • Mecanismo de ejecución de comandos: Ambas versiones utilizan el mismo mecanismo para ejecutar los comandos recibidos del servidor de C&C. El backdoor crea una tabla con hashes (derivados del nombre del comando) y los correspondientes punteros a funciones que manejan esos comandos (Figura 2). Proporcionamos más detalles en la sección Análisis técnico.
Figure 2. Comparison of plugin command names
Figura 2. Comparación de los nombres de los comandos plugin encontrados en los backdoors Linux Wolfsbane (izquierda) y Windows Gelsevirine (derecha)
  • Estructura de la configuración: Ambos backdoors utilizan una estructura de configuración muy similar. Mientras que la versión Linux tiene algunos campos omitidos y otros extra, la mayoría de los nombres de los campos son consistentes. Por ejemplo, el valor de pluginkey que se encuentra en la configuración es el mismo que en todas las muestras de Windows Gelsevirine de 2019. Además, los valores de controller_version en la configuración de la versión de Linux coinciden con los de las muestras de Gelsevirine.
  • Uso del dominio: El dominio dsdsei[.]com, utilizado por la versión de Linux, fue marcado previamente por los investigadores de ESET como un indicador de compromiso (IoC) asociado con el grupo Gelsemium APT.

Conexión de FireWood con Project Wood

Hemos encontrado similitudes de código entre la muestra de FireWood y el backdoor utilizado en la operación TooHash (SHA-1: ED5342D9788392C6E854AAEFA655C4D3B4831B6B), descrito por G DATA, que lo considera parte del rootkit DirectsX. Los investigadores de ESET bautizaron posteriormente a este backdoor como Project Wood. Estas similitudes incluyen:

  • Convenciones de nomenclatura: Ambos utilizan la cadena "Wood" en la nomenclatura. Por ejemplo, la estructura de configuración del backdoor FireWood es referenciada por el símbolo WoodConf, y las versiones Win32 utilizan el nombre mutex IMPROVING CLIENT Want Wood To Exit?
  • Extensiones de archivo: Ambas muestras comparten extensiones de archivo específicas como .k2 y .v2.
  • Algoritmo de cifrado TEA: La implementación del algoritmo de cifrado TEA con un número variable de rondas es la misma en ambas muestras.
  • Cadenas de comunicación C&C: Ambas muestras utilizan las mismas cadenas en el código responsable de las comunicaciones C&C, XORed con la misma clave de un byte(0x26).
  • Código de red: El código de red de ambas muestras es muy similar.

Basándonos en estos hallazgos, evaluamos con alta confianza que el backdoor FireWood es la continuación para Linux del backdoor Project Wood. No se puede demostrar una conexión entre el backdoor FireWood y otras herramientas de Gelsemium y su presencia en los archivos analizados podría ser casual. Por lo tanto, nuestra atribución a Gelsemium es poco fiable y reconocemos la posibilidad de que se trate de una herramienta compartida por varios grupos APT chinos, tal vez a través de un intendente digital común, como hemos visto con otros grupos alineados con China.

Análisis técnico

El primer archivo se subió a VirusTotal e 6 de marzo de 2023, desde Taiwán. También se subieron archivos posteriores desde Filipinas y Singapur. Basándonos en la estructura de carpetas (Figura 3), el objetivo era probablemente un servidor web Apache Tomcat que ejecutaba una aplicación web Java no identificada.

Figure 3. Example of archive structure
Figura 3. Ejemplo de estructura de archivos

Acceso inicial

Aunque carecemos de pruebas concretas sobre el vector de acceso inicial, la presencia de múltiples webshells (como se muestra en la Tabla 1 y se describe en la sección Webshells ) y las tácticas, técnicas y procedimientos (TTP) utilizados por el grupo Gelsemium APT en los últimos años, concluimos con una confianza media que los atacantes explotaron una vulnerabilidad desconocida de la aplicación web para obtener acceso al servidor.

Tabla 1. Webshells encontradas en los archivos analizados Webshells encontradas en los archivos analizados

SHA-1 Filename Description
238C8E8EB7A732D85D8A7F7CA40B261D8AE4183D login.jsp Modified AntSword JSP webshell.
9F7790524BD759373AB57EE2AAFA6F5D8BCB918A yy1.jsp icesword webshell.
FD601A54BC622C041DF0242662964A7ED31C6B9C a.jsp Obfuscated JSP webshell.

Conjunto de herramientas

WolfsBane

Los componentes de WolfsBane y la cadena de ejecución se muestran en la Figura 4.

Figure 4. WolfsBane execution chain
Figura 4. Cadena de ejecución de WolfsBane
Fase 1: dropper de WolfsBane

El dropper para WolfsBane se encontraba en un archivo llamado cron, imitando la herramienta legítima de programación de comandos. Una vez ejecutado, primero coloca el launcher y el backdoor principal en el directorio oculto $HOME/.Xl1 (nótese el uso de la letra l), creado por el dropper. Lo más probable es que el nombre del directorio sea deliberadamente parecido a X11, un nombre de carpeta comúnmente utilizado en X Window System

A continuación, el dropper establece la persistencia basándose en la configuración del sistema y el contexto de ejecución:

Si se ejecuta como root:

  • Comprueba la presencia de la suite systemd.
  • Si systemd está presente, escribe el archivo /lib/systemd/system/display-managerd.service con la ruta a la siguiente etapa (lanzador WolfsBane) como entrada ExecStart (ver Figura 5). Esto garantiza que el lanzador se ejecute como un servicio del sistema, ya que los archivos .service de esta carpeta se analizan durante el inicio del sistema.
  • Desactiva el módulo de seguridad SELinux cambiando la entrada SELINUX en el archivo de configuración SELinux de enforcing a disabled.
[Unit] Description=Display-Manager [Service] Type=simple ExecStart=<PATH_TO_LAUNCHER_EXECUTABLE> [Install] WantedBy=multi-user.targetComment

Figura 5. Contenido de display-managerd Contenido del archivodisplay-managerd.service

Si systemd no está presente, el dropper escribe un sencillo script bash que ejecuta el launcher (Figura 6), en un archivo llamado S60dlump en todas las carpetas de inicio rc[1-5].d.

#!/bin/bash /usr/bin/.Xl1/kde

Figura 6. Script ejecutando el lanzador WolfsBane

Si se ejecuta como usuario sin privilegios en un sistema basado en Debian:

  • escribe un script bash similar en el archivo profile.sh, y
  • añade el comando /home/www/.profile.sh 2>/dev/null a los archivos .bashrc y .profile en la carpeta de inicio del usuario, asegurando que el lanzador Wolfsbane se inicie automáticamente después de que la víctima inicie sesión.

Para otras distribuciones de Linux crea el mismo archivo profile.sh pero añade su ruta sólo a .bashrc.

Además, si el dropper se ejecuta con privilegios de root, suelta el rootkit WolfsBane Hider como /usr/lib/libselinux.so y añade este comando a /etc/ld.so.preload, asegurando que la librería del rootkit se carga en todos los procesos.

Por último, el dropper se elimina a sí mismo del disco y ejecuta la siguiente etapa: el lanzador.

Etapa 2: Lanzador WolfsBane

Se utiliza un pequeño binario llamado kde para mantener la persistencia, hábilmente disfrazado como un componente legítimo del escritorio KDE para evitar la detección y mantener la persistencia. Independientemente del método de establecimiento, el objetivo es ejecutar este binario, cuya función principal es analizar su configuración incrustada e iniciar la siguiente etapa -el backdoor WolfsBane- desde el archivo especificado en la configuración.

Etapa 3: puerta trasera WolfsBane

El backdoor WolfsBane, almacenado en un archivo llamado udevd, comienza cargando una librería embebida y llamando a su exportación main_session, que contiene las principales funcionalidades del backdoor. Esta biblioteca, denominada por sus autores libMainPlugin.so, es análoga a MainPlugin.dll, utilizada en la versión para Windows del backdoor Gelsevirine.

Al igual que su versión para Windows, la puerta trasera WolfsBane utiliza otras bibliotecas integradas para la comunicación de red. En las muestras que hemos recogido, se llaman libUdp.so y libHttps.so, y ambas exportan el símbolo create_seesion (el error ortográfico es exactamente el mismo que en la versión Windows del módulo TCP de Gelsevirine). Estas bibliotecas compartidas proporcionan comunicaciones C&C a través de los protocolos UDP y HTTPS, respectivamente.

El backdoor cifra la librería libMainPlugin. so utilizando el algoritmo RC4 (con la clave obtenida del valor pluginkey en la configuración) y la guarda en <work_directory>/X1l/data/gphoto2. En ejecuciones posteriores, la puerta trasera comprueba primero si existe este archivo: si existe, el archivo se descifra y se carga en lugar del libMainPlugin.so incrustado. Este mecanismo permite actualizar el backdoor sobrescribiendo el archivo.

El backdoor WolfsBane utiliza un enfoque similar al de su homólogo de Windows para ejecutar los comandos recibidos de su servidor de C&C.

El rootkit WolfsBane Hider

El backdoor WolfsBane utiliza un rootkit de usuario BEURK de código abierto modificado para ocultar sus actividades. Ubicado en /usr/lib/libselinux.so, este rootkit abusa del mecanismo de precarga del sistema operativo para cargarse en nuevos procesos antes que otras librerías añadiendo su ruta al archivo /etc/ld.so.preload, permitiendo así que sus funciones enganchen a las originales.

El rootkit WolfsBane Hider engancha muchas funciones básicas estándar de la biblioteca C como open, stat, readdir y access. Aunque estas funciones enganchadas invocan a las originales, filtran cualquier resultado relacionado con el malware WolfsBane. A diferencia del rootkit BEURK original, que utiliza un archivo de configuración incrustado para el filtrado, los desarrolladores de WolfsBane conservaron la configuración predeterminada pero modificaron el código fuente para excluir la información relacionada con los nombres de archivo codificados de los ejecutables del malware udevd y kde. Además, el rootkit BEURK original carece de funciones para ocultar el tráfico de red.

Backdoor FireWood

El backdoor FireWood, en un archivo llamado dbus, es la continuación para el SO Linux del malware Project Wood, como se indicó en la sección Atribución y conexión. El código analizado sugiere que el archivo usbdev.ko es un módulo controlador del kernel que funciona como rootkit para ocultar procesos. El backdoor FireWood se comunica con los controladores del kernel utilizando el protocolo Netlink.

FireWood utiliza un archivo de configuración llamado kdeinit que está cifrado XOR con la clave de un byte 0x26. La estructura del archivo de configuración se detalla en la Tabla 2.

Tabla 2. Offsets seleccionados y sus valores correspondientes del fichero de configuración del backdoor FireWood

Offset Value Meaning
0x00 20190531110402 Unknown timestamp.
0x28 AAAAAAAAAA Placeholder for backdoor working directory.
0x3C 0.0.0.0 C&C IP address (if 0.0.0.0, the backdoor uses the C&C domain).
0x66 asidomain[.]com C&C domain.
0xCC [scsi_eh_7] Spoofed process name.
0x164 0x072BA1E6 TEA encryption key.
0x1E0 4 Connection day (backdoor connects every fourth day of the month).
0x1E4 5 Delay time.
0x1E8 0x0474 Connection time (in minutes).

FireWood renombra su proceso basándose en el valor de la configuración.

Para establecer la persistencia en el sistema, crea un archivo llamado /.config/autostart/gnome-control.desktop. Durante el arranque, todos los archivos con extensión .desktop en el directorio /.config/autostart/son analizados, y cualquier comando listado en la entrada Exec es ejecutado. El contenido del archivo gnome-control.desktop puede verse en la Figura 7.

[Entrada de escritorio] Type=Application Exec=<PATH/TO/OWN/EXECUTABLE> Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[en_US]=gnome-calculator Name=gnome-control Comment[en_US]=

Figura 7. Contenido del archivo gnome-control.desktop utilizado para la persistencia por el backdoor FireWood

FireWood se comunica con su servidor de C&C vía TCP, tal y como se especifica en su configuración. Todos los datos se cifran utilizando el algoritmo de cifrado TEA con un número variable de rondas. La clave de cifrado y el número de rondas se proporcionan en el archivo de configuración de FireWood, como se muestra en la Tabla 2. La estructura de los mensajes enviados y recibidos es la siguiente

La estructura de los mensajes enviados y recibidos se muestra en la Figura 8. El resultado de la ejecución de un comando varía en función del tipo de comando, pero normalmente, 0x10181 indica éxito, mientras que 0x10180 denota un error.

struct data{ DWORD commandID_or_return_code_value ; BYTE data []; }

Figura 8. Estructura data. para comunicaciones C&C utilizada por el backdoor FireWood

Este backdoor es capaz de ejecutar varios comandos, tal y como se describe en la Tabla 3.

Tabla 3. Comandos del backdoor FireWood

Command ID Description
0x105 Download an executable file from the C&C to <PATH>/tmpWood and execute it with the ‌‑UPDATE parameter.
0x110 Execute a shell command using the popen function.
0x111 Change connection time value in the configuration.
0x112 Hide a process using the usbdev.ko kernel module.
0x113 Change delay time in configuration.
0x114 Change connection day value in configuration.
0x132 Clean up and exit.
0x181 List contents of the specified directory.
0x182 Exfiltrate specified file to C&C server.
0x183 Delete specified file.
0x184 Rename specified file.
0x185 Execute specified file using the system function.
0x186 Download file from C&C server.
0x189 Exfiltrate specified folder to C&C server.
0x193 Load specified kernel module or shared library.
0x194 Unload specified kernel module or shared library.
0x19F Modify specified file timestamp.
0x200 Delete specified directory.
0x201 Read content of the specified file and send it to the C&C server.
0x1018F Search for the specified file in the folder defined in the command.

Otras herramientas

Descubrimos dos herramientas adicionales en los archivos, que podrían estar relacionadas con la actividad de Gelsemium: el ladrón de contraseñas SSH y una pequeña herramienta de escalada de privilegios.

El ladrón de contraseñas SSH es un cliente SSH basado en el software de código abierto OpenSSH, modificado para recopilar las credenciales SSH de los usuarios necesarias para autenticar el acceso del usuario a un servidor. Los adversarios sustituyeron el binario original del cliente SSH en /usr/bin/ssh por una versión troyanizada. Aunque funciona como un cliente SSH normal, guarda todos los datos de inicio de sesión en el formato <USERNAME>@<HOST>\t<PASSWORD> en el archivo /tmp/zijtkldse.tmp.

La herramienta de escalada de privilegios es un pequeño binario, llamado ccc, que simplemente escala los privilegios del usuario poniendo a 0 el UID y el GUID del contexto de ejecución y ejecuta un programa en una ruta recibida como argumento. Para realizar esta técnica, el usuario debe tener privilegios de root para añadir permiso SUID a este ejecutable de antemano, lo que lo convierte en una herramienta para mantener privilegios más que para obtenerlos.

Webshells

El login.jsp es una webshell JSP modificada de AntSword que ejecuta bytecode Java de los atacantes. La carga útil, un archivo de clase Java, se codifica en base64 en el parámetro tiger de una solicitud HTTP POST. La webshell original también admite terminal remoto, operaciones con archivos y operaciones con bases de datos.

La webshell yy1.jsp, que identificamos como icesword JSP, procede de foros de Internet, principalmente en chino. La webshell icesword JSP cuenta con una interfaz gráfica de usuario completa dentro de su código del lado del servidor, lo que le permite mostrar una interfaz gráfica de usuario en el navegador del atacante. No está ofuscado y recopila información del sistema, ejecuta comandos del sistema y realiza operaciones con archivos. También se conecta a bases de datos SQL en el host comprometido y ejecuta consultas SQL.

La webshell a.jsp, similar a login.jsp pero ofuscada, contiene una carga binaria Java cifrada con la clave 6438B9BD2AB3C40A y codificada en base64. La carga útil se proporciona en el parámetro Tas9er. La ofuscación incluye comentarios basura, cadenas Unicode con \u-escapado (que se hacen más difíciles de leer), y variables de cadena aleatorias y nombres de funciones. El resultado, codificado en base64 e insertado en la cadena 1F2551A37335B564<base64_encoded_result>8EF53BE997851B95, se envía a los atacantes en el cuerpo de la respuesta.

Conclusión

Este informe describe el conjunto de herramientas de malware para Linux y sus conexiones con muestras de malware para Windows utilizadas por el grupo Gelsemium APT. Nos hemos centrado en las capacidades de los backdoors WolfsBane y FireWood, y hemos analizado la cadena de ejecución de WolfsBane y su utilización del rootkit userland. Este es el primer informe público que documenta el uso de malware para Linux por parte de Gelsemium, lo que supone un cambio notable en su estrategia operativa.

La tendencia del malware hacia los sistemas Linux parece ir en aumento en el ecosistema de las APT. Desde nuestro punto de vista, esta evolución puede atribuirse a varios avances en la seguridad del correo electrónico y de los terminales. La adopción cada vez mayor de soluciones EDR, junto con la estrategia por defecto de Microsoft de desactivar las macros VBA, están dando lugar a un escenario en el que los adversarios se ven obligados a buscar otras posibles vías de ataque.

Como resultado, las vulnerabilidades presentes en la infraestructura orientada a Internet, en particular los sistemas basados en Linux, se están convirtiendo cada vez más en un objetivo. Esto significa que estos sistemas Linux se están convirtiendo en los nuevos objetivos preferidos de estos adversarios.

Para cualquier consulta sobre nuestra investigación publicada en WeLiveSecurity, por favor contáctenos en threatintel@eset.com.
ESET Research ofrece informes privados de inteligencia APT y feeds de datos. Para cualquier consulta sobre este servicio, visite la página de ESET Threat Intelligence.

IoCs

Puede encontrar una lista completa de indicadores de compromiso (IoCs) y muestras en nuestro repositorio GitHub.

Archivos

SHA-1 Filename Detection Description
0FEF89711DA11C550D3914DEBC0E663F5D2FB86C
dbus
Linux/Agent.WF FireWood backdoor.
44947903B2BC760AC2E736B25574BE33BF7AF40B
libselinux.so
Linux/Rootkit.Agent.EC WolfsBane Hider rootkit.
0AB53321BB9699D354A032259423175C08FEC1A4
udevd
Linux/Agent.WF WolfsBane backdoor.
8532ECA04C0F58172D80D8A446AE33907D509377
kde
Linux/Agent.WF WolfsBane launcher.
B2A14E77C96640914399E5F46E1DEC279E7B940F
cron
Linux/Agent.WF WolfsBane dropper.
209C4994A42AF7832F526E09238FB55D5AAB34E5
ccc
Linux/Agent.WF Privilege escalation helper tool.
F43D4D46BAE9AD963C2EB05EF43E90AA3A5D88E3
ssh
Linux/SSHDoor.IC Trojanized SSH client.
FD601A54BC622C041DF0242662964A7ED31C6B9C
a.jsp
Java/Agent.BP JSP webshell.
9F7790524BD759373AB57EE2AAFA6F5D8BCB918A
yy1.jsp
Java/JSP.J icesword webshell.
238C8E8EB7A732D85D8A7F7CA40B261D8AE4183D
login.jsp
Java/Webshell.AM Modified AntSword JSP webshell.
F1DF0C5A74C9885CB5934E3EEE5E7D3CF4D291C0
virus.tgz
Linux/Agent.WF VirusTotal archive.
B3DFB40336C2F17EC74051844FFAF65DDB874CFC
virus-b.tgz
Linux/Agent.WF VirusTotal archive.
85528EAC10090AE743BCF102B4AE7007B6468255
CHINA-APT-Trojan.zip
Java/Agent.BP VirusTotal archive.
CDBBB6617D8937D17A1A9EF12750BEE1CDDF4562
CHINA-APT-Trojan.zip
Linux/Rootkit.Agent.EC VirusTotal archive.
843D6B0054D066845628E2D5DB95201B20E12CD2
CHINA-APT-Trojan.zip
Linux/Rootkit.Agent.EC VirusTotal archive.
BED9EFB245FAC8CFFF8333AE37AD78CCFB7E2198
Xl1.zip
Linux/Rootkit.Agent.EC VirusTotal archive.
600C59733444BC8A5F71D41365368F3002465B10
CHINA-APT-Trojan.zip
Linux/Rootkit.Agent.EC VirusTotal archive.
72DB8D1E3472150C1BE93B68F53F091AACC2234D
virus.tgz
Linux/Agent.WF VirusTotal archive.

Red

IP Domain Hosting provider First seen Details
N/A dsdsei[.]com N/A 2020⁠-⁠08⁠-⁠16 WolfsBane backdoor C&C server.
N/A asidomain[.]com N/A 2022⁠-⁠01⁠-⁠26 FireWood backdoor C&C server.

Técnicas ATT&CK de MITRE

Esta tabla se ha elaborado utilizando la versión 15 del marco MITRE ATT&CK.

Tactic

ID

Name

Description

Resource Development

T1583.001

Acquire Infrastructure: Domains

Gelsemium has registered domains through commercial providers.

T1583.004

Acquire Infrastructure: Server

Gelsemium most likely acquires VPS from commercial providers.

T1587.001

Develop Capabilities: Malware

Gelsemium develops its own custom malware.

Execution

T1059.004

Command-Line Interface: Unix Shell

Gelsemium malware is capable of executing Linux shell commands.

Persistence

T1037.004

Boot or Logon Initialization Scripts: RC Scripts

The WolfsBane launcher remains persistent on the system by using RC startup scripts.

T1543.002

Create or Modify System Process: Systemd Service

The WolfsBane dropper can create a new system service for persistence.

T1574.006

Hijack Execution Flow: Dynamic Linker Hijacking

The WolfsBane Hider rootkit abuses the ld.so.preload preload technique.

T1547.013

Boot or Logon Autostart Execution: XDG Autostart Entries

The FireWood backdoor persists on the system by creating the gnome-control.desktop autostart file.

Privilege Escalation

T1546.004

Event Triggered Execution: .bash_profile and .bashrc

The WolfsBane dropper tampers with various shell configuration files to achieve persistence.

T1548.001

Abuse Elevation Control Mechanism: Setuid and Setgid

Gelsemium uses a simple tool abusing setuid and setguid for keeping escalated privileges.

Defense Evasion

T1070.004

Indicator Removal: File Deletion

The WolfsBane dropper removes itself.

T1070.006

Indicator Removal: Timestomp

The FireWood backdoor has a command for modifying the MAC time of files.

T1070.009

Indicator Removal: Clear Persistence

The WolfsBane dropper removes itself from disk.

T1564.001

Hide Artifacts: Hidden Files and Directories

Both the WolfsBane and FireWood backdoors are located/installed in hidden folders.

T1222.002

File Permissions Modification: Linux and Mac File and Directory Permissions Modification

The WolfsBane dropper uses Linux chmod commands to modify permissions of dropped executables.

T1027.009

Obfuscated Files or Information: Embedded Payloads

The WolfsBane dropper has all its payloads compressed and embedded.

T1014

Rootkit

Both WolfsBane and FireWood malware utilize rootkits for evasion.

T1036.005

Masquerading: Match Legitimate Name or Location

Gelsemium often names its malware to match legitimate files and folders.

Discovery

T1082

System Information Discovery

The WolfsBane dropper enumerates system information.

T1083

File and Directory Discovery

The FireWood backdoor is capable of searching in the machine file system for specified files and folders.

Collection

T1056

Input Capture

The SSH password stealer captures user credentials.

Exfiltration

T1041

Exfiltration Over C2 Channel

The FireWood backdoor exfiltrates collected data utilizing C&C communications.