DinodasRAT, también conocido como XDealer, es una puerta trasera multiplataforma escrita en C++ que ofrece una variedad de capacidades. Esta RAT permite al actor malintencionado vigilar y recopilar datos confidenciales de la computadora de un objetivo. Una versión para Windows de esta RAT se utilizó en ataques contra entidades gubernamentales en Guyana y los investigadores de ESET la documentaron como Operación Jacana. A principios de octubre de 2023, tras la publicación de ESET, descubrimos una nueva versión para Linux de DinodasRAT. Los artefactos de muestra sugieren que esta versión (V10 según el sistema de versiones de los atacantes) puede haber comenzado a funcionar en 2022, aunque la primera variante de Linux conocida (V7), que aún no se ha descrito públicamente, se remonta a 2021. En este análisis, Discutiremos los detalles técnicos de un implante de Linux utilizado por los atacantes. Descripción general de la infección inicial El implante DinodasRAT Linux se dirige principalmente a distribuciones basadas en Red Hat y Ubuntu Linux. Cuando se ejecuta por primera vez, crea un archivo oculto en el mismo directorio que el ejecutable, siguiendo el formato “.[executable_name].mu”. Este archivo se utiliza como una especie de exclusión mutua para garantizar que el implante solo ejecute una instancia y solo le permita continuar si puede crear este archivo con éxito. El backdoor mantiene la persistencia y se lanza de la siguiente manera: Código principal del backdoor El backdoor establece la persistencia y comienza con los siguientes pasos: Ejecución directa sin argumentos; Primero se ejecuta sin ningún argumento, lo que hace que se ejecute en segundo plano llamando a la función «daemon» desde Linux. Establecer persistencia en el sistema infectado utilizando scripts de inicio SystemV o SystemD (detallados en la siguiente sección). Ejecutándose nuevamente con el ID del proceso principal (PPID) como argumento; El proceso recién creado (secundario) continúa la infección de puerta trasera mientras el proceso principal espera. Esta técnica no sólo le da a Dinodas la capacidad de verificar que se haya ejecutado correctamente, sino que también hace que sea más difícil de detectar con herramientas de depuración y monitoreo. Generación y persistencia de ID de víctima Antes de establecer contacto con el servidor C2, la puerta trasera recopila información sobre la máquina infectada y el tiempo de infección para crear un identificador único para la máquina de la víctima. En particular, los atacantes no recopilan ningún dato específico del usuario para generar este UID. El UID normalmente incluye: Fecha de infección; Hash MD5 de la salida del comando dmidecode (un informe detallado del hardware del sistema infectado); Número generado aleatoriamente como ID; Versión de puerta trasera. El identificador único tiene el formato: Linux_{DATE}_{HASH}_{RAND_NUM}_{VERSION}. Generación de identificador único de la máquina A continuación, el implante almacena toda la información local sobre la identificación de la víctima, el nivel de privilegio y cualquier otro detalle relevante en un archivo oculto llamado «/etc/.netc.conf». Este archivo de perfil contiene los metadatos recopilados actualmente de la puerta trasera. Si el archivo no existe, Dinodas lo creará, siguiendo la estructura Sección y Clave:Valor. Configuración del perfil DinodasRAT También garantiza que cualquier acceso a este archivo o a sí mismo (al leer su propia ruta de archivo) no actualice el tiempo de «acceso» en la estructura de estadísticas, que contiene la marca de tiempo de acceso de un archivo determinado en el sistema de archivos. Lo hace utilizando el comando «touch» con el parámetro «-d» para modificar estos metadatos. Reemplazo del código de tiempo de acceso al archivo original Tiempo de acceso modificado en el ejecutable de puerta trasera La versión DinodasRAT Linux aprovecha las dos versiones de los administradores de servicios de Linux para establecer persistencia en un sistema afectado: Systemd y SystemV. Cuando se inicia el malware, se llama a una función para determinar el tipo de distribución de Linux que está ejecutando la víctima. Actualmente hay dos tipos de distribuciones a las que se dirige el implante en función de sus lecturas de “/proc/version”: RedHat y Ubuntu 16/18. Sin embargo, el malware podría infectar cualquier distribución que admita cualquiera de las versiones anteriores de administradores de servicios del sistema. Una vez que se reconoce el sistema, instala un script de inicio adecuado que proporciona persistencia para la RAT. Este script se ejecuta una vez que se completa la configuración de la red e inicia la puerta trasera. Registro del servicio SystemD Para RedHat, sistemas basados ​​en RedHat y Ubuntu, los scripts de inicio de servicio utilizados para la persistencia verifican la presencia del binario chkconfig. Esta es una forma de indicar que la inicialización se realiza con SysV en lugar de Systemd. Si no existe, el implante abrirá o creará el archivo de script “/etc/rc.d/rc.local” y se agregará a la cadena de ejecución que ejecuta la puerta trasera durante la inicialización del sistema. Si existe, la ruta SysV está implícita y el malware crea los scripts de persistencia en “/etc/init.d”. Comunicación C2 La versión Linux de DinodasRAT se comunica con el C2 de la misma manera que la versión Windows. Se comunica a través de TCP o UDP. El dominio C2 está codificado en binario: el servidor y el puerto C2 están codificados en el implante. DinodasRAT tiene un intervalo de tiempo para enviar la información de regreso al C2, aunque no es un intervalo fijo para todos los usuarios o todas las conexiones. Si el usuario que ejecuta el implante es root (EUID = 0), el implante no espera a enviar la información al C2. En el caso de un no superusuario con la configuración establecida en checkroot, esperará dos minutos para una espera «corta» (predeterminada) y 10 horas para una espera «larga». La espera «larga» se activa cuando hay una conexión remota al servidor infectado procedente de una de las direcciones IP configuradas en C2. Para comunicarse con el servidor C2 y enviar cualquier información, el implante sigue una estructura de paquetes de red con muchos campos, pero aquí están los campos relevantes de la estructura: Versión simplificada del paquete de red Dinodas Aquí hay una lista de comandos C2 que DinodasRAT reconoce: ID Función Comando 0x02 DirClass Enumere el contenido del directorio. 0x03 DelDir Eliminar directorio. 0x05 UpLoadFile Sube un archivo al C2. 0x06 StopDownLoadFile Detener la carga del archivo. 0x08 DownLoadFile Descarga el archivo remoto al sistema. 0x09 StopDownFile Detener la descarga del archivo. 0x0E DealChgIp Cambia la dirección remota C2. 0x0F CheckUserLogin Verifica los usuarios conectados. 0x11 EnumProcess Enumerar los procesos en ejecución. 0x12 StopProcess Mata un proceso en ejecución. 0x13 EnumService Utilice chkconfig y enumere todos los servicios disponibles. 0x14 ControlService Controla un servicio disponible. Si se pasa 1 como argumento, iniciará un servicio, 0 lo detendrá, mientras que 2 detendrá y eliminará el servicio. 0x18 DealExShell Ejecute el comando de shell y envíe su salida a C2. 0x19 ExecuteFile Ejecuta una ruta de archivo especificada en un hilo separado. 0x1A Comunicación DealProxy Proxy C2 a través de un proxy remoto. 0x1B StartShell Coloca un shell para que el actor de amenazas interactúe con él. 0x1C ReRestartShell Reinicia el shell mencionado anteriormente. 0x1D StopShell Detiene la ejecución del shell actual. 0x1E WriteShell Escribe comandos en el shell actual o crea uno si es necesario. 0x27 DealFile Descargue y configure una nueva versión del implante. 0x28 DealLocalProxy Enviar «ok». 0x2B ConnectCtl Tipo de conexión de control. 0x2C ProxyCtl Controla el tipo de proxy. 0x2D Trans_mode Establece u obtiene el modo de transferencia de archivos (TCP/UDP). 0x2E Desinstalar Desinstale el implante y elimine cualquier artefacto del sistema. Comando para desinstalarse del sistema infectado Cifrado La versión Linux de DinodasRAT también comparte características de cifrado con la versión de Windows. Para el cifrado y descifrado de la comunicación entre el implante y el C2, así como el cifrado de datos, utiliza las funciones de la biblioteca libqq qq_crypt de Pidgin. Esta biblioteca utiliza el algoritmo de cifrado Tiny (TEA) en modo CBC para cifrar y descifrar los datos, lo que facilita la transferencia entre plataformas. El implante Linux también comparte dos de las claves utilizadas en la versión de Windows: Para cifrado C2: A1 A1 18 AA 10 F0 FA 16 06 71 B3 08 AA AF 31 A1 Para cifrado de nombres: A0 21 A1 FA 18 E0 C1 30 1F 9F C0 A1 A0 A6 6F B1 IP de dominio de infraestructura Visto por primera vez Actualización del registrador ASN.centos-yum[.]Com 199.231.211[.]19 4 de mayo de 2022 18978 Name.com, Inc. La infraestructura actualmente utilizada por las versiones Linux de DinodasRAT parecía estar en funcionamiento en el momento en que se analizaba este implante. Identificamos una dirección IP que se resuelve para los dominios C2 de las variantes de Windows y Linux. La versión de Windows de DinodasRAT utiliza el dominio update.microsoft-settings[.]com, que se resuelve en la dirección IP 199.231.211[.]19. Esta dirección IP también se resuelve como update.centos-yum[.]com, que (curiosamente) utiliza el mismo patrón de subdominio y dominio de actualización del sistema operativo. Víctimas En nuestros datos de telemetría y seguimiento continuo de esta amenaza desde octubre de 2023, hemos observado que los países y territorios más afectados son China, Taiwán, Turquía y Uzbekistán. Todos los productos Kaspersky detectan esta variante de Linux como HEUR:Backdoor.Linux.Dinodas.a. Conclusión En octubre de 2023, ESET publicó un artículo sobre una campaña denominada Operación Jacana dirigida a usuarios de Windows. Como parte de nuestros continuos esfuerzos de monitoreo, descubrimos que los operadores de Jacana poseen y actúan sobre su capacidad para infectar la infraestructura de Linux con una nueva variante de Linux DindoasRAT, previamente desconocida y no detectada, cuyo código e indicadores de red de compromiso se superponen con las muestras de Windows descritas por ESET. No recopilan información del usuario para gestionar infecciones. En cambio, se recopila y utiliza información específica del hardware para generar un UID, lo que demuestra que el caso de uso principal de DinodasRAT es obtener y mantener el acceso a través de servidores Linux en lugar de reconocimiento. La puerta trasera es completamente funcional y otorga al operador un control total sobre la máquina infectada, lo que permite la filtración de datos y el espionaje. Un análisis más detallado de las últimas versiones de DinodasRAT está disponible para los clientes de nuestros informes privados de Threat Intelligence. Si tiene alguna pregunta, comuníquese con crimewareintel@kaspersky.com. Indicadores de compromiso Basado en host: Basado en red:

Source link