El troyano
DanaBot modular de rápido crecimiento
ha experimentado nuevos cambios. La versión lanzada a fines de enero de 2019 implementa un protocolo de comunicación completamente nuevo que agrega varios niveles de cifrado a la comunicación del troyano y su servidor C&C. Además, la arquitectura de DanaBot y los ID de campaña se han cambiado.
DanaBot Evolution
Después de ser
descubierto en mayo de 2018 como parte de una campaña de spam dirigida a Australia, DanaBot apareció en varios otros ataques, incluida una campaña de spam en
Polonia, Italia, Alemania, Austria y Ucrania , así como en los
Estados Unidos . En las campañas europeas, la funcionalidad del troyano se ha mejorado con nuevos complementos y
capacidades de spam .
El 25 de enero, encontramos archivos ejecutables inusuales relacionados con DanaBot en los datos de telemetría. Una comprobación adicional reveló que estos archivos binarios son en realidad versiones de DanaBot, pero utilizan un protocolo de comunicación diferente para comunicarse con el servidor C&C. Desde el 26 de enero, los operadores del troyano han dejado de ensamblar archivos binarios con el antiguo protocolo.
Al momento de escribir, la nueva versión de DanaBot se distribuía en dos escenarios:
- como "actualizaciones" entregadas a las víctimas de DanaBot;
- por correo no deseado (en Polonia).
Nuevo protocolo de comunicación
En el protocolo, que se utilizó hasta el 25 de enero, los paquetes no se cifraron, como se muestra en la Figura 1.
Figura 1. Una captura de paquetes que muestra el antiguo protocolo con datos en forma no cifradaUna vez completado, DanaBot utiliza algoritmos de cifrado AES y RSA en comunicación con el servidor C&C. El nuevo protocolo de comunicación es más complejo porque utiliza varios niveles de encriptación, como se muestra en la figura a continuación.
Figura 2. Esquema del nuevo protocolo de comunicación DanaBotEstos cambios evitan la detección utilizando firmas de red existentes y dificultan la redacción de nuevas reglas para los sistemas de detección y prevención de intrusiones. Además, sin acceso a las claves RSA correspondientes, no es posible decodificar los paquetes enviados o recibidos; por lo tanto, los archivos RSAP de los sistemas de análisis basados en la nube (como
ANY.RUN ) no son adecuados para la investigación.
Figura 3. Capture un paquete con un nuevo protocolo de comunicaciónCada paquete enviado por el cliente tiene un encabezado de 24 (0x18) bytes:

