Los investigadores de ESET descubrieron una campaña de ciberespionaje que, al menos desde septiembre de 2023, atacó a tibetanos a través de un ataque dirigido (también conocido como ataque web estratégico) y un ataque a la cadena de suministro mediante downloaders troyanizados de software de traducción de idioma tibetano. El objetivo de los atacantes era desplegar downloaders maliciosos para Windows y macOS con el fin de comprometer a los visitantes del sitio web con MgBot y un backdoor que, por lo que sabemos, aún no se ha documentado públicamente; lo hemos denominado Nightdoor.

Puntos clave de este blogpost
  • Descubrimos una campaña de ciberespionaje que aprovecha el Festival Monlam -una reunión religiosa- para atacar a tibetanos en varios países y territorios.
  • Los atacantes comprometieron el sitio web del organizador del festival anual, que se celebra en la India, y añadieron código malicioso para crear un ataque de tipo watering-hole dirigido a usuarios que se conectan desde redes específicas.
  • También descubrimos que la cadena de suministro de un desarrollador de software se había visto comprometida y que se servían a los usuarios instaladores troyanizados para Windows y macOS.
  • Los atacantes utilizaron varios downloaders maliciosos y backdoors completos para la operación, incluido un backdoor para Windows no documentado públicamente al que denominamos Nightdoor.
  • Atribuimos esta campaña al grupo APT Evasive Panda, alineado con China.

Perfil de Evasive Panda

Evasive Panda (también conocido como BRONZE HIGHLAND y Daggerfly) es un grupo APT de habla china, activo desde al menos 2012. ESET Research ha observado al grupo realizando ciberespionaje contra individuos en China continental, Hong Kong, Macao y Nigeria. Las entidades gubernamentales fueron atacadas en el sudeste y este de Asia, específicamente en China, Macao, Myanmar, Filipinas, Taiwán y Vietnam. Otras organizaciones de China y Hong Kong también fueron objeto de ataques. Según informes públicos, el grupo también ha atacado entidades desconocidas en Hong Kong, India y Malasia.

El grupo utiliza su propio marco de malware personalizado con una arquitectura modular que permite que su backdoor, conocida como MgBot, reciba módulos para espiar a sus víctimas y mejorar sus capacidades. Desde 2020 también hemos observado que Evasive Panda tiene capacidad para distribuir sus backdoors a través de ataques de intermediario que secuestran actualizaciones de software legítimo.

Resumen de la campaña

En enero de 2024, descubrimos una operación de ciberespionaje en la que los atacantes comprometieron al menos tres sitios web para llevar a cabo ataques de watering hole, así como un compromiso de la cadena de suministro de una empresa de software tibetana.

El sitio web comprometido del que se abusó como abrevadero pertenece a Kagyu International Monlam Trust, una organización con sede en la India que promueve el budismo tibetano a escala internacional. Los atacantes colocaron un script en el sitio web que verifica la dirección IP de la víctima potencial y, si está dentro de uno de los rangos de direcciones objetivo, muestra una página de error falsa para incitar al usuario a descargar un certificado de nombre "fix" (con extensión .exe si el visitante utiliza Windows o .pkg si utiliza macOS). Este archivo es un descargador malicioso que despliega la siguiente etapa en la cadena de compromiso.

Basándonos en los rangos de direcciones IP que comprueba el código, descubrimos que los atacantes tenían como objetivo usuarios de India, Taiwán, Hong Kong, Australia y Estados Unidos; el ataque podría haber tenido como objetivo capitalizar el interés internacional en el Festival Kagyu Monlam (Figura 1) que se celebra anualmente en enero en la ciudad de Bodhgaya, India.

Figure 1. Kagyu Monlam’s website with the dates of the festival
Figura 1. Página web de Kagyu Monlam con las fechas del festival.

Curiosamente, la red del Georgia Institute of Technology (también conocido como Georgia Tech) de Estados Unidos se encuentra entre las entidades identificadas en los rangos de direcciones IP objetivo. En el pasado, se había mencionado la universidad en relación con la influencia del Partido Comunista Chino en los institutos de educación de Estados Unidos.

Alrededor de septiembre de 2023, los atacantes comprometieron el sitio web de una empresa de desarrollo de software con sede en la India que produce software de traducción de la lengua tibetana. Los atacantes colocaron allí varias aplicaciones troyanizadas que despliegan un descargador malicioso para Windows o macOS.

Además de esto, los atacantes también abusaron del mismo sitio web y de un sitio web de noticias tibetano llamado Tibetpost - tibetpost[.]net - para alojar las cargas útiles obtenidas por las descargas maliciosas, incluidos dos backdoors con todas las funciones para Windows y un número desconocido de cargas útiles para macOS.

Figure 2. Timeline of events related to the attack.
Figura 2. Cronología de los acontecimientos relacionados con el ataque

Atribuimos esta campaña al grupo Evasive Panda APT, basándonos en el malware utilizado: MgBot y Nightdoor. En el pasado, hemos visto ambos backdoors desplegados juntos, en un ataque no relacionado contra una organización religiosa en Taiwán, en el que también compartían el mismo servidor de C&C. Ambos puntos también se aplican a la campaña descrita en este blogpost.

