Introducción
En este artículo se describe nuestro análisis de las principales familias de ladrones de malware de Windows que identificamos, revelando sus metodologías de operación, actualizaciones recientes y configuraciones. Al comprender el modus operandi de cada familia, comprendemos mejor la magnitud de su impacto y podemos fortalecer nuestras defensas en consecuencia. Además, examinaremos nuestra telemetría única para ofrecer información sobre el volumen actual asociado con estas familias de ladrones de malware prevalentes.
Mitigar este tipo de amenaza encubierta requiere un enfoque multifacético consistente con los principios de defensa en profundidad. Asimismo, describiremos varias técnicas de detección, incluido el uso de ES|Consultas de búsqueda de QL y reglas de Yara que permiten a las organizaciones defender de forma proactiva contra ellas.
Información general sobre telemetría
Los datos de telemetría que se muestran en este artículo abarcan información recopilada de fuentes internas y externas, lo que proporciona una comprensión completa de la actividad de amenazas.
En individuo, entre 2022 y 2023, REDLINE surgió como el malware más frecuente en la naturaleza, seguido de cerca por AGENT TESLA, VIDAR y luego STEALC. Vale la pena destacar que este periodo marcó el debut de STEALC en la naturaleza, lo que indica la evolución de los paisajes de amenazas.
En el periodo de tiempo posterior, que abarca desde 2023 hasta 2024, hubo un aumento notable en la actividad de AGENT TESLA, seguido de REDLINE, STEALC y VIDAR, lo que refleja tendencias cambiantes en la prevalencia y distribución de malware.
Datos de telemetría de Elastic 2023 de mayo a mayo de 2024
A pesar de las fluctuaciones en la prevalencia general del malware, AGENT TESLA mantuvo constantemente su posición como una amenaza destacada. Este dominio duradero se puede atribuir a varios factores, incluido su precio relativamente bajo y sus atractivas capacidades, que atraen a una amplia gama de actores de amenazas, particularmente aquellos que operan con recursos o experiencia limitados.
Una observación digna de mención es que debido a la fundación de METASTEALER en REDLINE, ciertas muestras de METASTEALER pueden caer inadvertidamente bajo la categorización de REDLINE.
Descripción general de los mejores ladrones
REDLINE (LADRÓN DE REDLINE)
REDLINE hizo su debut en el panorama de amenazas en 2020, aprovechando el email como su método de distribución inicial; opera en un modelo de malware como servicio (MaaS), lo que lo hace accesible a una amplia gama de actores de amenazas. Su asequibilidad y disponibilidad en foros clandestinos contribuyeron a su popularidad entre los ciberdelincuentes.
Las últimas operaciones de REDLINE involucran múltiples vectores de infección, incluido el phishing por email, sitios web maliciosos que alojan aplicaciones aparentemente legítimas y tácticas de ingeniería social. Nuestros investigadores analizaron una muestra reciente reportada por vx-underground que indica una campaña dirigida a ingenieros en la plataforma independiente Fiverr. Esta táctica plantea riesgos significativos, lo que puede llevar al compromiso de las compañías a través de autónomos desprevenidos.
REDLINE se basa en el marco .NET, lo que le proporciona portabilidad y facilidad de implementación. Tiene una variedad de funcionalidades destinadas a recopilar información vital del sistema y extraer datos confidenciales:
- Adquisición de información del sistema:
- Recopila detalles esenciales del sistema, como el nombre de usuario, el idioma y la zona horaria
- Recupera detalles del hardware, incluida la información del procesador y la tarjeta gráfica
- Monitorear los procesos en ejecución e identifica los navegadores instalados
- Extracción de datos:
- Se dirige a los repositorios de datos del navegador, extrayendo contraseñas almacenadas, detalles de tarjetas de crédito, cookies y entradas de autocompletar
- Obtiene credenciales de inicio de sesión VPN para acceso no autorizado
- Registra las credenciales de usuario y los historiales de chat de plataformas como Discord y Telegram
- Identifica y roba billeteras de criptomonedas, lo que puede comprometer activos digitales valiosos:
REDLINE emplea una técnica de ofuscación de cadenas para dificultar el análisis y evadir la detección basada en cadenas como yara mediante la construcción dinámica de las cadenas en tiempo de ejecución a partir de una matriz de caracteres:
Su configuración está estructurada dentro de una clase estática, que contiene cuatro campos públicos: IP, ID, Messagey una clave XOR. El contenido de los campos IP y ID se cifra mediante cifrado XOR y luego se codifica en base64 como se muestra a continuación:
METASTEALER
METASTEALER surgió en 2022, inicialmente anunciado como un derivado de REDLINE, con características adicionales; nuestros analistas de malware encontraron recientemente una muestra de METASTEALER dentro de una campaña que se hacía pasar por Roblox, previamente reportada por CERT como Orange Polska.
METASTEALER se desarrolla principalmente empleando el marco .NET, lo que facilita su compatibilidad con entornos Windows y facilita su implementación. Ciertas versiones emplean métodos de ofuscación, que incluyen oscurecer el flujo de control del malware y hacer que sea más difícil de detectar o analizar.
Esta muestra METASTEALER emplea el ofuscador AGILE.NET , específicamente su método de ofuscación de llamadas proxy. Esta técnica se emplea para ocultar la invocación directa de una función original mediante la introducción de una capa adicional de abstracción. En lugar de invocar directamente la función, AGILE.NET genera un método proxy que luego invoca la función original. Esta complejidad adicional hace que sea más difícil para los analistas de código discernir la secuencia de acciones.
Mirando el código anterior, podemos ver el método Delegate11.smethod_0 llama a un Delegate11.delegate11_0 que no está inicializado, lo que introduce ambigüedad durante el análisis estático, ya que los analistas no pueden determinar qué método se ejecutará realmente.
En tiempo de ejecución, el malware inicializará el delegado. Al llamar al método Class4.smethod_13 en el constructor de Delegate11 clase, este método construye un diccionario de valores de token, donde cada clave representa el valor de token de un delegado (por ejemplo, 0x040002DE), y su valor correspondiente representa el token del método original que se ejecutará. Este diccionario se construye a partir de una secuencia de bytes almacenados en el binario, lo que permite la resolución dinámica de invocaciones de métodos durante el tiempo de ejecución.
Luego de esto, generará un método dinámico para el delegado y lo ejecutará usando la función smethod_0 .
Todas las cadenas importantes de la configuración, como la dirección IP y el puerto C2, están encriptadas. El malware tiene una clase llamada Strings que se llama al comienzo de la ejecución para descifrar todas las cadenas a la vez, un proceso que implica una combinación de codificación Base64, descifrado XOR y descifrado AES CBC.
Inicialmente, los parámetros AES, como el AES KEY y el AES IV, se descifran. En el ejemplo proporcionado, el AES KEY y el AES IV se descodifican primero en base64. Posteriormente, se someten a un descifrado XOR empleando una clave XOR predeterminada, seguido de dos pasos consecutivos de decodificación base64.
La clase Strings contiene matrices de bytes que se descifran mediante AES CBC luego de invertir y, a continuación, se anexan a la lista Strings.Array . Más tarde, cuando el malware requiere cadenas específicas, accede a ellas indexando esta lista. Por ejemplo , String.get(6).
ROBO
Un jugador importante reciente en el espacio de los ladrones descubierto por Sekoia en febrero de 2023 es la familia STEALC . Este malware se anunció por primera vez en un foro clandestino en enero de 2023 donde el desarrollador mencionó una gran dependencia de familias existentes como VIDAR, RACOON y REDLINE. Desde entonces, nuestro equipo observó diariamente nuevas muestras de STEALC que muestran signos de popularidad y adopción por parte de los ciberdelincuentes.
STEALC se implementa en C e incluye características como importaciones dinámicas, ofuscación de cadenas y varias comprobaciones antianálisis antes de activar sus capacidades de robo de datos. Para proteger el binario y sus características principales, STEALC cifra sus cadenas usando una combinación de Base64 + RC4 usando una clave codificada incrustada en cada muestra.
Hay 6 funciones separadas que se emplean para las comprobaciones anti-análisis/anti-sandbox dentro de STEALC. Según el número de procesadores, STEALC finalizará si el recuento de procesadores activos es inferior a 2.
STEALC realiza una prueba de sandbox/emulación empleando una API de Windows más oscura (VirtualAllocExNuma) para asignar una gran cantidad de memoria. Si no se implementa la API, el proceso finalizará.
El malware realiza otra comprobación de sandbox leyendo valores de GlobalMemoryStatusEx. Luego de un desplazamiento de bytes contra los atributos recopilados de la memoria física, si el valor es menor que 0x457 la muestra terminará.
El malware detendrá la ejecución si el identificador de idioma coincide con uno de los siguientes LangID:
- Russian_Russia (
0x419) - Ukrainian_Ukraine (
0x422) - Belarusian_Belarus (
0x423) - Kazakh_Kazakhstan (
0x43f) - Uzbek_Latin__Uzbekistan (
0x443)
STEALC también incorpora la comprobación de emulación de Microsoft Defender, esto lo observamos en muchos ladrones como se ve en LOBSHOT. STEALC finalizará si los siguientes valores codificados coinciden dentro de la capa de emulación de Microsoft Defender con el nombre de usuario JohnDoe y el nombre de equipo de HAL9TH.
Una de las comprobaciones antianálisis más impactantes que viene con STEALC es una fecha de vencimiento. Este valor único se coloca en la configuración del malware para garantizar que el ladrón no se ejecute luego de una fecha específica establecido por el creador. Esto permite que el malware mantenga un perfil más bajo mediante el uso de plazos de entrega más cortos en las campañas y limitando la ejecución en entornos sandbox.
STEALC - Flujo de ejecución
Luego de su ejecución inicial, STEALC enviará el ID de hardware inicial de la máquina y recibirá una configuración del servidor C2:
f960cc969e79d7b100652712b439978f789705156b5a554db3acca13cb298050efa268fb|done|tested.file|1|1|1|1|1|1|1|1|
Luego de esta solicitud, enviará varias solicitudes para recibir una lista actualizada de navegadores de destino y extensiones de navegador de destino. A continuación se muestra un ejemplo de la configuración del navegador, que contiene la ruta del directorio de destino donde se almacenan los datos confidenciales.
Google Chrome|\Google\Chrome\User Data|chrome|chrome.exe|Google Chrome Canary|\Google\Chrome SxS\User Data|chrome|chrome.exe|Chromium|\Chromium\User Data|chrome|chrome.exe|Amigo|\Amigo\User Data|chrome|0|Torch|\Torch\User Data|chrome|0|Vivaldi|\Vivaldi\User Data|chrome|vivaldi.exe|Comodo Dragon|\Comodo\Dragon\User Data|chrome|0|EpicPrivacyBrowser|\Epic Privacy Browser\User Data|chrome|0|CocCoc|\CocCoc\Browser\User Data|chrome|0|Brave|\BraveSoftware\Brave-Browser\User Data|chrome|brave.exe|Cent Browser|\CentBrowser\User Data|chrome|0|7Star|\7Star\7Star\User Data|chrome|0|Chedot Browser|\Chedot\User Data|chrome|0|Microsoft Edge|\Microsoft\Edge\User Data|chrome|msedge.exe|360 Browser|\360Browser\Browser\User Data|chrome|0|QQBrowser|\Tencent\QQBrowser\User Data|chrome|0|CryptoTab|\CryptoTab Browser\User Data|chrome|browser.exe|Opera Stable|\Opera Software|opera|opera.exe|Opera GX Stable|\Opera Software|opera|opera.exe|Mozilla Firefox|\Mozilla\Firefox\Profiles|firefox|0|Pale Moon|\Moonchild Productions\Pale Moon\Profiles|firefox|0|Opera Crypto Stable|\Opera Software|opera|opera.exe|Thunderbird|\Thunderbird\Profiles|firefox|0|
En este punto, STEALC recopilará una amplia gama de información de las víctimas. A continuación, esta información se formatea, se codifica en Base64 y, a continuación, se envía al servidor C2 a través de solicitudes POST mediante campos de datos de formulario.
- Hardware ID
- Información del producto del sistema operativo Windows
- Información del procesador / RAM
- Nombre de usuario / nombre de la computadora
- Hora del sistema local / zona horaria / configuración regional de la víctima
- Distribución del teclado
- Comprobación de la batería (empleada para determinar si es portátil o no)
- Resolución de escritorio, información de pantalla
- Programas instalados, procesos en ejecución
Para el componente de robo, STEALC aprovecha las configuraciones recibidas para recopilar información valiosa que incluye:
- Browser cookies
- Datos de inicio de sesión
- Datos sitio web
- Historia
- Billeteras de criptomonedas
STEALC también ofrece otras opciones de configuración que incluyen:
- Datos de telegramas
- Discordia
- Tox
- Pidgin
- Vapor
- Emails de Outlook
| RedLineStealer | Ladrón de meta | Sigilo | |
|---|---|---|---|
| Primera vez vista en la naturaleza | 2020 | 2022 | 2023 |
| Lengua origen | C# | C# | C |
| Tamaño medio (sin embalar) | 253 KB | 278 KB | 107 KB |
| ¿Ofuscación de cuerdas? ¿Algo? | Sí | Sí | Sí (RC4 personalizado + base64) |
Detección
Para aprovechar al máximo las capacidades de detección que se enumeran a continuación para estas amenazas con Elastic Security, es esencial integrar Elastic Defend y Windows.
- Conexión a WebService mediante un binario sin firmar
- Conexión a un servicio sitio web mediante un proxy binario firmado
- Consulta de DNS sospechosa desde un disco virtual montado
- Acceso sospechoso a almacenes de credenciales de navegadores sitio web
- Acceso a credenciales del navegador sitio web mediante un proceso no firmado
- Access to Browser Credentials from Suspicious Memory
- Failed Access Attempt to Web Browser Files
- Acceso a las credenciales del navegador sitio web mediante un proceso inusual
ES|QL queries
La siguiente lista de búsquedas y consultas de detección se puede usar para detectar actividades de ladrones:
-
Identifica ejecutables no confiables o no firmados que realizan solicitudes de DNS a dominios de Telegram o Discord, lo que puede indicar intentos de comunicación de comando y control.
from logs-endpoint* | where (process.code_signature.trusted == false or process.code_signature.exists == false) | where dns.question.name in ("api.telegram.com", "cdn.discordapp.com", "discordapp.com", "discord.com","discord.gg","cdn.discordapp.com") | stats executable_count = count(*) by process.executable, process.name, dns.question.name | sort executable_count desc -
Detecta actividades sospechosas dirigidas a billeteras criptográficas, archivos y configuraciones almacenadas en sistemas Windows.
from logs-endpoint.events.file-* | where @timestamp > now() - 14 days | where host.os.type == "windows" and event.category == "file" and event.action == "open" and ( file.path rlike """C:\\Users\\.+\\AppData\\Roaming\\.+\\(Bitcoin|Ethereum|Electrum|Zcash|Monero|Wallet|Litecoin|Dogecoin|Coinbase|Exodus|Jaxx|MyEtherWallet|MetaMask)\\.*""" or file.path rlike """C:\\ProgramData\\.+\\(Bitcoin|Ethereum|Electrum|Zcash|Monero|Wallet|Litecoin|Dogecoin|Coinbase|Exodus|Jaxx|MyEtherWallet|MetaMask)\\.*""" ) | keep process.executable, process.name, host.id, file.path, file.name | stats number_hosts = count_distinct(host.id), unique_files = count_distinct(file.name) by process.executable | where number_hosts == 1 and unique_files >= 3 | sort number_hosts desc -
Monitorear el acceso a datos confidenciales del navegador, como cookies, datos de inicio de sesión e historial de navegación, que pueden indicar actividades de malware que roban información.
from logs-endpoint.events.file-*, logs-windows.sysmon_operational-default-* | where @timestamp > now() - 14 days | where host.os.type == "windows" and event.category == "file" and event.action in ("open", "modification") and ( file.path rlike "C:\\\\Users\\\\.+\\\\AppData\\\\Local\\\\(Google\\\\Chrome\\\\User Data\\\\.*|Google\\\\Chrome SxS\\\\User Data\\\\.*|Chromium\\\\User Data\\\\.*|Amigo\\\\User Data\\\\.*|Torch\\\\User Data\\\\.*|Vivaldi\\\\User Data\\\\.*|Comodo\\\\Dragon\\\\User Data\\\\.*|Epic Privacy Browser\\\\User Data\\\\.*|CocCoc\\\\Browser\\\\User Data\\\\.*|BraveSoftware\\\\Brave-Browser\\\\User Data\\\\.*|CentBrowser\\\\User Data\\\\.*|7Star\\\\7Star\\\\User Data\\\\.*|Chedot\\\\User Data\\\\.*|Microsoft\\\\Edge\\\\User Data\\\\.*|360Browser\\\\Browser\\\\User Data\\\\.*|Tencent\\\\QQBrowser\\\\User Data\\\\.*|CryptoTab Browser\\\\User Data\\\\.*|Opera Software\\\\Opera Stable\\\\.*|Opera Software\\\\Opera GX Stable\\\\.*)\\\\(Default|Profile \\\\d+)\\\\(Cookies|Login Data|Web Data|History|Bookmarks|Preferences|Visited Links|Network Action Predictor|Top Sites|Favicons|Shortcuts)" or file.path rlike "C:\\\\Users\\\\.+\\\\AppData\\\\Roaming\\\\Mozilla\\\\Firefox\\\\Profiles\\\\.*\\\\(cookies.sqlite|logins.json|places.sqlite|key4.db|cert9.db)" or file.path rlike "C:\\\\Users\\\\.+\\\\AppData\\\\Roaming\\\\Moonchild Productions\\\\Pale Moon\\\\Profiles\\\\.*\\\\(cookies.sqlite|logins.json|places.sqlite|key3.db|cert8.db)" or file.path rlike "C:\\\\Users\\\\.+\\\\AppData\\\\Roaming\\\\Thunderbird\\\\Profiles\\\\.*\\\\(cookies.sqlite|logins.json|key4.db|cert9.db)" ) | keep process.executable, process.name, event.action, host.id, host.name, file.path, file.name | eval process_path = replace(process.executable, "([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|ns[a-z][A-Z0-9]{3,4}\\.tmp|DX[A-Z0-9]{3,4}\\.tmp|7z[A-Z0-9]{3,5}\\.tmp|[0-9\\.\\-_]{3,})", "") | eval process_path = replace(process_path, "[cC]:\\\\[uU][sS][eE][rR][sS]\\\\[a-zA-Z0-9\\.\\-_\\$~ ]+\\\\", "C:\\\\users\\\\user\\\\") | eval normalized_file_path = replace(file.path, "[cC]:\\\\[uU][sS][eE][rR][sS]\\\\[a-zA-Z0-9\\.\\-_\\$~ ]+\\\\", "C:\\\\users\\\\user\\\\") | stats number_hosts = count_distinct(host.id) by process.executable, process.name, event.action, normalized_file_path, file.name, host.name | where number_hosts == 1 | sort number_hosts desc
Reglas YARA
- Troyano de Windows MetaStealer
- Robo de troyanos de Windows
- Troyano de Windows RedLineStealer
- Agente troyano de WindowsTesla
Conclusión
En conclusión, es crucial reconocer que estas amenazas de malware representan riesgos significativos tanto para las compañías como para las personas. Su asequibilidad los hace accesibles no solo para los ciberdelincuentes sofisticados, sino también para los delincuentes de poca monta y los script kiddies. Esta accesibilidad subraya la democratización del cibercrimen, donde incluso las personas con conocimientos técnicos limitados pueden implementar software malicioso.
El conjunto integral de características de seguridad de Elastic ofrece a las organizaciones y a las personas las herramientas que necesitan para defender eficazmente de los ataques de malware. Desde la detección avanzada de amenazas hasta las capacidades de supervisión y respuesta en tiempo real.
