Los investigadores de ESET han descubierto un grupo APT alineado con China que no había sido documentado previamente, al que denominamos GopherWhisper. El grupo emplea una amplia gama de herramientas, en su mayoría escritas en Go, y utiliza inyectores y loaders para desplegar y ejecutar diversos backdoors de su arsenal. En la campaña observada, los actores de la amenaza apuntaron contra una entidad gubernamental en Mongolia.

GopherWhisper abusa de servicios legítimos —en particular Discord, Slack, Microsoft 365 Outlook y file.io— para la comunicación de comando y control (C&C) y la exfiltración de datos. Tras identificar múltiples tokens de la API de Slack y Discord, logramos extraer una gran cantidad de mensajes de C&C desde esos servicios, lo que nos proporcionó una valiosa visión de las actividades del grupo.

Esta entrada de blog resume los hallazgos de nuestra investigación sobre el conjunto de herramientas de GopherWhisper y su tráfico de C&C, que se describen en detalle en nuestro white paper sobre el tema.

Puntos clave del blogpost:

  • ESET Research descubrió un nuevo grupo APT alineado con China, al que denominamos GopherWhisper, que tuvo como objetivo una entidad gubernamental en Mongolia.
  • El conjunto de herramientas del grupo incluye los backdoors personalizados basados en Go LaxGopher, RatGopher y BoxOfFriends; el inyector JabGopher; la herramienta de exfiltración CompactGopher; el loader FriendDelivery; y el backdoor en C++ SSLORDoor.
  • GopherWhisper aprovecha Discord, Slack, Microsoft 365 Outlook y file.io para las comunicaciones de comando y control (C&C) y la exfiltración de datos.
  • Analizamos el tráfico de C&C proveniente de los canales de Slack y Discord del atacante, lo que nos permitió obtener información sobre las operaciones internas del grupo y sus actividades posteriores al comprometimiento.

Backdoors en abundancia

Descubrimos al grupo en enero de 2025, cuando encontramos un backdoor previamente no documentado, al que denominamos LaxGopher, en el sistema de una entidad gubernamental en Mongolia. Al profundizar la investigación, descubrimos varias herramientas maliciosas adicionales, principalmente distintos backdoors, todos desplegados por el mismo grupo. La mayoría de estas herramientas, incluido LaxGopher, están escritas en Go.

Dado que el conjunto de malware que encontramos no presenta similitudes de código que lo vinculen con ningún actor de amenazas conocido y que no hubo superposición en las tácticas, técnicas y procedimientos (TTP) con otros grupos, decidimos atribuir las herramientas a un grupo nuevo. Elegimos llamarlo GopherWhisper debido a que la mayoría de las herramientas del grupo están escritas en el lenguaje de programación Go —cuyo emblema es un gopher— y en referencia al nombre del archivo whisper.dll, un componente malicioso que se carga mediante side-loading.

El malware que descubrimos inicialmente consta de los siguientes componentes:

  • JabGopher: un inyector que ejecuta el backdoor LaxGopher disfrazado como whisper.dll. Crea una nueva instancia de svchost .exe e inyecta LaxGopher en la memoria del proceso svchost.exe
  • LaxGopher: un backdoor basado en Go que interactúa con un servidor privado de Slack para recuperar mensajes de comando y control (C&C). Ejecuta comandos mediante cmd.exe y publica los resultados en el canal de Slack configurado en el código. LaxGopher también puede descargar malware adicional en el equipo comprometido.
  • CompactGopher: una herramienta de recolección de archivos basada en Go, desplegada por los operadores para comprimir rápidamente archivos desde la línea de comandos y exfiltrarlos automáticamente al servicio de intercambio de archivos file.io. Es uno de los payloads desplegados por LaxGopher.
  • RatGopher: un backdoor basado en Go que interactúa con un servidor privado de Discord para recuperar mensajes de C&C. Tras la ejecución satisfactoria de un comando, los resultados se publican en el canal de Discord configurado.
  • SSLORDoor: un backdoor desarrollado en C++ que utiliza OpenSSL BIO para la comunicación a través de sockets sin encapsular en el puerto 443. Puede enumerar unidades y ejecutar comandos basados en la entrada recibida por C&C, principalmente relacionados con la apertura, lectura, escritura, eliminación y carga de archivos.

Con base en el conocimiento adquirido durante nuestro análisis, pudimos identificar dos herramientas adicionales de GopherWhisper, que nuevamente fueron desplegadas contra la misma entidad gubernamental en Mongolia:

  • FriendDelivery: un archivo DLL malicioso que actúa como loader e inyector y que ejecuta el backdoor BoxOfFriends.
  • BoxOfFriends: un backdoor basado en Go que utiliza la API REST de correo de Microsoft 365 Outlook, a través de Microsoft Graph, para crear y modificar borradores de correos electrónicos con fines de comunicación de comando y control (C&C).