Agujero de riego

El 14 de enero de 2024, detectamos un script sospechoso en https://www.kagyumonlam[.]org/media/vendor/jquery/js/jquery.js?3.6.3.

Se adjuntó código malicioso ofuscado a un script legítimo de la biblioteca jQuery JavaScript, como se ve en la figura 2.

Figure 3. The malicious code added at the end of a jQuery library
Figura 3. Código malicioso añadido al final de una biblioteca jQuery

El script envía una petición HTTP a la dirección localhost http://localhost:63403/?callback=handleCallback para comprobar si el descargador intermedio del atacante ya se está ejecutando en la máquina de la víctima potencial (véase la Figura 3). En una máquina previamente comprometida, el implante responde con handleCallback({"success":true }) (ver Figura 4) y el script no realiza ninguna otra acción.

Figure 4. The JavaScript code that checks in with the implant
Figura 4. Código JavaScript que se registra en el implante
Figure 5. The implant answering the JavaScript check-in request
Figura 5. El implante responde a la solicitud de registro de JavaScript

Si la máquina no responde con los datos esperados, el código malicioso continúa obteniendo un hash MD5 de un servidor secundario en https://update.devicebug[.]com/getVersion.php. A continuación, el hash se coteja con una lista de 74 valores hash, como se ve en la Figura 5.

Figure 6. An array of hashes stored in the malicious JavaScript
Figura 6. Matriz de hashes almacenados en el JavaScript malicioso

Si hay una coincidencia, el script mostrará una página HTML con una falsa notificación de fallo (Figura 6) con la intención de engañar al usuario visitante para que descargue una solución para arreglar el problema. La página imita las típicas advertencias "Aw, Snap!" de Google Chrome.

Figure 7. A fake graphic rendered by the JavaScript
Figura 7. Gráfico falso generado por JavaScript

El botón "Solución inmediata" activa un script que descarga una carga útil basada en el sistema operativo del usuario (Figura 7).

Figure 8. Download URLs for Windows and macOS
Figura 8. URL de descarga para Windows y macOS

Rompiendo el hash

La condición para la entrega de la carga útil requiere obtener el hash correcto del servidor en update.devicebug[.]com, por lo que los 74 hashes son la clave del mecanismo de selección de víctimas del atacante. Sin embargo, dado que el hash se calcula en el lado del servidor, nos supuso un reto saber qué datos se utilizan para calcularlo.

Experimentamos con diferentes direcciones IP y configuraciones del sistema y redujimos la entrada para el algoritmo MD5 a una fórmula de los tres primeros octetos de la dirección IP del usuario. En otras palabras, al introducir direcciones IP que comparten el mismo prefijo de red, por ejemplo 192.168.0.1 y 192.168.0.50, recibirán el mismo hash MD5 del servidor C&C.

Sin embargo, se incluye una combinación desconocida de caracteres, o una salt, con la cadena de los tres primeros octetos de IP antes del hash para evitar que los hashes se puedan forzar de forma trivial. Por lo tanto, tuvimos que forzar salt para asegurar la fórmula de entrada y, a continuación, generar hashes utilizando todo el rango de direcciones IPv4 para encontrar los 74 hashes coincidentes.

A veces las estrellas se alinean, y descubrimos que salt era 1qaz0okm!@#. Con todas las piezas de la fórmula de entrada MD5 (por ejemplo, 192.168.1.1qaz0okm!@#), forzamos los 74 hashes con facilidad y generamos una lista de objetivos. Véase la lista completa en el Apéndice.

Como se muestra en la Figura 8, la mayoría de los rangos de direcciones IP objetivo se encuentran en India, seguidos de Taiwán, Australia, Estados Unidos y Hong Kong. Nótese que la mayor parte de la diáspora tibetana vive en India.

Figure 9. Geolocation targeted IP address ranges
Figura 9. Geolocalización de las direcciones IP objetivo

Carga útil en Windows

En Windows, las víctimas del ataque reciben un ejecutable malicioso ubicado en https://update.devicebug[.]com/fixTools/certificate.exe. La figura 9 muestra la cadena de ejecución que sigue cuando el usuario descarga y ejecuta el fix malicioso.

Figure 10. Loading chain of certificate.exe
Figura 10. Cadena de carga de certificate.exe

certificate.exe es un dropper que despliega una cadena de carga lateral para cargar un downloader intermedio, memmgrset.dll (denominado internamente http_dy.dll). Esta DLL obtiene un archivo JSON del servidor C&C en https://update.devicebug[.]com/assets_files/config.json, que contiene la información para descargar la siguiente etapa (ver Figura 10).

Figure 11. Content of config.json
Figura 11. Contenido de config .json

Cuando la siguiente etapa se descarga y ejecuta, despliega otra cadena de carga lateral para entregar Nightdoor como payload final. A continuación, en la sección Nightdoor, se ofrece un análisis de Nightdoor.

Carga útil para macOS

