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).
- 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.
- 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.
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 |
238C8E8EB7A732D85D8A |
login.jsp | Modified AntSword JSP webshell. |
9F7790524BD759373AB5 |
yy1.jsp | icesword webshell. |
FD601A54BC622C041DF0 |
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.
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 |
0FEF89711DA11C550D39 |
dbus |
Linux/Agent.WF | FireWood backdoor. |
44947903B2BC760AC2E7 |
libselinux.so |
Linux/Rootkit.Agent.EC | WolfsBane Hider rootkit. |
0AB53321BB9699D354A0 |
udevd |
Linux/Agent.WF | WolfsBane backdoor. |
8532ECA04C0F58172D80 |
kde |
Linux/Agent.WF | WolfsBane launcher. |
B2A14E77C96640914399 |
cron |
Linux/Agent.WF | WolfsBane dropper. |
209C4994A42AF7832F52 |
ccc |
Linux/Agent.WF | Privilege escalation helper tool. |
F43D4D46BAE9AD963C2E |
ssh |
Linux/SSHDoor.IC | Trojanized SSH client. |
FD601A54BC622C041DF0 |
a.jsp |
Java/Agent.BP | JSP webshell. |
9F7790524BD759373AB5 |
yy1.jsp |
Java/JSP.J | icesword webshell. |
238C8E8EB7A732D85D8A |
login.jsp |
Java/Webshell.AM | Modified AntSword JSP webshell. |
F1DF0C5A74C9885CB593 |
virus.tgz |
Linux/Agent.WF | VirusTotal archive. |
B3DFB40336C2F17EC740 |
virus-b.tgz |
Linux/Agent.WF | VirusTotal archive. |
85528EAC10090AE743BC |
CHINA-APT-Trojan.zip |
Java/Agent.BP | VirusTotal archive. |
CDBBB6617D8937D17A1A |
CHINA-APT-Trojan.zip |
Linux/Rootkit.Agent.EC | VirusTotal archive. |
843D6B0054D066845628 |
CHINA-APT-Trojan.zip |
Linux/Rootkit.Agent.EC | VirusTotal archive. |
BED9EFB245FAC8CFFF83 |
Xl1.zip |
Linux/Rootkit.Agent.EC | VirusTotal archive. |
600C59733444BC8A5F71 |
CHINA-APT-Trojan.zip |
Linux/Rootkit.Agent.EC | VirusTotal archive. |
72DB8D1E3472150C1BE9 |
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 |
Acquire Infrastructure: Domains |
Gelsemium has registered domains through commercial providers. |
|
Acquire Infrastructure: Server |
Gelsemium most likely acquires VPS from commercial providers. |
||
Develop Capabilities: Malware |
Gelsemium develops its own custom malware. |
||
Execution |
Command-Line Interface: Unix Shell |
Gelsemium malware is capable of executing Linux shell commands. |
|
Persistence |
Boot or Logon Initialization Scripts: RC Scripts |
The WolfsBane launcher remains persistent on the system by using RC startup scripts. |
|
Create or Modify System Process: Systemd Service |
The WolfsBane dropper can create a new system service for persistence. |
||
Hijack Execution Flow: Dynamic Linker Hijacking |
The WolfsBane Hider rootkit abuses the ld.so.preload preload technique. |
||
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 |
Event Triggered Execution: .bash_profile and .bashrc |
The WolfsBane dropper tampers with various shell configuration files to achieve persistence. |
|
Abuse Elevation Control Mechanism: Setuid and Setgid |
Gelsemium uses a simple tool abusing setuid and setguid for keeping escalated privileges. |
||
Defense Evasion |
Indicator Removal: File Deletion |
The WolfsBane dropper removes itself. |
|
Indicator Removal: Timestomp |
The FireWood backdoor has a command for modifying the MAC time of files. |
||
Indicator Removal: Clear Persistence |
The WolfsBane dropper removes itself from disk. |
||
Hide Artifacts: Hidden Files and Directories |
Both the WolfsBane and FireWood backdoors are located/installed in hidden folders. |
||
File Permissions Modification: Linux and Mac File and Directory Permissions Modification |
The WolfsBane dropper uses Linux chmod commands to modify permissions of dropped executables. |
||
Obfuscated Files or Information: Embedded Payloads |
The WolfsBane dropper has all its payloads compressed and embedded. |
||
Rootkit |
Both WolfsBane and FireWood malware utilize rootkits for evasion. |
||
Masquerading: Match Legitimate Name or Location |
Gelsemium often names its malware to match legitimate files and folders. |
||
Discovery |
System Information Discovery |
The WolfsBane dropper enumerates system information. |
|
File and Directory Discovery |
The FireWood backdoor is capable of searching in the machine file system for specified files and folders. |
||
Collection |
Input Capture |
The SSH password stealer captures user credentials. |
|
Exfiltration |
Exfiltration Over C2 Channel |
The FireWood backdoor exfiltrates collected data utilizing C&C communications. |