Investigadores de seguridad de Netomize han identificado una nueva variante de malware, bautizada como 'Shulfar', que utiliza un cifrado TCP personalizado para ocultar sus comunicaciones con los servidores de comando y control (C&C).
El hallazgo, detallado en un informe publicado en blog.netomize.ca, pone en duda las conclusiones recientes de Splunk sobre una amenaza similar. Aunque Splunk informó recientemente sobre una variante de la familia de malware Gh0stRat distribuida a través del adware CloverPlus, los investigadores de Netomize sostienen que esta nueva amenaza es distinta debido a diferencias significativas en su estructura de código, funcionalidad y protocolos de comunicación.
El equipo de Netomize nombró al malware 'Shulfar', que es el nombre de su exportación DLL ('RAFlush') escrito al revés. Los investigadores señalaron que el malware utiliza dos canales de comunicación distintos: uno a través del protocolo HTTP y otro mediante una carga útil (payload) de paquetes TCP personalizados.
Comunicación cifrada con el C&C
El malware funciona como una DLL de 32 bits escrita en C. Según el informe de Netomize, el protocolo TCP personalizado emplea un algoritmo de cifrado sencillo que utiliza XOR y una operación de suma con una clave de un solo byte para cifrar la carga útil.
Mediante el uso del módulo de detección 'yara' de PacketSmith, los investigadores lograron identificar el tráfico cifrado sin necesidad de una clave de descifrado específica. El malware se comunica con un servidor C&C en la dirección IP 107.163.56.251 a través del puerto TCP 6658.
Los investigadores analizaron una muestra del malware que presenta características similares a la variante de Gh0stRat mencionada por el equipo de investigación de amenazas de Splunk. El archivo identificado tiene un hash SHA-256: ec6ef50587a847d4a655e9bfc5c1aee078005c0774a3e6fa23949cc4d8fbad3.
Antes de transmitir la información al servidor, el malware cifra un paquete que contiene datos específicos del sistema utilizando una clave fija de un solo byte (0x64). El paquete descifrado revela el nombre del procesador, la memoria física total y la versión del sistema operativo.
La estructura del paquete también incluye una comprobación de un archivo de configuración específico ubicado en 'C:\qylxnhy\lang.ini'. Si el archivo existe y cumple con ciertos criterios, el malware recupera su búfer; de lo contrario, utiliza por defecto una dirección de servidor C&C predefinida en el código.