El malware para macOS es el mismo descargador que documentamos con más detalle en Supply-chain compromise. Sin embargo, éste deja caer un ejecutable Mach-O adicional, que escucha en el puerto TCP 63403. Su único propósito es responder con handleCallback({"success":true }) a la petición del código JavaScript malicioso, de modo que si el usuario vuelve a visitar el sitio web de la charca, el código JavaScript no intentará volver a comprometer al visitante.

Este downloader obtiene el archivo JSON del servidor y descarga la siguiente etapa, igual que la versión de Windows descrita anteriormente.

Compromiso de la cadena de suministro

El 18 de enero, descubrimos que el sitio web oficial (Figura 11) de un producto de software de traducción de idioma tibetano para múltiples plataformas alojaba paquetes ZIP que contenían instaladores troyanizados de software legítimo que desplegaban downloaders maliciosos para Windows y macOS.

Figure 12. Windows and macOS applications backdoored versions
Figura 12. Las aplicaciones para Windows y macOS son versiones backdoored, alojadas en la página de descargas del sitio web legítimo

Encontramos una víctima de Japón que descargó uno de los paquetes para Windows. La Tabla 1 enumera las URL y los implantes descargados.

Tabla 1 URL de los paquetes maliciosos en el sitio web comprometido y tipo de carga útil en la aplicación comprometida

Malicious package URL

Payload type

https://www.monlamit[.]com/monlam-app-store/monlam-bodyig3.zip

Win32 downloader

https://www.monlamit[.]com/monlam-app-store/Monlam_Grand_Tibetan_Dictionary_2018.zip

Win32 downloader

https://www.monlamit[.]com/monlam-app-store/Deutsch-Tibetisches_W%C3%B6rterbuch_Installer_Windows.zip

Win32 downloader

https://www.monlamit[.]com/monlam-app-store/monlam-bodyig-mac-os.zip

macOS downloader

https://www.monlamit[.]com/monlam-app-store/Monlam-Grand-Tibetan-Dictionary-for-mac-OS-X.zip

macOS downloader

Paquetes Windows

La Figura 13 ilustra la cadena de carga de la aplicación troyanizada desde el paquete monlam-bodyig3.zip.

Figure 13. Loading chain of the malicious components
Figura 13. Cadena de carga de los componentes maliciosos

La aplicación troyanizada contiene un dropper malicioso llamado autorun.exe que despliega dos componentes

  • un archivo ejecutable llamado MonlamUpdate.exe, que es un componente de software de un emulador llamado C64 Forever y del que se abusa para la carga lateral de DLL, y
  • RPHost.dll, la DLL de carga lateral, que es un downloader malicioso para la siguiente etapa.

Cuando la DLL downloader se carga en memoria, crea una tarea programada llamada Demovale que se ejecutará cada vez que un usuario inicie sesión. Sin embargo, como la tarea no especifica un archivo a ejecutar, no consigue establecer la persistencia.

A continuación, esta DLL obtiene un UUID y la versión del sistema operativo para crear un User-Agent personalizado y envía una petición GET a https://www.monlamit[.]com/sites/default/files/softwares/updateFiles/Monlam_Grand_Tibetan_Dictionary_2018/UpdateInfo.dat para obtener un archivo JSON que contiene la URL para descargar y ejecutar un payload que deposita en el directorio %TEMP%. No pudimos obtener una muestra de los datos del objeto JSON del sitio web comprometido; por lo tanto, no sabemos desde dónde se descarga exactamente default_ico.exe, como se ilustra en la Figura 12.

A través de la telemetría de ESET, observamos que el proceso ilegítimo MonlamUpdate.exe descargó y ejecutó en diferentes ocasiones al menos cuatro archivos maliciosos en %TEMP%\default_ico.exe. La Tabla 2 enumera esos archivos y su finalidad.

Tabla 2. Hash del downloader/dropper default_ico .exe , URL del C&C contactado y descripción del downloader

SHA-1

Contacted URL

Purpose

1C7DF9B0023FB97000B7
1C7917556036A48657C5

https://tibetpost[.]net/templates/
protostar/html/layouts/joomla/
system/default_fields.php

Downloads an unknown payload from the server.

F0F8F60429E3316C463F
397E8E29E1CB2D925FC2

Downloads an unknown payload from the server. This sample was written in Rust.

7A3FC280F79578414D71
D70609FBDB49EC6AD648

http://188.208.141[.]204:5040/
a62b94e4dcd54243bf75802f0cbd71f3.exe

Downloads a randomly named Nightdoor dropper.

BFA2136336D845184436
530CDB406E3822E83EEB

N/A

Open-source tool SystemInfo, into which the attackers integrated their malicious code and embedded an encrypted blob that, once decrypted and executed, installs MgBot.

Por último, el descargador o dropper default_ico. exe obtendrá el payload del servidor o lo soltará, y luego la ejecutará en la máquina víctima, instalando Nightdoor (véase la sección Nightdoor ) o MgBot (véase nuestro análisis anterior).

Los dos paquetes troyanizados restantes son muy similares, ya que despliegan la misma DLL de descarga maliciosa cargada lateralmente por el ejecutable legítimo.

