Introducción
El panorama del malware está en constante evolución. Nuevas familias aparecen, otras desaparecen. Algunas son efímeras, otras permanecen activas durante bastante tiempo. Para monitorear estas evoluciones, no solo nos basamos en las muestras detectadas, sino que también tenemos bajo activa y constante supervisión las redes de bots y los foros clandestinos.
Esto nos ha permitido detectar nuevas muestras de Emotet, un nuevo cargador apodado DarkGate y una nueva campaña del infosecuestrador LokiBot. Hemos escrito informes sobre los tres. En este artículo de nuestro blog ofrecemos un resumen de ellos.
Si desea obtener más información sobre nuestro servicio para hacer denuncias de crimeware, escríbanos a crimewareintel@kaspersky.com.
DarkGate
En junio de 2023, un conocido desarrollador de malware publicó un anuncio en un conocido foro de la Darknet. En la publicación, el desarrollador se jactaba de haber desarrollado un cargador en el que trabajó desde 2017 durante más de 20 000 horas. Las principales características, que superan la funcionalidad típica de un descargador, incluyen supuestamente (entre otras):
- Hidden VNC;
- exclusión de Windows Defender;
- robo del historial del navegador;
- proxy inverso;
- gestor de archivos;
- robo de tokens de Discord.
La lista completa de funciones anunciadas está disponible en nuestro informe privado.
La muestra que obtuvimos no tiene todas estas características, pero esto no importa mucho, ya que éstas se activan o desactivan en el constructor. Sin embargo, pudimos reconstruir toda la cadena de infección (que consta de 4 etapas) hasta la carga de la carga útil final que es el propio DarkGate.
- Script descargador en VBS: El script es bastante sencillo. Establece algunas variables de entorno para ofuscar las invocaciones de comandos posteriores. A continuación, se descargan del C2 dos archivos, Autoit3.exe y script.au3, tras lo cual se ejecuta Autoit3.exe con script.au3 como argumento.
- Script AutoIT V3: AutoIT V3 es un lenguaje de scripting gratuito de tipo BASIC. Los autores de malware lo usan a menudo, ya que les permite simular pulsaciones de teclas, movimientos del ratón, etc. El script que se ejecuta está ofuscado, pero en última instancia asigna memoria para el shellcode incrustado y lo ejecuta.
- Shellcode: El shellcode es bastante sencillo: construye un archivo PE en la memoria, resuelve importaciones dinámicamente y le transfiere el control.
- Ejecutor de DarkGate (el archivo PE construido por el shellcode): El ejecutor carga el archivo script.au3 en la memoria y localiza un blob cifrado dentro del script. A continuación, se descifra el blob cifrado (mediante una clave XOR y una operación NOT final). El resultado es un fichero PE cuya tabla de importación se resuelve dinámicamente. El resultado final es el cargador DarkGate.
El cargador de DarkGate tiene una serie de variables globales (en realidad una TStringList de Delphi), que comprende 17 variables que describen la funcionalidad central del malware:
- variable que se establece si se encuentra un antivirus;
- variable que se establece si se encuentra un entorno virtual;
- variable que se establece si se encuentra un procesador Xeon;
- el número de puerto C2.
La lista completa de variables figura en nuestro informe privado. La funcionalidad principal no incluye la carga de malware, que se implementa en un módulo separado.
Lo que destaca además es la forma en que se cifran las cadenas. Cada cadena se cifra con una clave única y una versión personalizada de la codificación Base64 (utilizando un conjunto de caracteres personalizado).
LokiBot
LokiBot es un malware para robar información que salió a la luz por primera vez en 2016 y sigue activo hasta ahora. Está diseñado para robar credenciales de varios programas de software (por ejemplo, navegadores, clientes FTP, etc.). Hace poco detectamos una campaña de phishing dirigida a empresas navieras, que tiene el objetivo de instalar LokiBot.
En los casos que investigamos, las víctimas recibían un correo electrónico que parecía proceder de una contraparte, en el que se indicaba que debían abonarse los gastos portuarios. El correo electrónico tiene adjunto un documento Excel. Como de costumbre, al abrirlo se le pide al destinatario que habilite las macros. Sin embargo, se trata de una advertencia falsa, ya que el documento no contiene ninguna macro. En su lugar, intenta explotar CVE-2017-0199.
Esta vulnerabilidad permite abrir un documento remoto proporcionando un enlace. El resultado es la descarga de un documento RTF que a su vez explota otra vulnerabilidad, la CVE-2017-11882. Al explotarla, se descarga y ejecuta LokiBot.
Una vez ejecutado, recopila credenciales de diversas fuentes y las guarda en un búfer dentro del malware, tras lo cual las envía al C2. Los datos se envían mediante peticiones POST comprimidas con APLib. Tras enviar la información del sistema, el malware se pone a la espera de comandos C2 adicionales. Estos comandos pueden utilizarse para descargar malware adicional, ejecutar un keylogger, etc.
Emotet
Emotet es una conocida red de bots que, a pesar de haber sido desmantelada en 2021, volvió a resurgir. En su reciente oleada de ataques adoptaron el “vector de infección de OneNote”. Para aprovecharlo, envían correos electrónicos con archivos maliciosos de OneNote. Al abrirlos, aparece una imagen como la siguiente:
Al hacer clic en el botón de visualización se ejecuta el VBScript malicioso y ofuscado incrustado. El código desofuscado es bastante sencillo:
Como se puede ver, hay varios sitios que tienen la carga útil. El script los prueba todos hasta que encuentra uno que funciona, descarga la carga útil (una DLL), la guarda en el directorio temp, y la ejecuta con regsvc32.exe. A continuación, la DLL ejecutada carga un recurso (LXGUM) de su sección de recursos y lo descifra con un sencillo algoritmo “rolling XOR”, como se ilustra a continuación:
La carga útil descifrada es en realidad un shellcode que hace una típica importación por hash. Dos de las funciones resueltas son LdrLoadDll y LdrGetProcedureAddress, que los autores de malware usan con frecuencia para evadir el análisis dinámico de APIs conocidas (por ejemplo, LoadLibrary y GetProcAddress en este caso). A continuación, se le asigna memoria y se escribe un blob (un archivo PE) de la sección de recursos en la memoria asignada, que es la carga útil final de Emotet. Se resuelven las dependencias DLL y se reconstruye la tabla de direcciones de importación (IAT). A continuación, el shellcode sobrescribe la cabecera DOS del archivo PE, para dificultar que las soluciones EDR detecten el binario en memoria. Y se ejecuta Emotet.
La carga útil de Emotet sigue siendo la misma que en las anteriores oleadas de ataques.
Conclusión
El malware está en constante evolución y los TTP mutan, lo que dificulta aún más su detección. Además, puede resultar difícil para una organización determinar contra qué amenazas de malware desea protegerse. Los informes de inteligencia pueden ayudarle a determinar qué amenazas son relevantes para su empresa y a mantenerse protegido frente a ellas. Si desea mantenerse al día sobre las últimas TTP utilizadas por los delincuentes, o si tiene alguna pregunta sobre nuestros informes privados, escríbanos a crimewareintel@kaspersky.com.
Indicadores de compromiso (MD5)
LokiBot
31707f4c58be2db4fc43cba74f22c9e2
2c5cf406f3e4cfa448b167751eaea73b
DarkGate
1B9E9D90136D033A52D2C282503F33B7
149DA23D732922B04F82D634750532F3
Emotet
238f7e8cd973a386b61348ab2629a912
df3ee4fb63c971899e15479f9bca6853
Qué está pasando en el mundo del crimeware: Emotet, DarkGate y LokiBot