En la figura 1 se muestra un esquema del arsenal de GopherWhisper.

Figure 1. GopherWhisper toolset overview
Figura 1. Vista general del arsenal de GopherWhisper

Mensajes reveladores

Como se mencionó en la introducción, GopherWhisper se caracteriza por el uso extensivo de servicios legítimos como Slack, Discord y Outlook para las comunicaciones de comando y control (C&C). Durante nuestra investigación, logramos extraer miles de mensajes de Slack y Discord, así como varios borradores de correos electrónicos de Microsoft Outlook. Esto nos proporcionó una valiosa visión del funcionamiento interno del grupo.

La inspección de las marcas de tiempo de los mensajes de Slack y Discord mostró que la mayoría de ellos se enviaron durante el horario laboral, es decir, entre las 8:00 y las 17:00, en UTC+8 (véase la Figura 2 y la Figura 3), lo que coincide con la Hora Estándar de China. Además, la configuración regional del usuario definida en los metadatos de Slack también estaba establecida en esta zona horaria. Por lo tanto, creemos que GopherWhisper es un grupo alineado con China.

Figure 2. Slack messages every hour
Figura 2. Mensajes de Slack cada hora
Figure 3. Number of Discord messages every hour
Figura 3. Número de mensajes de Discord cada hora

Según nuestra investigación, los servidores de Slack y Discord del grupo se utilizaron inicialmente para probar la funcionalidad de los backdoors y, posteriormente, sin limpiar los registros, también se usaron como servidores de comando y control (C&C) para los backdoors LaxGopher y RatGopher en múltiples equipos comprometidos.

Canal Slack de LaxGopher

Los mensajes que recopilamos revelaron que las comunicaciones de C&C de LaxGopher se emplearon principalmente para enviar comandos de enumeración de discos y archivos.

Además, entre los mensajes de Slack se descubrieron varios enlaces interesantes a repositorios de GitHub con código malicioso, que se enumeran en la Tabla 1. Con base en el código fuente de cada repositorio, suponemos que estos repositorios podrían haberse utilizado como recurso de aprendizaje y como material de referencia durante el desarrollo.

Tabla 1. Repositorios de GitHub encontrados en las cargas de prueba de los operadores

Repository Description
https://github.com/kardianos/service Install, start, and related activities to service daemons for all operating systems with Go.
https://github.com/NHAS/stab Go local and remote process injections for x86 and x64.
https://github.com/kirinlabs/utils Go encryption and compression utilities, among others.
https://github.com/wumansgy/goEncrypt Various encryption methods implemented in Go.

Canal de Discord de RatGopher

Además de la comunicación de comando y control (C&C), el canal de Discord de RatGopher también contenía código fuente en Go que podría haber sido una iteración temprana del backdoor.

Asimismo, obtuvimos detalles sobre los equipos utilizados por los operadores, ya que estos se empleaban con frecuencia para ejecutar procesos de enumeración con fines de prueba. Esto nos demostró, entre otras cosas, que uno de los operadores utilizaba una máquina virtual basada en VMware y que dicho sistema había sido arrancado e instalado en un momento que se alinea claramente con la zona horaria UTC+8.

Comunicación a través de Microsoft 365 Outlook

Además de las comunicaciones por Slack y Discord, también logramos extraer mensajes de correo electrónico utilizados para la comunicación entre el backdoor BoxOfFriends y su infraestructura de C&C a través de la API de Microsoft Graph. Allí observamos que el mensaje de bienvenida de Microsoft, correspondiente al momento en que se creó la cuenta, nunca había sido eliminado. Este mensaje confirmó que la cuenta barrantaya.1010@outlook[.]com fue creada el 11 de julio de 2024, apenas 11 días antes de la creación de la DLL FriendDelivery —el loader utilizado para ejecutar BoxOfFriends— el 22 de julio de 2024.

Conclusión

Nuestra investigación sobre GopherWhisper reveló un grupo APT que utiliza un conjunto variado de loaders, inyectores y backdoors personalizados. Mediante el análisis de las comunicaciones de C&C obtenidas de los canales de Slack y Discord controlados por el atacante, así como de los borradores de correos electrónicos en Outlook, pudimos obtener información adicional sobre el funcionamiento interno del grupo y sus actividades posteriores al comprometimiento.

Para un análisis detallado del conjunto de herramientas y del tráfico de C&C obtenido, le recomendamos consultar nuestro white paper completo.

En el informe y en nuestro repositorio de GitHub encontrará una lista completa de indicadores de compromiso (IoC).