Paquetes para macOS

El archivo ZIP descargado de la tienda oficial de aplicaciones contiene un paquete instalador modificado (archivo.pkg ), al que se han añadido un ejecutable Mach-O y un script de postinstalación. El script de post-instalación copia el archivo Mach-O a $HOME/Library/Containers/CalendarFocusEXT/ y procede a instalar un Launch Agent en $HOME/Library/LaunchAgents/com.Terminal.us.plist para la persistencia. La Figura 13 muestra el script responsable de instalar y lanzar el Agente de Lanzamiento malicioso.

Figure 14. Post-installation script for installing and launching malicious Launch Agent
Figura 14. Scriptpost-instalación para instalar y lanzar el Agente de Lanzamiento malicioso

El Mach-O malicioso, Monlam-bodyig_Keyboard_2017 de la Figura 13 está firmado, pero no notariado, usando un certificado de desarrollador (no un certificado del tipo usado habitualmente para distribución) con el nombre e identificador de equipo ya ni yang(289F6V4BN). La marca de tiempo de la firma indica que se firmó el 7 de enero de 2024. Esta fecha también se utiliza en la marca de tiempo modificada de los archivos maliciosos en los metadatos del archivo ZIP. El certificado se emitió sólo tres días antes. El certificado completo está disponible en la sección IoCs. Nuestro equipo se puso en contacto con Apple el 25 de  enero y el certificado fue revocado el mismo día.

Este malware de primera etapa descarga un archivo JSON que contiene la URL de la siguiente etapa. La arquitectura (ARM o Intel), la versión de macOS y el UUID de hardware (un identificador único para cada Mac) se indican en el encabezado de solicitud HTTP User-Agent. Para recuperar esa configuración se utiliza la misma URL que para la versión de Windows: https://www.monlamit[.]com/sites/default/files/softwares/updateFiles/Monlam_Grand_Tibetan_Dictionary_2018/UpdateInfo.dat. Sin embargo, la versión para macOS buscará los datos bajo la clave mac del objeto JSON en lugar de la clave win.

El objeto bajo la clave mac debe contener lo siguiente

  • url: La URL a la siguiente etapa.
  • md5: Suma MD5 de la carga útil.
  • vernow: Una lista de UUID de hardware. Si está presente, la carga útil sólo se instalará en los Mac que tengan uno de los UUID de hardware de la lista. Esta comprobación se omite si la lista está vacía o no existe.
  • versión: Un valor numérico que debe ser superior a la "versión" de segunda etapa descargada previamente. De lo contrario, la carga útil no se descarga. El valor de la versión actualmente en ejecución se mantiene en los valores predeterminados del usuario de la aplicación.

Después de que el malware descargue el archivo de la URL especificada mediante curl, el archivo se somete a hash mediante MD5 y se compara con el resumen hexadecimal bajo la clave md5. Si coincide, se eliminan sus atributos extendidos (para borrar el atributo com.apple.quarantine), el archivo se mueve a $HOME/Library/SafariBrowser/Safari.app/Contents/MacOS/SafariBrower, y se lanza usando execvp con el argumento run.

A diferencia de la versión para Windows, no pudimos encontrar ninguna de las etapas posteriores de la variante para macOS. Una configuración JSON contenía un hash MD5(3C5739C25A9B85E82E0969EE94062F40), pero el campo URL estaba vacío.

Nightdoor

El backdoor que hemos denominado Nightdoor (y que los autores del malware llaman NetMM según las rutas PDB) es una incorporación tardía al conjunto de herramientas de Evasive Panda. Nuestro primer conocimiento de Nightdoor se remonta a 2020, cuando Evasive Panda lo desplegó en una máquina de un objetivo de alto perfil en Vietnam. El backdoor se comunica con su servidor de C&C a través de UDP o la API de Google Drive. El implante Nightdoor de esta campaña utilizaba esta última. Cifra un token OAuth 2. 0 de la API de Google dentro de la sección de datos y utiliza el token para acceder a Google Drive del atacante. Hemos solicitado que se elimine la cuenta de Google asociada a este token.

En primer lugar, Nightdoor crea una carpeta en Google Drive que contiene la dirección MAC de la víctima, que también actúa como ID de la víctima. Esta carpeta contendrá todos los mensajes entre el implante y el servidor de C&C. Cada mensaje entre Nightdoor y el servidor de C&C se estructura como un archivo y se separa en nombre de archivo y datos de archivo, como se muestra en la Figura 14.

Figure 15. The conversation messages between the implant and the C&C
Los mensajes de conversación entre el implante y el C&C de la carpeta de la víctima en Google Drive del atacante

Cada nombre de archivo contiene ocho atributos principales, lo que se demuestra en el siguiente ejemplo.

Ejemplo:

