Sofisticado toolkit atenta contra sistemas macOS

Recientemente Bitdefender ha publicado parte de lo que sería una investigación en curso de una serie de archivos con capacidades de backdoor, los cuales, según lo menciona los expertos en ciber seguridad, seria parte de un toolkit de malware mas complejo y sofisticado.

El descubrimiento de esta serie de archivos se dio como parte del mantenimiento rutinario de detección. Según lo comentara Andrei Lapusneanu y Bogdan Botezatu “Por el momento, estas muestras siguen sin detectarse y se dispone de muy poca información sobre ellas”. Los investigadores comentaban que la mención más temprana de estos archivos fueron las muestras cargadas (IoC A, IoC B, IoC C) a VirusTotal por un usuario anónimo, el 18 de abril de 2023.

Se pudo observar que dos de las tres muestras son backdoors basadas en Python, con la única diferencia en el orden de las bibliotecas exportadas, estas se encuentran diseñadas para afectar sistemas de Windows, Linux y mac0S. Los investigadores han denominado a estos payloads como JokerSpy.

El backdoor shared.dat despliega un reconocimiento del sistema operativo del host y según sea el caso, regresa 0 para sistemas Windows, 1 para sistemas de macOS y 2 para sistemas de Linux. Posteriormente establece una conexión con un servidor remoto en busca de instrucciones de ejecución adicionales.

Shared.dat

El primer archivo para resaltar es shared.dat, el cual hace uso de sustitución rot13 para encubrir el valor de rutas y cadenas de archivos específicos. Este también genera un identificador de dispositivo que será utilizado posteriormente en solicitud del servidor C2.

Al ejecutarse este backdoor primeramente genera el UID previamente mencionado, el cual es utilizado para nombrar un archivo temporal (<uid>.dat), seguidamente el malware ingresa un “while True loop” que busca comunicarse con un servidor remoto, haciendo uso de un formato de paquete personalizado.

El backdoor admite principalmente cuatro comandos enviados como números cmdType por el servidor remoto:

  • Code 501: Para extraer información básica, como hora actual, nombre de usuario, nombre del host, versión del OS.
  • Code 502: CmdExec. Para correr comandos específicos provistos como argumentos mediante la función subprocess.Popen.
  • Code 503: DownExec. Para descargar y ejecutar archivos, este basara su comportamiento dependiendo del sistema operativo alojado.
  • Code 504: Para finalizarse a sí mismo.

En dispositivos macOS, el contenido recuperado codificado en Base64 desde el servidor es escrito en un archivo nombrado “/Users/Shared/AppleAccount.tgz” posteriormente desempaca el archivo al folder /users/shared y luego abre la aplicación /Users/Shared/TempUser/AppleAccountAssistant.app.

En los sistemas de Linux el malware llama la duncion dist_name, el cual tiene como función determinar la distribución (Debian, Fedora, o cualquier otra distribución). Posteriormente el malware procede a escribir un código en C en un archivo temporal “tmp.c”, el cual se compila en un archivo denominado /tmp/.ICE-unix/git mediante el uso de comando cc en Fedora y gcc en Debian.

Sh.py

Entre las muestras observadas, se determino la existencia de un backdoor que seria, potencialmente, más potente que “shared.dat”, el cual también se encuentra escrito en Python. Este backdoor es marcado como “sh.py” y posee una gran cantidad de capacidades con la finalidad de obtener metadata del sistema, la enumeración de archivos, borrar archivos, la ejecución de comandos y archivos, y la filtración de datos codificados.

A diferencia de “shared.dat” este backdoor no viene con un valor codificado desde el servidor C2, sino que este valor puede ser provisto como un parámetro al momento de ejecutar los scripts o puede ser cargado desde el archivo de configuraciones.

El backdoor ejecuta comandos específicos mediante la función process_command el cual puede recibir argumentos con funciones específicas, como se listan a continuación:

  • “l” -> Listar archivos.
  • “c” -> salida de un comando ejecutado en el sistema.
  • “cd” -> cambiar directorio.
  • “xs”, “xsi” -> Ejecutar comando mediante exec. A diferencia de xs, xsi ejecuta un comando codificado inicialmente como base64
  • “r” -> Remover un archivo o directorio.
  • “e” -> ejecuta un archivo desde una ruta especifica.
  • “u” -> escribe la información recibida desde el servidor a un archivo decodificarlo en base64.
  • “d” -> leer información desde un archivo y lo envía al servidor en lote codificados en base64.
  • “g” -> llama la función load_setting() y envia la configuración actual, al servidor.
  • “w” -> establece el valor para opciones particulares como SleepCycleMin o ServerUrl, mediante la función sabe_settings.

El tercer componente ha sido identificado como un binario robusto conocido como xcc que se encuentra escrito en Swift y tiene como objetivo los sistemas macOS Monterey desde la versión 12 hasta las más actuales. El archivo contiene dos archivos Mach-O para las dos arquitecturas de CPU, x86 Intel y ARM M1.

Según lo observado, este componente tiene como función principal el chequeo de permisos, antes del uso de un componente potencialmente de spyware, sin embargo, este no contiene el componente del spyware mismo. Lo que lleva a deducir que esos archivos son parte de un ataque mas complejo y que una gran cantidad de archivos han sido removidos del sistema observado en la investigación de los backdoors.

Las conexiones de spyware de xcc provienen de una ruta identificada dentro del contenido del archivo, “/Users/joker/Downloads/Spy/XProtectCheck/” y del hecho de que comprueba permisos como Acceso a Disco, Grabación de Pantalla y Accesibilidad.

El servidor de comando y control (C2) se encuentra codificado dentro del backdoor share.dat. se pudo determinar que la primera referencia a este dominio proviene del 10 de febrero de 2023, el cual se correlaciona con una serie de Tweets relacionados con un lector de códigos QR de MacOS infectado (QRLog).

Hasta ahora no se ha podido identificar a los actores maliciosos tras estos backdoors o actividades. Acciones como el acceso inicial tampoco han sido establecidas, sin embargo, se puede deducir que este podría incluir elementos de ingeniería social o spear-phising.

Indicadores de Compromiso

IDNombre del ArchivoSHA-1Nombre de detección
Ashared.dat937a9811b3e5482eb8f96832454723d59229f945Trojan.Python.JokerSpy.B
Bshared.datc7d6ede0f6ac9f060ae53bb1db40a4fbe96f9cebTrojan.Python.JokerSpy.C
Csh.pybd8626420ecfd1ab5f4576d83be35edecd8fa70eTrojan.Python.JokerSpy.A
Dxcc (Mach-O)370a0bb4177eeebb2a75651a8addb0477b7d610bTrojan.MAC.JokerSpy.B
Excc (FAT binary)1ed2c5ee95ab77f8e1c1f5e2bd246589526c6362Trojan.MAC.JokerSpy.A
Fxcc (Mach-O)76b790eb3bed4a625250b961a5dda86ca5cd3a11Trojan.MAC.JokerSpy.C
  • URLs: https://git-hub[.]me/view.php

Related Post