Para cada paquete, el encabezado es seguido por los datos del paquete encriptados por AES, luego un valor de 4 bytes que indica el tamaño de cambio del AES, y luego la clave AES, encriptada por RSA. Todos los paquetes están encriptados con diferentes claves AES.
Las respuestas del servidor usan el mismo formato. A diferencia de las versiones anteriores, los datos del paquete en las respuestas del servidor no corresponden a ninguna estructura en particular (con algunas excepciones).
Estructura del paquete de datos
La estructura de datos del paquete anterior fue descrita en detalle por
Proofpoint en octubre de 2018. En la última versión de DanaBot, este esquema está ligeramente modificado, como se muestra en la figura a continuación.
Figura 4. Comparación de la estructura de paquetes de datos en las versiones antigua y nueva de DanaBotCambios en la arquitectura de DanaBot
Además del protocolo de comunicación, DanaBot tiene una arquitectura ligeramente modificada. Las versiones anteriores del troyano incluían un componente que descargaba y ejecutaba el módulo principal. Luego, el módulo principal descargó y ejecutó complementos y configuraciones.
En la última versión, estas funciones son realizadas por un nuevo gestor de arranque, que se utiliza para descargar todos los complementos junto con el módulo principal. La persistencia se garantiza registrando el componente del cargador de arranque como un servicio.
Figura 5. Comparación de la arquitectura de las versiones antiguas y nuevas de DanaBotEquipos
Según el análisis, el componente del cargador utiliza los siguientes comandos:
- 0x12C - Hola El primer comando enviado desde el cliente al servidor.
- 0x12D: carga el componente iniciador de 32/64 bits
- 0x12E: solicita una lista de complementos y archivos de configuración
- 0x12F - cargar complementos / archivos de configuración
Los complementos descargados y los archivos de configuración se cifran con la clave AES obtenida de la ID del cliente. Además, los complementos se archivan en formato ZIP con compresión LZMA, mientras que los archivos de configuración se archivan con zlib.
Los comandos con ID 0x130-0x134 son enviados por el módulo principal:
- 0x130: transfiera la información recopilada a un servidor C&C (por ejemplo, una captura de pantalla de la computadora de la víctima; datos del sistema)
- 0x131: transfiera la información recopilada a un servidor C&C (por ejemplo, una lista de archivos en el disco duro de una computadora infectada)
- 0x132: solicita más comandos del servidor C&C. Hay alrededor de 30 comandos típicos de puertas traseras, incluido el lanzamiento de complementos, la recopilación de información del sistema y el cambio de archivos en el sistema cliente
- 0x133: actualice la lista de servidores C&C a través del proxy Tor
- 0x134: se desconoce el destino exacto, lo más probable es que se utilice para la comunicación entre complementos y un servidor C&C
Cambiar ID de campaña
Un estudio anterior mostró que DanaBot se distribuye bajo diferentes ID.
En la versión anterior de DanaBot, se utilizaron
unos 20 identificadores de campaña . En la última versión, los identificadores han cambiado ligeramente. A partir del 5 de febrero de 2019, estamos observando las siguientes identificaciones:
- ID = 2 aparentemente, una versión de prueba que sirve una pequeña cantidad de archivos de configuración, sin inyecciones web
- ID = 3 se distribuye activamente, dirigido a usuarios en Polonia e Italia, sirve todos los archivos de configuración e inyecciones web para fines polacos e italianos
- ID = 5 sirve archivos de configuración para fines australianos
- ID = 7 se aplica solo a Polonia, sirve inyecciones web para fines polacos
- ID = 9, aparentemente, también es una versión de prueba con distribución limitada y sin una orientación especial, sirve un número limitado de archivos de configuración, sin inyecciones web
Conclusiones
En 2018, observamos el desarrollo de DanaBot en términos de
distribución y
funcionalidad . A principios de 2019, el troyano sufrió cambios "internos", lo que indica el trabajo activo de sus creadores. Las actualizaciones recientes sugieren que los creadores de DanaBot están haciendo esfuerzos para evitar el descubrimiento a nivel de red. Es posible que los autores del troyano presten atención a los estudios publicados con el fin de realizar cambios en el código de inmediato, antes que los desarrolladores de productos por seguridad.
Los productos ESET detectan y bloquean todos los componentes y complementos de DanaBot. Los nombres de detección se dan en la siguiente sección.
Indicadores de compromiso (IoC)
Servidores C&C utilizados por la nueva versión de DanaBot84.54.37[.]102
89.144.25[.]243
89.144.25[.]104
178.209.51[.]211
185.92.222[.]238
192.71.249[.]51
Servidores para inyección web y redireccionamiento47.74.249[.]106
95.179.227[.]160
185.158.249[.]144
Ejemplos de hashLas nuevas compilaciones de DanaBot se lanzan regularmente, por lo que podemos proporcionar solo una parte de los hashes:
98C70361EA611BA33EE3A79816A88B2500ED7844
Win32 / TrojanDropper.Danabot.O
Cargador de arranque (x86), ID = 3
0DF17562844B7A0A0170C9830921C3442D59C73C
Win32 / Spy.Danabot.L
Cargador de arranque (x64), ID = 3
B816E90E9B71C85539EA3BB897E4F234A0422F85
Win64 / Spy.Danabot.G
Cargador de arranque (x86), ID = 9
5F085B19657D2511A89F3172B7887CE29FC70792
Win32 / Spy.Danabot.I
Cargador de arranque (x64), ID = 9
4075375A08273E65C223116ECD2CEF903BA97B1E
Win64 / Spy.Danabot.F
Módulo principal (x86)
28139782562B0E4CAB7F7885ECA75DFCA5E1D570
Win32 / Spy.Danabot.K
Módulo principal (x64)
B1FF7285B49F36FE8D65E7B896FCCDB1618EAA4B
Win64 / Spy.Danabot.C
ComplementosRDPWrap
890B5473B419057F89802E0B6DA011B315F3EF94
Win32 / Spy.Danabot.H
Stealer (x86)
E50A03D12DDAC6EA626718286650B9BB858B2E69
Win32 / Spy.Danabot.C
Stealer (x64)
9B0EC454401023DF6D3D4903735301BA669AADD1
Win64 / Spy.Danabot.E
Sniffer
DBFD8553C66275694FC4B32F9DF16ADEA74145E6
Win32 / Spy.Danabot.B
VNC
E0880DCFCB1724790DFEB7DFE01A5D54B33D80B6
Win32 / Spy.Danabot.D
TOR
73A5B0BEE8C9FB4703A206608ED277A06AA1E384
Win32 / Spy.Danabot.G