1_2_0C64C2BAEF534C8E9058797BCD783DE5_168_0_1_4116_0_00-00-00-00-00-00

  • 1_2: valor mágico.
  • 0C64C2BAEF534C8E9058797BCD783DE5: cabecera de la estructura de datos pbuf.
  • 168: tamaño del objeto mensaje o tamaño del fichero en bytes.
  • 0: nombre de archivo, que por defecto es siempre 0 (nulo).
  • 1: tipo de comando, codificado como 1 o 0 dependiendo de la muestra.
  • 4116: ID del comando.
  • 0: calidad de servicio (QoS).
  • 00-00-00-00-00: se supone que es la dirección MAC del destino, pero por defecto siempre es 00-00-00-00-00-00-00.

Los datos dentro de cada archivo representan el comando del controlador para el backdoor y los parámetros necesarios para ejecutarlo. La Figura 15 muestra un ejemplo de un mensaje del servidor C&C almacenado como datos de archivo.

Figure 16. Message from the C&C server
Figura 16. Mensaje del servidor C&C

Mediante ingeniería inversa de Nightdoor, pudimos entender el significado de los campos importantes presentados en el archivo, como se muestra en la Figura 16.

Figure 17. Nightdoor command file format
Figura 17. Formato del archivo de comandos Nightdoor

Descubrimos que se habían añadido muchos cambios significativos a la versión de Nightdoor utilizada en esta campaña, siendo uno de ellos la organización de los ID de comando. En versiones anteriores, cada ID de comando se asignaba a una función manejadora de uno en uno, como se muestra en la Figura 17. Las opciones de numeración, como de 0x2001 a 0x2006, de 0x2201 a 0x2203, de 0x4001 a 0x4003, y de 0x7001 a 0x7005, sugerían que los comandos se dividían en grupos con funcionalidades similares.

Figure 18. Nightdoor’s old method of assigning command IDs to handling functions
Figura 18. Antiguo método de Nightdoor para asignar IDs de comandos a funciones de manipulación

Sin embargo, en esta versión, Nightdoor utiliza una tabla de ramas para organizar todos los IDs de comandos con sus correspondientes manejadores. Los IDs de comando son continuos y actúan como índices de sus correspondientes manejadores en la tabla de ramas, como se muestra en la Figura 18.

Figure 19. Nightdoor’s switch statement and the branch table.
Figura 19. La sentencia switch de Nightdoor y la tabla de ramas

La Tabla 3 es una vista previa de los comandos del servidor C&C y sus funcionalidades. Esta tabla contiene los IDs de los nuevos comandos así como los IDs equivalentes de versiones anteriores.

Tabla 3. Comandos soportados por las variantes de Nightdoor utilizadas en esta campaña.

Command ID

Previous command ID

Description

0x1001

0x2001

Collect basic system profile information such as:

- OS version

- IPv4 network adapters, MAC addresses, and IP addresses

- CPU name

- Computer name

- Username

- Device driver names

- All usernames from C:\Users\*

- Local time

- Public IP address using the ifconfig.me or ipinfo.io webservice

0x1007

0x2002

Collect information about disk drives such as:

- Drive name

- Free space and total space

- File system type: NTFS, FAT32, etc.

0x1004

0x2003

Collect information on all installed applications under Windows registry keys:

- HKLM\SOFTWARE\

- WOW6432Node\Microsoft\Windows\
CurrentVersion\Uninstall (x64)

- Microsoft\Windows\CurrentVersion\Uninstall (x86)

0x1003

0x2004

Collect information on running processes, such as:

- Process name

- Number of threads

- Username

- File location on disk

- Description of file on disk

0x1006

0x4001

Create a reverse shell and manage input and output via anonymous pipes.

0x4002

0x4003

0x1002

N/A

Self-uninstall.

0x100C

0x6001

Move file. The path is provided by the C&C server.

0x100B

0x6002

Delete file. The path is provided by the C&C server.

0x1016

0x6101

Get file attributes. The path is provided by the C&C server.

Conclusión

Hemos analizado una campaña de la APT Evasive Panda, alineada con China, dirigida a tibetanos en varios países y territorios. Creemos que los atacantes aprovecharon, en su momento, la proximidad del festival Monlam en enero y febrero de 2024 para comprometer a los usuarios cuando visitaban el sitio web del festival, convertido en watering hole. Además, los atacantes comprometieron la cadena de suministro de un desarrollador de software de aplicaciones de traducción de lengua tibetana.

Los atacantes utilizaron varios downloaders, droppers y backdoors, entre ellos MgBot -utilizado exclusivamente por Evasive Panda- y Nightdoor: la última gran adición al conjunto de herramientas del grupo y que se ha utilizado para atacar varias redes en Asia Oriental.

En nuestro repositorio de GitHub se encuentra una lista completa de indicadores de compromiso (IoC) y muestras.

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 fuentes de datos. Para cualquier consulta sobre este servicio, visite la página de ESET Threat Intelligence.

IoCs

Archivos

SHA-1

Filename

Detection

Description

0A88C3B4709287F70CA2
549A29353A804681CA78

autorun.exe

Win32/Agent.AGFU

Dropper component added to the official installer package.

1C7DF9B0023FB97000B7
1C7917556036A48657C5

default_ico.exe

Win32/Agent.AGFN

Intermediate downloader.

F0F8F60429E3316C463F
397E8E29E1CB2D925FC2

