Resumen
Latrodectus es un descargador descubierto por primera vez por Walmart en octubre de 2023. El Malware se hizo muy famoso debido a sus similitudes con el famoso Malware IcedID , no solo en el código en sí sino también en la infraestructura, como informaron anteriormente Proofpoint y Team Cymru S2.
El malware generalmente se entrega a través de campañas de spam de Correo electrónico realizadas por dos actores de amenazas específicos: TA577 y TA578. Entre las diversas características que contiene se encuentra la capacidad de descargar y ejecutar cargas útiles adicionales, recopilar y enviar información del sistema al C2, finalizar procesos y más. En julio de 2024 también se observó la entrega de Latrodectus por un tejón BRC4.
Durante las actividades de búsqueda de Threat Labs, descubrimos una versión Nuevo de la carga útil de Latrodectus, la versión 1.4. Las actualizaciones de malware incluyen un enfoque diferente de desofuscación de cadenas, un punto de conexión Nuevo C2, dos comandos de puerta trasera Nuevo y más.
En este blog, nos centraremos en las características agregadas/actualizadas en esta versión Nuevo.
Análisis de archivos JavaScript
La primera carga útil de la cadena de infección es un archivo JavaScript ofuscado utilizando un enfoque similar al utilizado por otras campañas de Latrodectus. La técnica de ofuscación se emplea mediante la adición de varios comentarios en el archivo, lo que dificulta su análisis, así como el aumento considerable del tamaño del archivo.
El código relevante está presente entre los comentarios basura y, una vez eliminado del archivo, podemos ver el código que se ejecutaría.
El malware busca líneas que comiencen con la cadena "/////", las coloca en un búfer y las ejecuta como una función JS. A continuación, la función ejecutada descarga un archivo MSI de un servidor remoto y lo ejecuta/instala.
Análisis de archivos MSI
Una vez ejecutado/instalado, el archivo MSI utiliza la herramienta rundll32.exe de Windows para cargar una DLL llamada "nvidia.dll" y llama a una función denominada "AnselEnableCheck" exportada por este archivo DLL. La DLL maliciosa se almacena dentro de un archivo CAB llamado "disk1", presente en el propio archivo MSI:
Análisis de Crypter
En un intento de ofuscar la carga útil principal, el "nvidia.dll" utiliza un cifrador llamado Dave. Este encriptador existe desde hace mucho tiempo y fue utilizado en el pasado por otros programas maliciosos como Emotet, BlackBasa y versiones anteriores de Latrodectus.
El cifrador almacena la carga útil que se ejecutará en un recurso o en una sección. En la muestra analizada, la carga útil se almacena en una sección denominada "V+N".
Los pasos utilizados para desofuscar, cargar y ejecutar la carga útil final son bastante simples. El malware mueve una clave a la pila y resuelve las funciones de la API de Windows VirtualAlloc, LoadLibrary y GetProcAddress.
A continuación, asigna memoria mediante la función VirtualAlloc y realiza una operación XOR de varios bytes con los datos de la sección mencionada utilizando la clave establecida anteriormente y el resultado de la operación es la carga útil final. Los siguientes pasos implican alinear la carga útil en la memoria y llamar a su función principal.
Dado que el cifrador primero copia la carga original a la memoria asignada antes de que se realicen los otros pasos, simplemente se puede volcar el contenido de la primera memoria asignada y obtener la carga útil final. Aquí se puede encontrar un script para desempaquetar/desofuscar estáticamente las cargas útiles de Latrodectus utilizando el cifrado Dave.
La carga final es un archivo DLL y el código del cifrado llama a su función DllMain. El siguiente paso es la ejecución de la función exportada "AnselEnableCheck", que es responsable de la ejecución de la carga útil final.
Al observar la carga útil final, notamos que tiene múltiples funciones exportadas, aunque dado que todas tienen el mismo RVA, no importa cuál se llame.