Introducción
DTrack es un backdoor utilizado por el grupo Lazarus. Descubierto en 2019, tres años después sigue en uso. El grupo Lazarus lo ha utilizado para una gran variedad de objetivos. Por ejemplo, hemos visto su uso en entornos financieros con cajeros automáticos vulnerados, en ataques a centrales nucleares y también en ataques de ransomware selectivos. En resumen, dondequiera que el grupo Lazarus cree que puede conseguir algún beneficio financiero.
DTrack permite a los delincuentes cargar, descargar, iniciar o eliminar archivos en el host de la víctima. Entre los archivos descargados y lanzados ya detectados anteriormente como parte del conjunto de herramientas DTrack hay un keylogger y un módulo para tomar capturas de pantalla y recopilar datos sobre el sistema de la víctima. Este conjunto de herramientas puede ayudar a los delincuentes a implementar movimientos laterales en la infraestructura de las víctimas para recolectar información comprometedora, entre otras cosas.
Hace poco, como parte de nuestro servicio de informes de crimeware, hemos publicado un nuevo informe privado sobre la actividad reciente de Dtrack. En este artículo público destacamos algunas de las principales conclusiones que también compartimos en este informe. Si tiene preguntas o desea más información sobre nuestro servicio de reportes de crimeware, escríbanos a crimewareintel@kaspersky.com.
¿Pero…cuál es la novedad?
El propio DTrack no ha cambiado mucho con el paso del tiempo. No obstante, hay algunos cambios interesantes que destacamos en esta entrada del blog. DTrack se esconde dentro de un ejecutable que parece un programa legítimo, y pasa por varias etapas de descifrado antes de que iniciar la carga útil del malware.
Primera etapa: código implantado
DTrack desempaqueta el malware en varias etapas. La segunda etapa está almacenada dentro del archivo PE del malware. Puede extraerla de dos maneras:
- mediante offset;
- mediante recursos.
La idea es que DTrack recupere la carga útil, leyéndola desde un offset dentro del archivo, o desde un recurso ubicado dentro del binario PE. A continuación, se muestra un ejemplo de pseudofunción descompilada que recupera los datos utilizando el enfoque basado en el offset.
Ejemplo de función de recuperación mediante offset de DTrack
Tras recuperar la ubicación de la siguiente etapa y su clave, el malware descifra el búfer (con un algoritmo RC4 modificado) y le pasa el control. Para averiguar el offset de la carga útil, su tamaño y las claves de descifrado, DTrack dispone de una estructura binaria especial, que llamamos “Decrypt config”, y que está oculta en un lugar poco visible del archivo PE.
Segunda etapa: shellcode
La carga útil de la segunda etapa consiste en un shellcode muy ofuscado, como puede verse a continuación.
Shellcode de la segunda etapa, con alto grado de ofuscación
El método de codificación utilizado por la segunda capa es diferente en cada muestra. Hasta ahora, hemos visto versiones modificadas de los algoritmos RC4, RC5 y RC6. Los valores de la carga útil de la tercera etapa y su clave de descifrado se obtienen leyendo de nuevo la “Decrypt config”.
La novedad de las recientes variantes de DTrack es que la carga útil de la tercera etapa no es necesariamente la carga útil final, sino que puede ser otra unidad de datos binarios que consiste en una configuración binaria y al menos un shellcode, que a su vez descifra y ejecuta la carga útil final.
Tercera etapa: shellcode y binario final
El shellcode tiene algunos trucos interesantes de ofuscación para dificultar el análisis. Cuando se inicia, busca el principio de la clave (para descifrar la carga útil final). Por ejemplo, cuando el comienzo de la clave es 0xDEADBEEF, el shellcode busca la primera ocurrencia de 0xDEADBEEF.
Ejemplo de rutina de descifrado por fragmentos
Una vez encontrada la clave, el shellcode la utiliza para descifrar los 8 bytes ubicados después del final de la clave, que forman otro bloque de configuración con el tamaño final de la carga útil y el offset de su punto de entrada. El bloque de configuración va seguido de una carga útil de PE cifrada que comienza en el offset del punto de entrada, después del descifrado con el algoritmo personalizado.
Carga útil final
Al finalizar el descifrado de la carga útil final (una DLL), se la carga mediante el vaciado de procesos en “explorer.exe“. En las muestras anteriores de DTrack, las bibliotecas que se cargaban eran cadenas ofuscadas. Las versiones más recientes utilizan el hashing de la API para cargar las bibliotecas y funciones adecuadas. Otro pequeño cambio es que en lugar de utilizar seis servidores C2, ahora usan tres. El resto de la funcionalidad de la carga útil sigue siendo la misma.
Infraestructura
Si observamos los nombres de dominio utilizados como C2, en algunos casos notamos un patrón. Por ejemplo, utilizan un color y el nombre de un animal (por ejemplo, cabra rosa, oso púrpura, conejo salmón, etc.). A continuación, se muestran los peculiares nombres asignados a las partes de la infraestructura de DTrack:
Dominio | IP | Visto por primera vez | ASN |
pinkgoat.com | 64.190.63.111 | 2022‑03‑03 15:34 | AS47846 |
purewatertokyo.com | 58.158.177.102 | 2022‑05‑20 16:07 | AS17506 |
purplebear.com | 52.128.23.153 | 2021‑01‑08 08:37 | AS19324 |
salmonrabbit.com | 58.158.177.102 | 2022‑05‑20 09:37 | AS17506 |
Víctimas
Según la telemetría de KSN (Kaspersky Security Network), vemos que DTrack está activo en Alemania, Brasil, India, Italia, México, Suiza, Arabia Saudita, Turquía y Estados Unidos, lo que indica que se está extendiendo a más partes del mundo. Los sectores objetivo son la educación, la fabricación de productos químicos, los centros de investigación gubernamentales y los ministerios gubernamentales, los proveedores de servicios de TI, los proveedores de servicios públicos y las telecomunicaciones.
Conclusiones
DTrack sigue siendo una puerta trasera que el grupo Lazarus usa de forma activa. Las modificaciones realizadas en la forma de empaquetar el malware demuestran que Lazarus sigue valorando a DTrack como uno de sus activos importantes. A pesar de ello, Lazarus no ha cambiado mucho desde su descubrimiento en 2019. El análisis de las víctimas deja claro que las operaciones se han ampliado a Europa y América Latina, una tendencia que observamos con cada vez mayor frecuencia.
IOCs
C2 domains
pinkgoat[.]com
purewatertokyo[.]com
purplebear[.]com
salmonrabbit[.]com
MD5
1A74C8D8B74CA2411C1D3D22373A6769
67F4DAD1A94ED8A47283C2C0C05A7594
DTrack apunta sus actividades a Europa y América Latina