default_ico.exe

Win64/Agent.DLY

Intermediate downloader programmed in Rust.

7A3FC280F79578414D71
D70609FBDB49EC6AD648

default_ico.exe

Win32/Agent.AGFQ

Nightdoor downloader.

70B743E60F952A1238A4
69F529E89B0EB71B5EF7

UjGnsPwFaEtl.exe

Win32/Agent.AGFS

Nightdoor dropper.

FA44028115912C95B5EF
B43218F3C7237D5C349F

RPHost.dll

Win32/Agent.AGFM

Intermediate loader.

5273B45C5EABE64EDBD0
B79F5D1B31E2E8582324

certificate.pkg

OSX/Agent.DJ

MacOS dropper component.

5E5274C7D931C1165AA5
92CDC3BFCEB4649F1FF7

certificate.exe

Win32/Agent.AGES

Dropper component from the compromised website.

59AA9BE378371183ED41
9A0B24C019CCF3DA97EC

default_ico_1.exe

Win32/Agent.AGFO

Nightdoor dropper component.

8591A7EE00FB1BB7CC5B
0417479681290A51996E

memmgrset.dll

Win32/Agent.AGGH

Intermediate loader for Nightdoor downloader component.

82B99AD976429D0A6C54
5B64C520BE4880E1E4B8

pidgin.dll

Win32/Agent.AGGI

Intermediate loader for Nightdoor.

3EEE78EDE82F6319D094
787F45AFD9BFB600E971

Monlam_Grand_Tibetan_Dictionary_2018.zip

Win32/Agent.AGFM

Trojanized installer.

2A96338BACCE3BB687BD
C274DAAD120F32668CF4

jquery.js

JS/TrojanDownloader.Agent.AAPA

Malicious JavaScript added to the compromised website.

8A389AFE1F85F83E340C
A9DFC0005D904799D44C

Monlam Bodyig 3.1.exe

Win32/Agent.AGFU

Trojanized installer.

944B69B5E225C7712604
EFC289E153210124505C

deutsch-tibetisches_w__rterbuch_installer_windows.zip

MSIL/Agent.WSK

Trojanized installer package.

A942099338C946FC196C
62E87942217BF07FC5B3

monlam-bodyig3.zip

Win32/Agent.AGFU

Trojanized installer package.

52FE3FD399ED15077106
BAE9EA475052FC8B4ACC

Monlam-Grand-Tibetan-Dictionary-for-mac-OS-X.zip

OSX/Agent.DJ

MacOS trojanized installer package.

57FD698CCB5CB4F90C01
4EFC6754599E5B0FBE54

monlam-bodyig-mac-os.zip

OSX/Agent.DJ

MacOS trojanized installer package.

C0575AF04850EB1911B0
00BF56E8D5E9362A61E4

Security~.x64

OSX/Agent.DJ

MacOS downloader.

7C3FD8EE5D660BBF43E4
23818C6A8C3231B03817

Security~.arm64

OSX/Agent.DJ

MacOS downloader.

FA78E89AB95A0B49BC06
63F7AB33AAF1A924C560

Security.fat

OSX/Agent.DJ

MacOS downloader component.

5748E11C87AEAB3C19D1
3DB899D3E2008BE928AD

Monlam_Grand_Dictionary export file

OSX/Agent.DJ

Malicious component from macOS trojanized installer package.

 

Certificados

Serial number

49:43:74:D8:55:3C:A9:06:F5:76:74:E2:4A:13:E9:33

Thumbprint

77DBCDFACE92513590B7C3A407BE2717C19094E0

Subject CN

Apple Development: ya ni yang (2289F6V4BN)

Subject O

ya ni yang

Subject L

N/A

Subject S

N/A

Subject C

US

Valid from

2024-01-04 05:26:45

Valid to

2025-01-03 05:26:44

Serial number

6014B56E4FFF35DC4C948452B77C9AA9

Thumbprint

D4938CB5C031EC7F04D73D4E75F5DB5C8A5C04CE

Subject CN

KP MOBILE

Subject O

KP MOBILE

Subject L

N/A

Subject S

N/A

Subject C

KR

Valid from

2021-10-25 00:00:00

Valid to

2022-10-25 23:59:59

 

IP

Domain

Hosting provider

First seen

Details

N/A

tibetpost[.]net

N/A

2023-11-29

Compromised website.

N/A

www.monlamit[.]com

N/A

2024-01-24

Compromised website.

N/A

update.devicebug[.]com

N/A

2024-01-14

C&C.

188.208.141[.]204

N/A

Amol Hingade

2024-02-01

Download server for Nightdoor dropper component.

 

Técnicas ATT&CK de MITRE

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

Tactic

ID

Name

Description

Resource Development

T1583.004

Acquire Infrastructure: Server

Evasive Panda acquired servers for the C&C infrastructure of Nightdoor, MgBot, and the macOS downloader component.

T1583.006

Acquire Infrastructure: Web Services

Evasive Panda used Google Drive’s web service for Nightdoor’s C&C infrastructure.

T1584.004

Compromise Infrastructure: Server

