Troyano DanaBot se actualiza con nueva comunicación C&C | WeLiveSecurity

Troyano DanaBot se actualiza con nueva comunicación C&C

Investigadores de ESET descubrieron nuevas y actualizadas versiones del troyano DanaBot que presentan un protocolo de comunicación con el C&C más complejo y ligeras modificaciones tanto en su arquitectura como en los ID de las campañas.

Investigadores de ESET descubrieron nuevas y actualizadas versiones del troyano DanaBot que presentan un protocolo de comunicación con el C&C más complejo y ligeras modificaciones tanto en su arquitectura como en los ID de las campañas.

El troyano modular de rápida evolución conocido como DanaBot, ha sufrido cambios adicionales, y en su última versión cuenta con un protocolo de comunicación completamente nuevo.  El protocolo, introducido a DanaBot a fines de enero de 2019, añade varias capas de cifrado a la comunicación con el C&C de DanaBot.

Además de los cambios en la comunicación, la arquitectura de DanaBot y los ID de la campaña también han sido modificados.

La evolución de DanaBot

Desde que fue descubierto en mayo de 2018 como parte de una campaña de spam dirigida a Australia, se ha visto mucha actividad de DanaBot; apareciendo en campañas de spam malicioso en Polonia, Italia, Alemania, Austria y Ucrania, así como también en los Estados Unidos. En las campañas europeas se ha podido ver cómo el troyano ha expandido sus capacidades con nuevos plugins y funcionalidades para el envío de spam.

El 25 de enero de 2019 notamos en la telemetría de ESET ejecutables relacionados a DanaBot inusuales. Luego de inspeccionarlos, pudimos revelar que estos binarios eran, de hecho, variantes de DanaBot, pero que utilizaban un protocolo de comunicación diferente para comunicarse con el servidor C&C. Desde el 26 de enero de 2019, los operadores de DanaBot dejaron de crear binarios con el antiguo protocolo.

Al momento de escribir este artículo, la nueva versión está siendo distribuidas en dos escenarios:

  • Como “actualizaciones” enviadas a víctimas de DanaBot existentes
  • A través de spam malicioso en Polonia

El nuevo protocolo de comunicación

En el protocolo de comunicación utilizado antes del 25 de enero, los paquetes no estaban cifrados de ninguna manera, como se puede apreciar en la Figura 1.

Figura 1 – Captura del paquete que muestra el antiguo protocolo con datos en texto plano

Siguiendo con los últimos cambios, DanaBot utiliza los algoritmos de cifrado AES y RSA en sus comunicaciones con el C&C. El nuevo protocolo de comunicación es complejo, ya que utiliza varias capas de cifrado. En la Figura 2 se describe el proceso de cifrado.

Figura 2 – Un diagrama del nuevo protocolo de comunicación de DanaBot

Estos cambios rompen firmas existentes basadas en la red y hacen que sea más difícil escribir nuevas reglas para los Sistemas de Prevención y Detección de Intrusos (IDPS, por sus siglas en inglés). También, sin acceso a las claves RSA correspondientes, es imposible decodificar paquetes enviados o recibidos; por lo tanto, archivos PCAP de sistemas de análisis basados en la nube (como ANY.RUN) se vuelven inutilizables para los investigadores.

Figura 3 – Estructura de un paquete con el nuevo protocolo de comunicación

El encabezado de cada paquete enviado por el cliente es de un byte de tamaño y su valor es de 24 (0x18):

OffsetSize (bytes)Meaning
0x00x8Size of the data after this header
0x80x8Random value
0x100x8Sum of first two fields

Para cada paquete, el encabezado es seguido por paquetes de datos cifrados en AES, los siguientes 4-bytes indican el tamaño del relleno de AES, y finalmente la llave AES cifrada en RSA. Cada paquete es cifrado con una clave AES diferente.

La respuesta del servidor utiliza el mismo formato. A diferencia de versiones previas, los paquetes de datos en las respuestas del servidor no siguen ningún diseño específico (salvo algunas excepciones).

Diseño de paquete de datos

El anterior diseño de paquete de datos fue detallado por Proofpoint en octubre de 2018. En la última versión de DanaBot el diseño está ligeramente modificado, tal como se puede apreciar en la Figura 4.

Figura 4 – Comparación del diseño de paquete de datos entre las versiones previas y las más recientes de DanaBot

Cambios en la arquitectura de DanaBot

Junto al cambio en el protocolo de comunicación, DanaBot también realizó algunos cambios en su arquitectura. En las versiones previas de DanaBot se incluía un componente que descargaba y ejecutaba el módulo principal. Luego, este módulo descargaba y ejecutaba plugins y configuraciones.

La última versión utiliza un nuevo componente loader para descargar todos los plugins junto con el módulo principal. La persistencia la logra al registrar el componente loader como servicio.

Figura 5 – Comparación de la arquitectura de versiones previas y actuales de DanaBot

Comandos

De acuerdo a nuestros análisis, el componente loader utiliza los siguientes comandos:

  • 0x12C – Hola. Primer comando enviado por el cliente al servidor
  • 0x12D – Descargar el componente que ejecuta la amenaza de 32/64-bit
  • 0x12E – Solicitar lista de plugins y archivos de configuración
  • 0x12F – Descargar archivos de configuración/plugin