Evasive Panda operators compromised several servers to use as watering holes, for a supply-chain attack, and to host payloads and use as C&C servers.

T1585.003

Establish Accounts: Cloud Accounts

Evasive Panda created a Google Drive account and used it as C&C infrastructure.

T1587.001

Develop Capabilities: Malware

Evasive Panda deployed custom implants such as MgBot, Nightdoor, and a macOS downloader component.

T1588.003

Obtain Capabilities: Code Signing Certificates

Evasive Panda obtained code-signing certificates.

T1608.004

Stage Capabilities: Drive-by Target

Evasive Panda operators modified a high-profile website to add a piece of JavaScript code that renders a fake notification to download malware.

Initial Access

T1189

Drive-by Compromise

Visitors to compromised websites may receive a fake error message enticing them to download malware.

T1195.002

Supply Chain Compromise: Compromise Software Supply Chain

Evasive Panda trojanized official installer packages from a software company.

Execution

T1106

Native API

Nightdoor, MgBot, and their intermediate downloader components use Windows APIs to create processes.

T1053.005

Scheduled Task/Job: Scheduled Task

Nightdoor and MgBot’s loader components can create scheduled tasks.

Persistence

T1543.003

Create or Modify System Process: Windows Service

Nightdoor and MgBot’s loader components can create Windows services.

T1574.002

Hijack Execution Flow: DLL Side-Loading

Nightdoor and MgBot’s dropper components deploy a legitimate executable file that side-loads a malicious loader.

Defense Evasion

T1140

Deobfuscate/Decode Files or Information

DLL components of the Nightdoor implant are decrypted in memory.

T1562.004

Impair Defenses: Disable or Modify System Firewall

Nightdoor adds two Windows Firewall rules to allow inbound and outbound communi­cation for its HTTP proxy server functionality.

T1070.004

Indicator Removal: File Deletion

Nightdoor and MgBot can delete files.

T1070.009

Indicator Removal: Clear Persistence

Nightdoor and MgBot can uninstall themselves.

T1036.004

Masquerading: Masquerade Task or Service

Nightdoor’s loader disguised its task as netsvcs.

T1036.005

Masquerading: Match Legitimate Name or Location

Nightdoor’s installer deploys its components into legitimate system directories.

T1027.009

Obfuscated Files or Information: Embedded Payloads

Nightdoor’s dropper component contains embedded malicious files that are deployed on disk.

T1055.001

Process Injection: Dynamic-link Library Injection

Nightdoor and MgBot’s loaders components inject themselves into svchost.exe.

T1620

Reflective Code Loading

Nightdoor and MgBot’s loader components inject themselves into svchost.exe, from where they load the Nightdoor or MgBot backdoor.

Discovery

T1087.001

Account Discovery: Local Account

Nightdoor and MgBot collect user account information from the compromised system.

T1083

File and Directory Discovery

Nightdoor and MgBot can collect information from directories and files.

T1057

Process Discovery

Nightdoor and MgBot collect information about processes.

T1012

Query Registry

Nightdoor and MgBot query the Windows registry to find information about installed software.

T1518

Software Discovery

Nightdoor and MgBot collect information about installed software and services.

T1033

System Owner/User Discovery

Nightdoor and MgBot collect user account information from the compromised system.

T1082

System Information Discovery

Nightdoor and MgBot collect a wide range of information about the compromised system.

T1049

System Network Connections Discovery

Nightdoor and MgBot can collect data from all active TCP and UDP connections on the compromised machine.

Collection

T1560

Archive Collected Data

Nightdoor and MgBot store collected data in encrypted files.

T1119

Automated Collection

Nightdoor and MgBot automatically collect system and network information about the compromised machine.

T1005

Data from Local System

Nightdoor and MgBot collect information about the operating system and user data.

T1074.001

Data Staged: Local Data Staging

Nightdoor stages data for exfiltration in files on disk.

Command and Control

T1071.001

Application Layer Protocol: Web Protocols

Nightdoor communicates with the C&C server using HTTP.

T1095

Non-Application Layer Protocol

Nightdoor communicates with the C&C server using UDP. MgBot communicates with the C&C server using TCP.

T1571

Non-Standard Port

MgBot uses TCP port 21010.

T1572

Protocol Tunneling

Nightdoor can act as an HTTP proxy server, tunneling TCP communication.

T1102

Web Service

Nightdoor uses Google Drive for C&C communication.

Exfiltration

T1020

Automated Exfiltration

Nightdoor and MgBot automatically exfiltrate collected data.

T1567.002

Exfiltration Over Web Service: Exfiltration to Cloud Storage

Nightdoor can exfiltrate its files to Google Drive.

Apéndice

Los rangos de direcciones IP objetivo se muestran en la siguiente tabla.

CIDR

ISP

City

Country

124.171.71.0/24

iiNet

Sydney

Australia

125.209.157.0/24

iiNet

Sydney

Australia

1.145.30.0/24

Telstra

Sydney

Australia

193.119.100.0/24

TPG Telecom

Sydney

Australia

14.202.220.0/24

TPG Telecom

Sydney

Australia

123.243.114.0/24

TPG Telecom

Sydney

Australia

45.113.1.0/24

HK 92server Technology

Hong Kong

Hong Kong

172.70.191.0/24

Cloudflare

Ahmedabad

India

49.36.224.0/24

Reliance Jio Infocomm

Airoli

India

106.196.24.0/24

Bharti Airtel

Bengaluru

India

106.196.25.0/24

Bharti Airtel

Bengaluru

India

14.98.12.0/24

Tata Teleservices

Bengaluru

India

172.70.237.0/24

Cloudflare

Chandīgarh

India

117.207.51.0/24

Bharat Sanchar Nigam Limited

Dalhousie

India

103.214.118.0/24

Airnet Boardband

Delhi

India

45.120.162.0/24

Ani Boardband

Delhi

India

103.198.173.0/24

Anonet

Delhi

India

103.248.94.0/24

Anonet

Delhi

India

103.198.174.0/24

Anonet

Delhi

India

43.247.41.0/24

Anonet

Delhi

India

122.162.147.0/24

Bharti Airtel

Delhi

India

103.212.145.0/24

Excitel

Delhi

India

45.248.28.0/24

Omkar Electronics

Delhi

India

49.36.185.0/24

Reliance Jio Infocomm

Delhi

India

59.89.176.0/24

Bharat Sanchar Nigam Limited

Dharamsala

India

117.207.57.0/24

Bharat Sanchar Nigam Limited

Dharamsala

India

103.210.33.0/24

Vayudoot

Dharamsala

India

182.64.251.0/24

Bharti Airtel

Gāndarbal

India

117.255.45.0/24

Bharat Sanchar Nigam Limited

Haliyal

India

117.239.1.0/24

Bharat Sanchar Nigam Limited

Hamīrpur

India

59.89.161.0/24

Bharat Sanchar Nigam Limited

Jaipur

India

27.60.20.0/24

Bharti Airtel

Lucknow

India

223.189.252.0/24

Bharti Airtel

Lucknow

India

223.188.237.0/24

Bharti Airtel

Meerut

India

162.158.235.0/24

Cloudflare

Mumbai

India

162.158.48.0/24

Cloudflare

Mumbai

India

162.158.191.0/24

Cloudflare

Mumbai

India

162.158.227.0/24

Cloudflare

Mumbai

India

172.69.87.0/24

Cloudflare

Mumbai

India

172.70.219.0/24

Cloudflare

Mumbai

India

172.71.198.0/24

Cloudflare

Mumbai

India

172.68.39.0/24

Cloudflare

New Delhi

India

59.89.177.0/24

Bharat Sanchar Nigam Limited

Pālampur

India

103.195.253.0/24

Protoact Digital Network

Ranchi

India

169.149.224.0/24

Reliance Jio Infocomm

Shimla

India

169.149.226.0/24

Reliance Jio Infocomm

Shimla

India

169.149.227.0/24

Reliance Jio Infocomm

Shimla

India

169.149.229.0/24

Reliance Jio Infocomm

Shimla

India

169.149.231.0/24

Reliance Jio Infocomm

Shimla

India

117.255.44.0/24

Bharat Sanchar Nigam Limited

Sirsi

India

122.161.241.0/24

Bharti Airtel

Srinagar

India

122.161.243.0/24

Bharti Airtel

Srinagar

India

122.161.240.0/24

Bharti Airtel

Srinagar

India

117.207.48.0/24

Bharat Sanchar Nigam Limited

Yol

India

175.181.134.0/24

New Century InfoComm

Hsinchu

Taiwan

36.238.185.0/24

Chunghwa Telecom

Kaohsiung

Taiwan

36.237.104.0/24

Chunghwa Telecom

Tainan

Taiwan

36.237.128.0/24

Chunghwa Telecom

Tainan

Taiwan

36.237.189.0/24

Chunghwa Telecom

Tainan

Taiwan

42.78.14.0/24

Chunghwa Telecom

Tainan

Taiwan

61.216.48.0/24

Chunghwa Telecom

Tainan

Taiwan

36.230.119.0/24

Chunghwa Telecom

Taipei

Taiwan

114.43.219.0/24

Chunghwa Telecom

Taipei

Taiwan

114.44.214.0/24

Chunghwa Telecom

Taipei

Taiwan

114.45.2.0/24

Chunghwa Telecom

Taipei

Taiwan

118.163.73.0/24

Chunghwa Telecom

Taipei

Taiwan

118.167.21.0/24

Chunghwa Telecom

Taipei

Taiwan

220.129.70.0/24

Chunghwa Telecom

Taipei

Taiwan

106.64.121.0/24

Far EasTone Telecommunications

Taoyuan City

Taiwan

1.169.65.0/24

Chunghwa Telecom

Xizhi

Taiwan

122.100.113.0/24

Taiwan Mobile

Yilan

Taiwan

185.93.229.0/24

Sucuri Security

Ashburn

United States

128.61.64.0/24

Georgia Institute of Technology

Atlanta

United States

216.66.111.0/24

Vermont Telephone

Wallingford

United States