Los plugins y los archivos de configuración descargados están cifrados mediante el uso de claves AES provenientes del ID de cliente. Adicionalmente, los plugins son comprimidos en formato ZIP utilizando compresión LZMA, mientras que los archivos de configuración son comprimidos utilizando zlib.

Comandos con números de ID 0x130 – 0x134 son enviados por el módulo principal:

  • 0x130 – Subir información recolectada al servidor C&C (por ejemplo: capturas de pantalla de la computadora de la víctima; información del sistema)
  • 0x131 – Subir información recolectada al servidor C&C (por ejemplo: lista de archivos en el disco rígido de la víctima)
  • 0x132 – Solicitar al servidor C&C comandos adicionales. Hay cerca de 30 comandos típicos de backdoors disponibles, incluyendo ejecución de plugins, recopilación de información detallada del sistema y modificación de archivos en el sistema cliente
  • 0x133 – Actualizar la lista del servidor C&C a través del proxy de Tor
  • 0x134 – Propósito exacto desconocido; principalmente utilizado para comunicación entre plugins y el C&C

Cambios en los ID de la campaña

Investigaciones previas han sugerido que DanaBot se distribuye bajo varios ID de “afiliados” o “campañas”.

En la versión previa de DanaBot, fueron utilizados al menos 20 IDs de campaña diferentes. En la última versión, los ID de la campaña se han modificado ligeramente. A partir del 5 de febrero de 2019, hemos observado los siguientes ID activos:

  • ID=2 parece ser una versión de prueba, ofreciendo un número limitado de archivos de configuración y ningún webinject
  • ID=3 ha sido propagado de manera activa, dirigido a usuarios tanto de Polonia como de Italia, proporcionando todos los archivos de configuración y webinjects tanto para blancos de Polonia como de Italia
  • ID=5 proporciona archivos de configuración para blancos de Australia
  • ID=7 está siendo distribuido solo en Polonia, proporcionando webinjects para blancos de Polonia
  • ID=9 parece ser otra versión de prueba, con una distribución limitada y sin un blanco específico, proporcionando un número limitado de archivos de configuración y ningún webinject

Conclusión

En 2018, vimos a DanaBot expandirse tanto en su forma de propagarse como en sus funcionalidades. Durante el inicio del 2019 se ha visto que el troyano ha sido sometido a cambios “internos”, lo cual indica un desarrollo activo por sus autores. Las últimas actualizaciones sugieren que los autores están esforzándose para evadir la detección a nivel de red, y muy posiblemente prestando atención a las investigaciones publicadas y realizando cambios para no ser detectado.

Los sistemas de ESET detectan y bloquean todos los componentes y plugins de DanaBot bajo los nombres de detección listados en la sección IoCs.

Esta investigación fue llevada adelante por Kaspars Osis, Tomáš Procházka y Michal Kolář.

Indicadores de compromiso (IoCs)

Servidores C&C utilizados por la nueva versión de DanaBot

  • 84.54.37[.]102
  • 89.144.25[.]243
  • 89.144.25[.]104
  • 178.209.51[.]211
  • 185.92.222[.]238
  • 192.71.249[.]51

Webinject y servidores redirigidos

  • 47.74.249[.]106
  • 95.179.227[.]160
  • 185.158.249[.]144

Ejemplo de hashes

Nótese que desde que los nuevos componentes de DanaBot fueron lanzados de forma regular, compartimos solo una muestra de hashes.

ComponentSHA-1ESET detection name
Dropper98C70361EA611BA33EE3A79816A88B2500ED7844Win32/TrojanDropper.Danabot.O
Loader (x86), campaign ID=30DF17562844B7A0A0170C9830921C3442D59C73CWin32/Spy.Danabot.L
Loader (x64), campaign ID=3B816E90E9B71C85539EA3BB897E4F234A0422F85Win64/Spy.Danabot.G
Loader (x86), campaign ID=95F085B19657D2511A89F3172B7887CE29FC70792Win32/Spy.Danabot.I
Loader (x64), campaign ID=94075375A08273E65C223116ECD2CEF903BA97B1EWin64/Spy.Danabot.F
Main module (x86)28139782562B0E4CAB7F7885ECA75DFCA5E1D570Win32/Spy.Danabot.K
Main module (x64)B1FF7285B49F36FE8D65E7B896FCCDB1618EAA4BWin64/Spy.Danabot.C

Plugins

PluginSHA-1ESET detection name
RDPWrap890B5473B419057F89802E0B6DA011B315F3EF94Win32/Spy.Danabot.H
Stealer (x86)E50A03D12DDAC6EA626718286650B9BB858B2E69Win32/Spy.Danabot.C
Stealer (x64)9B0EC454401023DF6D3D4903735301BA669AADD1Win64/Spy.Danabot.E
SnifferDBFD8553C66275694FC4B32F9DF16ADEA74145E6Win32/Spy.Danabot.B
VNCE0880DCFCB1724790DFEB7DFE01A5D54B33D80B6Win32/Spy.Danabot.D
TOR73A5B0BEE8C9FB4703A206608ED277A06AA1E384Win32/Spy.Danabot.G

Discusión